ARM GAS /tmp/ccgDLloS.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 23, 1 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 2 9 .eabi_attribute 34, 1 10 .eabi_attribute 18, 4 11 .file "stm32g4xx_hal_uart.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.UART_TxISR_16BIT,"ax",%progbits 16 .align 1 17 .p2align 2,,3 18 .syntax unified 19 .thumb 20 .thumb_func 21 .fpu fpv4-sp-d16 23 UART_TxISR_16BIT: 24 .LFB391: 25 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c" 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ****************************************************************************** 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @file stm32g4xx_hal_uart.c 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @author MCD Application Team 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART HAL module driver. 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART). 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + Initialization and de-initialization functions 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + IO operation functions 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * + Peripheral Control functions 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### How to use this driver ##### 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The UART HAL driver can be used as follows: 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Declare a UART_HandleTypeDef handle structure (eg. UART_HandleTypeDef huart). 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Initialize the UART low level resources by implementing the HAL_UART_MspInit() API: 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Enable the USARTx interface clock. 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) UART pins configuration: 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Enable the clock for the UART GPIOs. 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure these UART pins as alternate function pull-up. 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) NVIC configuration if you need to use interrupt process (HAL_UART_Transmit_IT() 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and HAL_UART_Receive_IT() APIs): 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority. 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Enable the NVIC USART IRQ handle. 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) UART interrupts handling: 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** -@@- The specific UART interrupts (Transmission complete interrupt, 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** RXNE interrupt, RX/TX FIFOs related interrupts and Error Interrupts) 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** are managed using the macros __HAL_UART_ENABLE_IT() and __HAL_UART_DISABLE_IT() ARM GAS /tmp/ccgDLloS.s page 2 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** inside the transmit and receive processes. 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) DMA Configuration if you need to use DMA process (HAL_UART_Transmit_DMA() 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and HAL_UART_Receive_DMA() APIs): 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Declare a DMA handle structure for the Tx/Rx channel. 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Enable the DMAx interface clock. 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure the declared DMA handle structure with the required Tx/Rx parameters. 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure the DMA Tx/Rx channel. 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Associate the initialized DMA handle to the UART DMA Tx/Rx handle. 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+++) Configure the priority and enable the NVIC for the transfer complete 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** interrupt on the DMA Tx/Rx channel. 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Program the Baud Rate, Word Length, Stop Bit, Parity, Prescaler value , Hardware 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** flow control and Mode (Receiver/Transmitter) in the huart handle Init structure. 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) If required, program UART advanced features (TX/RX pins swap, auto Baud rate detection,...) 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the huart handle AdvancedInit structure. 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART asynchronous mode, initialize the UART registers by calling 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_Init() API. 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART Half duplex mode, initialize the UART registers by calling 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_HalfDuplex_Init() API. 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART LIN (Local Interconnection Network) mode, initialize the UART registers 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** by calling the HAL_LIN_Init() API. 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART Multiprocessor mode, initialize the UART registers 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** by calling the HAL_MultiProcessor_Init() API. 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For the UART RS485 Driver Enabled mode, initialize the UART registers 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** by calling the HAL_RS485Ex_Init() API. 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (@) These API's (HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init(), HAL_MultiProcessor_Ini 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** also configure the low level Hardware GPIO, CLOCK, CORTEX...etc) by 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** calling the customized HAL_UART_MspInit() API. 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### Callback registration ##### 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ================================== 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The compilation define USE_HAL_UART_REGISTER_CALLBACKS when set to 1 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** allows the user to configure dynamically the driver callbacks. 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Use Function @ref HAL_UART_RegisterCallback() to register a user callback. 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Function @ref HAL_UART_RegisterCallback() allows to register following callbacks: 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) WakeupCallback : Wakeup Callback. 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxFifoFullCallback : Rx Fifo Full Callback. ARM GAS /tmp/ccgDLloS.s page 3 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxFifoEmptyCallback : Tx Fifo Empty Callback. 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and a pointer to the user callback function. 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Use function @ref HAL_UART_UnRegisterCallback() to reset a callback to the default 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** weak (surcharged) function. 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @ref HAL_UART_UnRegisterCallback() takes as parameters the HAL peripheral handle, 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and the Callback ID. 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This function allows to reset following callbacks: 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) WakeupCallback : Wakeup Callback. 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) RxFifoFullCallback : Rx Fifo Full Callback. 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) TxFifoEmptyCallback : Tx Fifo Empty Callback. 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** For specific callback RxEventCallback, use dedicated registration/reset functions: 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** respectively @ref HAL_UART_RegisterRxEventCallback() , @ref HAL_UART_UnRegisterRxEventCallback( 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** By default, after the @ref HAL_UART_Init() and when the state is HAL_UART_STATE_RESET 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** all callbacks are set to the corresponding weak (surcharged) functions: 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** examples @ref HAL_UART_TxCpltCallback(), @ref HAL_UART_RxHalfCpltCallback(). 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Exception done for MspInit and MspDeInit functions that are respectively 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** reset to the legacy weak (surcharged) functions in the @ref HAL_UART_Init() 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and @ref HAL_UART_DeInit() only when these callbacks are null (not registered beforehand). 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If not, MspInit or MspDeInit are not null, the @ref HAL_UART_Init() and @ref HAL_UART_DeInit() 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand). 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Callbacks can be registered/unregistered in HAL_UART_STATE_READY state only. 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Exception done MspInit/MspDeInit that can be registered/unregistered 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in HAL_UART_STATE_READY or HAL_UART_STATE_RESET state, thus registered (user) 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MspInit/DeInit callbacks can be used during the Init/DeInit. 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** In that case first register the MspInit/MspDeInit user callbacks 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** using @ref HAL_UART_RegisterCallback() before calling @ref HAL_UART_DeInit() 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** or @ref HAL_UART_Init() function. 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** When The compilation define USE_HAL_UART_REGISTER_CALLBACKS is set to 0 or 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** not defined, the callback registration feature is not available 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and weak (surcharged) callbacks are used. 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ****************************************************************************** ARM GAS /tmp/ccgDLloS.s page 4 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @attention 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *

© Copyright (c) 2019 STMicroelectronics. 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * All rights reserved.

152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This software component is licensed by ST under BSD 3-Clause license, 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the "License"; You may not use this file except in compliance with the 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * License. You may obtain a copy of the License at: 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * opensource.org/licenses/BSD-3-Clause 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ****************************************************************************** 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Includes ------------------------------------------------------------------*/ 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #include "stm32g4xx_hal.h" 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @addtogroup STM32G4xx_HAL_Driver 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART UART 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief HAL UART module driver 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #ifdef HAL_UART_MODULE_ENABLED 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private typedef -----------------------------------------------------------*/ 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private define ------------------------------------------------------------*/ 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Private_Constants UART Private Constants 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define USART_CR1_FIELDS ((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | U 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_OVER8 | USART_CR1_FIFOEN)) /*!< UART or USART CR1 f 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define USART_CR3_FIELDS ((uint32_t)(USART_CR3_RTSE | USART_CR3_CTSE | USART_CR3_ONEBIT | USART_CR 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR3_RXFTCFG)) /*!< UART or USART CR3 fields of paramete 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define LPUART_BRR_MIN 0x00000300U /* LPUART BRR minimum authorized value */ 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define LPUART_BRR_MAX 0x000FFFFFU /* LPUART BRR maximum authorized value */ 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define UART_BRR_MIN 0x10U /* UART BRR minimum authorized value */ 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #define UART_BRR_MAX 0x0000FFFFU /* UART BRR maximum authorized value */ 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private macros ------------------------------------------------------------*/ 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private variables ---------------------------------------------------------*/ 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Private function prototypes -----------------------------------------------*/ 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @addtogroup UART_Private_Functions 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart); 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart); 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma); 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma); ARM GAS /tmp/ccgDLloS.s page 5 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma); 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma); 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma); 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma); 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma); 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma); 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma); 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma); 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_8BIT(UART_HandleTypeDef *huart); 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_16BIT(UART_HandleTypeDef *huart); 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart); 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart); 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndTransmit_IT(UART_HandleTypeDef *huart); 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_8BIT(UART_HandleTypeDef *huart); 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_16BIT(UART_HandleTypeDef *huart); 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart); 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart); 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Exported Constants --------------------------------------------------------*/ 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @addtogroup UART_Exported_Constants 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const uint16_t UARTPrescTable[12] = {1U, 2U, 4U, 6U, 8U, 10U, 12U, 16U, 32U, 64U, 128U, 256U}; 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Exported functions --------------------------------------------------------*/ 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions UART Exported Functions 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group1 Initialization and de-initialization functions 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialization and Configuration functions 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### Initialization and Configuration functions ##### 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This subsection provides a set of functions allowing to initialize the USARTx or the UARTy 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in asynchronous mode. 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) For the asynchronous mode the parameters below can be configured: 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Baud Rate 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Word Length 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Stop Bit 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Parity: If the parity is enabled, then the MSB bit of the data written 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit. 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Hardware flow control 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Receiver/transmitter modes 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) Over Sampling Method 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) One-Bit Sampling Method 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) For the asynchronous mode, the following advanced features can be configured as well: ARM GAS /tmp/ccgDLloS.s page 6 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) TX and/or RX pin level inversion 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) data logical level inversion 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) RX and TX pins swap 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) RX overrun detection disabling 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) DMA disabling on RX error 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) MSB first on communication line 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (++) auto Baud rate detection 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init()and HAL_MultiProcessor_Init()API 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** follow respectively the UART asynchronous, UART Half duplex, UART LIN mode 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and UART multiprocessor mode configuration procedures (details for the procedures 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** are available in reference manual). 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Depending on the frame length defined by the M1 and M0 bits (7-bit, 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8-bit or 9-bit), the possible UART formats are listed in the 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** following table. 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Table 1. UART frame format. 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +-----------------------------------------------------------------------+ 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | M1 bit | M0 bit | PCE bit | UART frame | 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 0 | 0 | 0 | | SB | 8 bit data | STB | | 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 0 | 0 | 1 | | SB | 7 bit data | PB | STB | | 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 0 | 1 | 0 | | SB | 9 bit data | STB | | 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 0 | 1 | 1 | | SB | 8 bit data | PB | STB | | 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 1 | 0 | 0 | | SB | 7 bit data | STB | | 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------| 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** | 1 | 0 | 1 | | SB | 6 bit data | PB | STB | | 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** +-----------------------------------------------------------------------+ 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the UART mode according to the specified 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and initialize the associated handle. 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); ARM GAS /tmp/ccgDLloS.s page 7 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware */ 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback(huart); 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspInit(huart); 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART Communication parameters */ 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR) 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_AdvFeatureConfig(huart); 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In asynchronous mode, the following bits must be kept cleared: 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the half-duplex mode according to the specified ARM GAS /tmp/ccgDLloS.s page 8 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and creates the associated handle. 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check UART instance */ 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware */ 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback(huart); 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspInit(huart); 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART Communication parameters */ 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR) 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_AdvFeatureConfig(huart); 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In half-duplex mode, the following bits must be kept cleared: 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/ 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 9 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */ 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the LIN mode according to the specified 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and creates the associated handle. 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param BreakDetectLength Specifies the LIN break detection length. 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This parameter can be one of the following values: 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref UART_LINBREAKDETECTLENGTH_10B 10-bit break detection 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref UART_LINBREAKDETECTLENGTH_11B 11-bit break detection 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the LIN UART instance */ 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the Break detection length parameter */ 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_LIN_BREAK_DETECT_LENGTH(BreakDetectLength)); 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* LIN mode limited to 16-bit oversampling only */ 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.OverSampling == UART_OVERSAMPLING_8) 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* LIN mode limited to 8-bit data length */ 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->Init.WordLength != UART_WORDLENGTH_8B) 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 10 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware */ 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback(huart); 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspInit(huart); 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART Communication parameters */ 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR) 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_AdvFeatureConfig(huart); 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In LIN mode, the following bits must be kept cleared: 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/ 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the LIN mode by setting the LINEN bit in the CR2 register */ 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the USART LIN Break detection length. */ 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the multiprocessor mode according to the specified 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and initialize the associated handle. 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Address UART node address (4-, 6-, 7- or 8-bit long). 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param WakeUpMethod Specifies the UART wakeup method. 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This parameter can be one of the following values: 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref UART_WAKEUPMETHOD_IDLELINE WakeUp by an idle line detection 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref UART_WAKEUPMETHOD_ADDRESSMARK WakeUp by an address mark 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note If the user resorts to idle line detection wake up, the Address parameter 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * is useless and ignored by the initialization function. 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note If the user resorts to address mark wake up, the address length detection 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * is configured by default to 4 bits only. For the UART to be able to 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * manage 6-, 7- or 8-bit long addresses detection, the API 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * HAL_MultiProcessorEx_AddressLength_Set() must be called after ARM GAS /tmp/ccgDLloS.s page 11 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * HAL_MultiProcessor_Init(). 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the wake up method parameter */ 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_WAKEUPMETHOD(WakeUpMethod)); 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware */ 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback(huart); 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspInit(huart); 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART Communication parameters */ 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR) 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_AdvFeatureConfig(huart); 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In multiprocessor mode, the following bits must be kept cleared: 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register. */ 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (WakeUpMethod == UART_WAKEUPMETHOD_ADDRESSMARK) ARM GAS /tmp/ccgDLloS.s page 12 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If address mark wake up method is chosen, set the USART address node */ 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS) 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the wake up method by setting the WAKE bit in the CR1 register */ 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DeInitialize the UART peripheral. 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart == NULL) 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR1 = 0x0U; 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR2 = 0x0U; 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR3 = 0x0U; 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->MspDeInitCallback == NULL) 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DeInit the low level hardware */ 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback(huart); 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DeInit the low level hardware */ 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_MspDeInit(huart); 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); ARM GAS /tmp/ccgDLloS.s page 13 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the UART MSP. 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_MspInit can be implemented in the user file 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DeInitialize the UART MSP. 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_MspDeInit can be implemented in the user file 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Register a User UART Callback 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * To be used instead of the weak predefined callback 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart uart handle 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param CallbackID ID of the callback to be registered 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This parameter can be one of the following values: 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_WAKEUP_CB_ID Wakeup Callback ID 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_FIFO_FULL_CB_ID Rx Fifo Full Callback ID 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_FIFO_EMPTY_CB_ID Tx Fifo Empty Callback ID 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pCallback pointer to the Callback function 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ ARM GAS /tmp/ccgDLloS.s page 14 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pUART_CallbackTypeDef pCallback) 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pCallback == NULL) 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (CallbackID) 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxHalfCpltCallback = pCallback; 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback = pCallback; 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID : 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxHalfCpltCallback = pCallback; 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID : 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback = pCallback; 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback = pCallback; 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID : 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback = pCallback; 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = pCallback; 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = pCallback; 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_WAKEUP_CB_ID : 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->WakeupCallback = pCallback; 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_FIFO_FULL_CB_ID : 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxFifoFullCallback = pCallback; 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; ARM GAS /tmp/ccgDLloS.s page 15 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_FIFO_EMPTY_CB_ID : 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxFifoEmptyCallback = pCallback; 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = pCallback; 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default : 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (huart->gState == HAL_UART_STATE_RESET) 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (CallbackID) 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = pCallback; 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default : 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return status; 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Unregister an UART Callback 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * UART callaback is redirected to the weak predefined callback 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart uart handle 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param CallbackID ID of the callback to be unregistered 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This parameter can be one of the following values: ARM GAS /tmp/ccgDLloS.s page 16 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_WAKEUP_CB_ID Wakeup Callback ID 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_FIFO_FULL_CB_ID Rx Fifo Full Callback ID 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_FIFO_EMPTY_CB_ID Tx Fifo Empty Callback ID 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_UART_STATE_READY == huart->gState) 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (CallbackID) 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHa 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpl 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID : 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHal 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID : 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpl 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak Error 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID : 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak Abort 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** AbortTransmitCplt 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** AbortReceiveCpltC ARM GAS /tmp/ccgDLloS.s page 17 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_WAKEUP_CB_ID : 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak Wakeu 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_RX_FIFO_FULL_CB_ID : 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFif 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_TX_FIFO_EMPTY_CB_ID : 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFif 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspIn 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDe 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default : 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (HAL_UART_STATE_RESET == huart->gState) 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (CallbackID) 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default : 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 18 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return status; 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Register a User UART Rx Event Callback 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * To be used instead of the weak predefined callback 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Uart handle 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pCallback Pointer to the Rx Event Callback function 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pCallback == NULL) 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process locked */ 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback = pCallback; 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Release Lock */ 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return status; 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UnRegister the UART Rx Event Callback 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * UART Rx Event Callback is redirected to the weak HAL_UARTEx_RxEventCallback() predefine 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Uart handle 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process locked */ 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ ARM GAS /tmp/ccgDLloS.s page 19 1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** status = HAL_ERROR; 1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Release Lock */ 1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return status; 1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} 1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group2 IO operation functions 1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Transmit/Receive functions 1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * 1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim 1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== 1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### IO operation functions ##### 1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== 1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This subsection provides a set of functions allowing to manage the UART asynchronous 1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and Half duplex data transfers. 1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) There are two mode of transfer: 1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Blocking mode: The communication is performed in polling mode. 1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The HAL status of all data processing is returned by the same function 1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** after finishing transfer. 1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Non-Blocking mode: The communication is performed using Interrupts 1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** or DMA, These API's return the HAL status. 1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The end of the data processing will be indicated through the 1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when 1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** using DMA mode. 1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The HAL_UART_TxCpltCallback(), HAL_UART_RxCpltCallback() user callbacks 1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will be executed respectively at the end of the transmit or Receive process 1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** The HAL_UART_ErrorCallback()user callback will be executed when a communication error is 1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Blocking mode API's are : 1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Transmit() 1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Receive() 1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Non-Blocking mode API's with Interrupt are : 1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Transmit_IT() 1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Receive_IT() 1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_IRQHandler() 1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Non-Blocking mode API's with DMA are : 1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Transmit_DMA() 1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Receive_DMA() 1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_DMAPause() 1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_DMAResume() 1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_DMAStop() ARM GAS /tmp/ccgDLloS.s page 20 1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) A set of Transfer Complete Callbacks are provided in Non_Blocking mode: 1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_TxHalfCpltCallback() 1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_TxCpltCallback() 1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_RxHalfCpltCallback() 1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_RxCpltCallback() 1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_ErrorCallback() 1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) Non-Blocking mode transfers could be aborted using Abort API's : 1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Abort() 1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit() 1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortReceive() 1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_Abort_IT() 1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit_IT() 1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortReceive_IT() 1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) For Abort services based on interrupts (HAL_UART_Abortxxx_IT), a set of Abort Complete Call 1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortCpltCallback() 1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortTransmitCpltCallback() 1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_AbortReceiveCpltCallback() 1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) A Rx Event Reception Callback (Rx event notification) is available for Non_Blocking modes o 1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** reception services: 1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UARTEx_RxEventCallback() 1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (#) In Non-Blocking mode transfers, possible errors are split into 2 categories. 1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Errors are handled as follows : 1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Error is considered as Recoverable and non blocking : Transfer could go till end, but er 1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** to be evaluated by user : this concerns Frame Error, Parity Error or Noise Error 1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in Interrupt mode reception . 1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Received character is then retrieved and stored in Rx buffer, Error code is set to allow 1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** to identify error type, and HAL_UART_ErrorCallback() user callback is executed. 1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Transfer is kept ongoing on UART side. 1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If user wants to abort it, Abort services should be called by user. 1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Error is considered as Blocking : Transfer could not be completed properly and is aborte 1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This concerns Overrun Error In Interrupt mode reception and all errors in DMA mode. 1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Error code is set to allow user to identify error type, and HAL_UART_ErrorCallback() 1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** user callback is executed. 1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** -@- In the Half duplex communication, it is forbidden to run the transmit 1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and receive process in parallel, the UART state HAL_UART_STATE_BUSY_TX_RX can't be useful. 1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim 1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Send an amount of data in blocking mode. 1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number 1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 provided through pData. 1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When FIFO mode is enabled, writing a data in the TDR register adds one 1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * data to the TXFIFO. Write operations to the TDR register are performed 1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * when TXFNF flag is set. From hardware perspective, TXFNF flag and 1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * TXE are mapped on the same bit-field. 1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). ARM GAS /tmp/ccgDLloS.s page 21 1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent. 1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Timeout Timeout duration. 1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint3 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint8_t *pdata8bits; 1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *pdata16bits; 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; 1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init tickstart for timeout management */ 1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tickstart = HAL_GetTick(); 1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData needs to be handled as a uint16_t pointer */ 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits = NULL; 1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits = pData; 1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = NULL; 1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while (huart->TxXferCount > 0U) 1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) 1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pdata8bits == NULL) 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); 1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; 1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); ARM GAS /tmp/ccgDLloS.s page 22 1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; 1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) 1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ 1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; 1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Receive an amount of data in blocking mode. 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 available through pData. 1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When FIFO mode is enabled, the RXFNE flag is set as long as the RXFIFO 1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * is not empty. Read operations from the RDR register are performed when 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * RXFNE flag is set. From hardware perspective, RXFNE flag and 1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * RXNE are mapped on the same bit-field. 1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Timeout Timeout duration. 1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint8_t *pdata8bits; 1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *pdata16bits; 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask; 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; 1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 23 1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init tickstart for timeout management */ 1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tickstart = HAL_GetTick(); 1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Computation of UART mask to apply to RDR register */ 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_MASK_COMPUTATION(huart); 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ 1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits = NULL; 1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits = pData; 1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = NULL; 1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* as long as data have to be received */ 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while (huart->RxXferCount > 0U) 1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) 1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pdata8bits == NULL) 1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; 1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); 1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Send an amount of data in interrupt mode. ARM GAS /tmp/ccgDLloS.s page 24 1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 provided through pData. 1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent. 1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr = pData; 1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; 1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure Tx interrupt processing */ 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) 1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the Tx ISR function pointer according to the data word length */ 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE 1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = UART_TxISR_16BIT_FIFOEN; 1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = UART_TxISR_8BIT_FIFOEN; 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the TX FIFO threshold interrupt */ 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); 1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the Tx ISR function pointer according to the data word length */ 1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE 1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = UART_TxISR_16BIT; 1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = UART_TxISR_8BIT; 1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 25 1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the Transmit Data Register Empty interrupt */ 1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); 1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; 1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Receive an amount of data in interrupt mode. 1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb 1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 available through pData. 1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set Reception type to Standard reception */ 1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that USART RTOEN bit is set */ 1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) 1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Receiver Timeout Interrupt */ 1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); 1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_Start_Receive_IT(huart, pData, Size)); 1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; 1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 26 1402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Send an amount of data in DMA mode. 1405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number 1407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 provided through pData. 1408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent. 1411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 1421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 1424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr = pData; 1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; 1428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ 1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; 1436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ 1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; 1439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the DMA error callback */ 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferErrorCallback = UART_DMAError; 1442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the DMA abort callback */ 1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART transmit DMA channel */ 1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance-> 1448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ 1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to ready */ 1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 1458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 27 1459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the TC flag in the ICR register */ 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); 1462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the DMA transfer for transmit request by setting the DMAT bit 1466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; 1474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Receive an amount of data in DMA mode. 1479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When the UART parity is enabled (PCE = 1), the received data contain 1480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the parity bit (MSB position). 1481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb 1483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * of u16 available through pData. 1484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 1487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 1497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 1500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set Reception type to Standard reception */ 1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 1505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that USART RTOEN bit is set */ 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) 1508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Receiver Timeout Interrupt */ 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); 1511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_Start_Receive_DMA(huart, pData, Size)); 1515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 28 1516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; 1519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Pause the DMA Transfer. 1524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) 1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; 1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; 1531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 1533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && 1535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 1536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Tx request */ 1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && 1541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 1542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ 1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request */ 1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Resume the DMA Transfer. 1558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) 1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 1564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 1566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART DMA Tx request */ 1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 1571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Overrun flag before resuming the Rx transfer */ ARM GAS /tmp/ccgDLloS.s page 29 1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); 1574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Re-enable PE and ERR (Frame error, noise error, overrun error) interrupts */ 1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); 1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 1578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART DMA Rx request */ 1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Stop the DMA Transfer. 1590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application 1596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** to call the HAL UART API under callbacks HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback() 1597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback / HAL_UART_RxHalfCpltCallback: 1598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** indeed, when HAL_DMA_Abort() API is called, the DMA TX/RX Transfer or Half Transfer complete 1599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** interrupt is generated if the DMA transfer interruption occurs at the middle or at the end of 1600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the stream and the corresponding call back is executed. */ 1601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; 1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; 1604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ 1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && 1607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 1608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel */ 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) 1615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) 1617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ 1619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 1622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndTxTransfer(huart); 1627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */ ARM GAS /tmp/ccgDLloS.s page 30 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && 1631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 1632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel */ 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) 1639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) 1641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 1646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndRxTransfer(huart); 1651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing transfers (blocking mode). 1658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or 1660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : 1661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) 1662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY 1665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, TC, RXNE, PE, RXFT, TXFT and ERR (Frame error, noise error, overrun error) interr 1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN 1672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TCIE)); 1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); 1674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 1677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 1679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use blocking DMA Abort API (no callback) */ ARM GAS /tmp/ccgDLloS.s page 31 1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) 1694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) 1696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ 1698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 1701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use blocking DMA Abort API (no callback) */ 1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 1717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) 1719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) 1721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 1726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */ 1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 1734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ 1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 1737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ 1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) 1740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); 1742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 32 1744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ 1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 1746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (blocking mode). 1759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt 1761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : 1762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) 1763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY 1766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) 1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TCIE, TXEIE and TXFTIE interrupts */ 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); 1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); 1774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use blocking DMA Abort API (no callback) */ 1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) 1788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) 1790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 1795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx transfer counter */ ARM GAS /tmp/ccgDLloS.s page 33 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 1802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ 1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) 1805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); 1807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (blocking mode). 1817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt 1819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : 1820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) 1821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY 1824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) 1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PEIE, EIE, RXNEIE and RXFTIE interrupts */ 1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); 1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); 1832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 1835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 1837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use blocking DMA Abort API (no callback) */ 1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 1850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) 1852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) 1854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 34 1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 1859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Rx transfer counter */ 1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 1866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ 1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 1869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 1872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 1881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing transfers (Interrupt mode). 1882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 1883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or 1884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : 1885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) 1886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) 1888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY 1889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 1890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 1891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 1892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 1893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 1894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) 1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t abortcplt = 1U; 1897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable interrupts */ 1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE | 1900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); 1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); 1902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 1905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 1907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks sh 1910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** before any call to DMA Abort functions */ 1911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Tx Handle is valid */ 1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. ARM GAS /tmp/ccgDLloS.s page 35 1915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Otherwise, set it to NULL */ 1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; 1919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Rx Handle is valid */ 1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. 1929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Otherwise, set it to NULL */ 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; 1933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 1937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable DMA Tx at UART level */ 1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */ 1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Tx DMA Abort callback has already been initialised : 1950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 1951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA TX */ 1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 1954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 0U; 1960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */ 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 36 1972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Rx DMA Abort callback has already been initialised : 1973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 1974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA RX */ 1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 1977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 1979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 1U; 1980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 1982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 0U; 1984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if no DMA abort complete callback execution is required => call user Abort Complete callback * 1989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (abortcplt == 1U) 1990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */ 1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 1994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear ISR function pointers */ 1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 1998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset errorCode */ 2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 2001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ 2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF 2004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ 2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) 2007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); 2009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 2013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort complete callback */ 2022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 2023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 2026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 37 2029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (Interrupt mode). 2034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt 2036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : 2037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) 2038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) 2040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY 2041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 2042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 2044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 2045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable interrupts */ 2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); 2051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 2054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 2056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */ 2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) 2059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; 2063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA TX */ 2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 2066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call Directly huart->hdmatx->XferAbortCallback function in case of error */ 2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback(huart->hdmatx); 2069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx transfer counter */ 2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 2075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear TxISR function pointers */ 2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 2078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 2085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); ARM GAS /tmp/ccgDLloS.s page 38 2086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 2089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Tx transfer counter */ 2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 2096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear TxISR function pointers */ 2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 2099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ 2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) 2102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); 2104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 2112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 2113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 2116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (Interrupt mode). 2124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt 2126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * This procedure performs following operations : 2127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) 2128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) 2130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - Set handle State to READY 2131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 2132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 2134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 2135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) 2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); 2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); 2141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ ARM GAS /tmp/ccgDLloS.s page 39 2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 2144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 2146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */ 2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) 2155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; 2159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA RX */ 2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 2162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ 2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); 2165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Rx transfer counter */ 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 2171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ 2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = NULL; 2174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ 2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_F 2177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ 2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 2180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 2188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 2189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 2192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset Rx transfer counter */ 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 2199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 40 2200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ 2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = NULL; 2202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ 2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF 2205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 2213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 2214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 2217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Handle UART interrupt request. 2225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) 2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 2233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t errorflags; 2235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t errorcode; 2236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If no error occurs */ 2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE | 2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (errorflags == 0U) 2240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART in mode Receiver ---------------------------------------------------*/ 2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U) 2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) 2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_RXFTIE) != 0U))) 2245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxISR != NULL) 2247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR(huart); 2249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 2251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If some errors occur */ 2255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((errorflags != 0U) 2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U) ARM GAS /tmp/ccgDLloS.s page 41 2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))) 2258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART parity error interrupt occurred -------------------------------------*/ 2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) 2261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); 2263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE; 2265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART frame error interrupt occurred --------------------------------------*/ 2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 2269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); 2271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE; 2273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART noise error interrupt occurred --------------------------------------*/ 2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 2277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); 2279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE; 2281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Over-Run interrupt occurred -----------------------------------------*/ 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_ORE) != 0U) 2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) || 2286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U))) 2287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); 2289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_ORE; 2291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Receiver Timeout interrupt occurred ---------------------------------*/ 2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U)) 2295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); 2297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_RTO; 2299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call UART Error Call back function if need be ----------------------------*/ 2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE) 2303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART in mode Receiver --------------------------------------------------*/ 2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U) 2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) 2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_RXFTIE) != 0U))) 2308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxISR != NULL) 2310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR(huart); 2312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 42 2314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Error is to be considered as blocking : 2316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - Receiver Timeout error in Reception 2317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - Overrun error in Reception 2318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** - any error occurs in DMA mode reception 2319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** errorcode = huart->ErrorCode; 2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || 2322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) 2323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Blocking error : transfer is aborted 2325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Set the UART state ready to be able to start again the process, 2326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ 2327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndRxTransfer(huart); 2328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort the UART DMA Rx channel */ 2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) 2336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ 2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; 2340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Abort DMA RX */ 2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 2343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ 2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); 2346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user error callback */ 2351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ 2353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); 2354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user error callback */ 2364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ 2366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); 2367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ ARM GAS /tmp/ccgDLloS.s page 43 2371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Non Blocking error : transfer could go on. 2376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Error is notified to user through user error callback */ 2377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ 2379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); 2380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 2385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 2388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } /* End if some error occurs */ 2390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : 2392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ 2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((isrflags & USART_ISR_IDLE) != 0U) 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((cr1its & USART_ISR_IDLE) != 0U)) 2396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); 2398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if DMA mode is enabled in UART */ 2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA mode enabled */ 2403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check received length : If all expected data are received, do nothing, 2404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (DMA cplt callback will be called). 2405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Otherwise, if at least one data has already been received, IDLE event is to be notified to 2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); 2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) 2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) 2409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reception is not complete */ 2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = nb_remaining_rx_data; 2412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In Normal mode, end DMA xfer and HAL UART Rx process*/ 2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) 2415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ 2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by resetting the DMAR bit 2421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ 2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 44 2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 2429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Last bytes received, so no need as the abort is immediate */ 2431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (void)HAL_DMA_Abort(huart->hdmarx); 2432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 2435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); 2436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); 2439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 2440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 2442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA mode not enabled */ 2446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check received length : If all expected data are received, do nothing. 2447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Otherwise, if at least one data has already been received, IDLE event is to be notified to 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_rx_data > 0U)) 2451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXNE interrupts */ 2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); 2454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt:(Frame error, noise error, overrun error) and RX FIFO T 2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); 2457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ 2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 2464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 2466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 2468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, nb_rx_data); 2469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, nb_rx_data); 2472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 2473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 2475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART wakeup from Stop mode interrupt occurred ---------------------------*/ 2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U)) 2480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); 2482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART Rx state is not reset as a reception process might be ongoing. 2484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If UART handle state fields need to be reset to READY, this could be done in Wakeup callback ARM GAS /tmp/ccgDLloS.s page 45 2485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Wakeup Callback */ 2488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->WakeupCallback(huart); 2489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Wakeup Callback */ 2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_WakeupCallback(huart); 2492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 2494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART in mode Transmitter ------------------------------------------------*/ 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_TXE_TXFNF) != 0U) 2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_TXEIE_TXFNFIE) != 0U) 2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_TXFTIE) != 0U))) 2500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxISR != NULL) 2502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR(huart); 2504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 2506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART in mode Transmitter (transmission end) -----------------------------*/ 2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U)) 2510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndTransmit_IT(huart); 2512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 2513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART TX Fifo Empty occurred ----------------------------------------------*/ 2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_TXFE) != 0U) && ((cr1its & USART_CR1_TXFEIE) != 0U)) 2517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Tx Fifo Empty Callback */ 2520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxFifoEmptyCallback(huart); 2521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Tx Fifo Empty Callback */ 2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_TxFifoEmptyCallback(huart); 2524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 2526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART RX Fifo Full occurred ----------------------------------------------*/ 2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_RXFF) != 0U) && ((cr1its & USART_CR1_RXFFIE) != 0U)) 2530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Rx Fifo Full Callback */ 2533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxFifoFullCallback(huart); 2534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 2535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Rx Fifo Full Callback */ 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxFifoFullCallback(huart); 2537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 2539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 46 2542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Tx Transfer completed callback. 2544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) 2548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 2551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_TxCpltCallback can be implemented in the user file. 2554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Tx Half Transfer completed callback. 2559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) 2563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 2566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_TxHalfCpltCallback can be implemented in the user file. 2569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Rx Transfer completed callback. 2574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 2578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 2581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_RxCpltCallback can be implemented in the user file. 2584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Rx Half Transfer completed callback. 2589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) 2593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 2596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_RxHalfCpltCallback can be implemented in the user file. ARM GAS /tmp/ccgDLloS.s page 47 2599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART error callback. 2604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) 2608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 2611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_ErrorCallback can be implemented in the user file. 2614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Abort Complete callback. 2619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) 2623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 2626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_AbortCpltCallback can be implemented in the user file. 2629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Abort Complete callback. 2634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) 2638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 2641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_AbortTransmitCpltCallback can be implemented in the user file. 2644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Abort Receive Complete callback. 2649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) 2653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); ARM GAS /tmp/ccgDLloS.s page 48 2656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UART_AbortReceiveCpltCallback can be implemented in the user file. 2659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Reception Event Callback (Rx event notification called after use of advanced reception 2664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle 2665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Number of data available in application reception buffer (indicates a position in 2666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * reception buffer until which, data are available) 2667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(huart); 2673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UNUSED(Size); 2674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** the HAL_UARTEx_RxEventCallback can be implemented in the user file. 2677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} 2682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group3 Peripheral Control functions 2685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART control functions 2686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * 2687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim 2688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== 2689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### Peripheral Control functions ##### 2690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** =============================================================================== 2691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 2692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This subsection provides a set of functions allowing to control the UART. 2693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_ReceiverTimeout_Config() API allows to configure the receiver timeout value on th 2694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_EnableReceiverTimeout() API enables the receiver timeout feature 2695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_UART_DisableReceiverTimeout() API disables the receiver timeout feature 2696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_MultiProcessor_EnableMuteMode() API enables mute mode 2697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_MultiProcessor_DisableMuteMode() API disables mute mode 2698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_MultiProcessor_EnterMuteMode() API enters mute mode 2699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) UART_SetConfig() API configures the UART peripheral 2700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) UART_AdvFeatureConfig() API optionally configures the UART advanced features 2701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) UART_CheckIdleState() API ensures that TEACK and/or REACK are set after initialization 2702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableTransmitter() API disables receiver and enables transmitter 2703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableReceiver() API disables transmitter and enables receiver 2704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) HAL_LIN_SendBreak() API transmits the break characters 2705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim 2706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 2707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Update on the fly the receiver timeout value in RTOR register. 2711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART module. ARM GAS /tmp/ccgDLloS.s page 49 2713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param TimeoutValue receiver timeout value in number of baud blocks. The timeout 2714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * value must be less or equal to 0x0FFFFFFFF. 2715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) 2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 2720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_RECEIVER_TIMEOUT_VALUE(TimeoutValue)); 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); 2723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enable the UART receiver timeout feature. 2728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART module. 2730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 2731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 2735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 2737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Locked */ 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 2740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the USART RTOEN bit */ 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); 2745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Unlocked */ 2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 2752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; 2756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 2761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Disable the UART receiver timeout feature. 2766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART module. 2768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 2769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ ARM GAS /tmp/ccgDLloS.s page 50 2770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) 2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 2773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 2775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Locked */ 2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 2778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the USART RTOEN bit */ 2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); 2783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Unlocked */ 2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 2790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_BUSY; 2794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 2797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 2799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enable UART in mute mode (does not mean UART enters mute mode; 2804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * to enter mute mode, HAL_MultiProcessor_EnterMuteMode() API must be called). 2805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 2807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) 2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 2811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable USART mute mode by setting the MME bit in the CR1 register */ 2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_MME); 2816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Disable UART mute mode (does not mean the UART actually exits mute mode 2824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * as it may not have been in mute mode at this very moment). 2825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status ARM GAS /tmp/ccgDLloS.s page 51 2827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) 2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 2831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable USART mute mode by clearing the MME bit in the CR1 register */ 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); 2836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (UART_CheckIdleState(huart)); 2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enter UART mute mode (means UART actually enters mute mode). 2844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note To exit from mute mode, HAL_MultiProcessor_DisableMuteMode() API must be called. 2845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 2847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) 2849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); 2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enable the UART transmitter and disable the UART receiver. 2855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 2857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) 2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear TE and RE bits */ 2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); 2865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the USART's transmit interface by setting the TE bit in the USART CR1 register */ 2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TE); 2868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Enable the UART receiver and disable the UART transmitter. 2878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status. 2880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) 2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); ARM GAS /tmp/ccgDLloS.s page 52 2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear TE and RE bits */ 2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); 2888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the USART's receive interface by setting the RE bit in the USART CR1 register */ 2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_RE); 2891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Transmit break characters. 2902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 2904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) 2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ 2908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); 2909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 2911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Send break characters */ 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); 2916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} 2926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group4 Peripheral State and Error functions 2929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief UART Peripheral State functions 2930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * 2931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @verbatim 2932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ============================================================================== 2933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ##### Peripheral State and Error functions ##### 2934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ============================================================================== 2935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** [..] 2936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** This subsection provides functions allowing to : 2937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Return the UART handle state. 2938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (+) Return the UART handle error code 2939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** @endverbatim ARM GAS /tmp/ccgDLloS.s page 53 2941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 2942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Return the UART handle state. 2946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART. 2948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL state 2949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart) 2951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t temp1; 2953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t temp2; 2954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** temp1 = huart->gState; 2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** temp2 = huart->RxState; 2956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return (HAL_UART_StateTypeDef)(temp1 | temp2); 2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Return the UART handle error code. 2962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART. 2964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval UART Error Code 2965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart) 2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return huart->ErrorCode; 2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} 2972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @} 2976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** @defgroup UART_Private_Functions UART Private Functions 2979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @{ 2980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 2983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Initialize the callbacks to their default values. 2984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 2985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval none 2986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 2987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) 2989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init the UART Callback settings */ 2991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC 2992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallb 2993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltC 2994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallb 2995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallba 2996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCa 2997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransm ARM GAS /tmp/ccgDLloS.s page 54 2998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceiv 2999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallb 3000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullC 3001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpty 3002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCall 3003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Configure the UART peripheral. 3009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 3011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tmpreg; 3015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t brrtemp; 3016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_ClockSourceTypeDef clocksource; 3017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t usartdiv; 3018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef ret = HAL_OK; 3019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t lpuart_ker_ck_pres; 3020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t pclk; 3021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ 3023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); 3024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_INSTANCE_LOWPOWER(huart)) 3026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); 3028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); 3032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); 3033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_PARITY(huart->Init.Parity)); 3036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode)); 3037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); 3038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 3039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); 3040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 3042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear M, PCE, PS, TE, RE and OVER8 bits and configure 3043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the UART Word Length, Parity, Mode and oversampling: 3044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * set the M bits according to huart->Init.WordLength value 3045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * set PCE and PS bits according to huart->Init.Parity value 3046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * set TE and RE bits according to huart->Init.Mode value 3047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * set OVER8 bit according to huart->Init.OverSampling value */ 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.O 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 3050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART CR2 Configuration -----------------------*/ 3052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure the UART Stop Bits: Set STOP[13:12] bits according 3053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * to huart->Init.StopBits value */ 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); ARM GAS /tmp/ccgDLloS.s page 55 3055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART CR3 Configuration -----------------------*/ 3057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure 3058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - UART HardWare Flow Control: set CTSE and RTSE bits according 3059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * to huart->Init.HwFlowCtl value 3060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - one-bit sampling method versus three samples' majority rule according 3061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * to huart->Init.OneBitSampling (not applicable to LPUART) */ 3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.HwFlowCtl; 3063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(UART_INSTANCE_LOWPOWER(huart))) 3065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmpreg |= huart->Init.OneBitSampling; 3067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); 3069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART PRESC Configuration -----------------------*/ 3071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure 3072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * - UART Clock Prescaler : set PRESCALER according to huart->Init.ClockPrescaler value */ 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); 3074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*-------------------------- USART BRR Configuration -----------------------*/ 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_GETCLOCKSOURCE(huart, clocksource); 3077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check LPUART instance */ 3079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_INSTANCE_LOWPOWER(huart)) 3080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Retrieve frequency clock */ 3082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (clocksource) 3083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK1: 3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK1Freq(); 3086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI: 3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) HSI_VALUE; 3089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_SYSCLK: 3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetSysClockFreq(); 3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: 3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) LSE_VALUE; 3095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default: 3097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = 0U; 3098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; 3099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If proper clock source reported */ 3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pclk != 0U) 3104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Compute clock after Prescaler */ 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); 3107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Ensure that Frequency clock is in the range [3 * baudrate, 4096 * baudrate] */ 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || 3110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 3111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 56 3112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; 3113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check computed UsartDiv value is in allocated range 3117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (it is forbidden to write values lower than 0x300 in the LPUART_BRR register) */ 3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescale 3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) 3120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = usartdiv; 3122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; 3126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } /* if ( (lpuart_ker_ck_pres < (3 * huart->Init.BaudRate) ) || 3128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096 * huart->Init.BaudRate) )) */ 3129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } /* if (pclk != 0) */ 3130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check UART Over Sampling to set Baud Rate Register */ 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) 3133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (clocksource) 3135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK1: 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK1Freq(); 3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2: 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); 3141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI: 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) HSI_VALUE; 3144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_SYSCLK: 3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetSysClockFreq(); 3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) LSE_VALUE; 3150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default: 3152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = 0U; 3153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; 3154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* USARTDIV must be greater than or equal to 0d16 */ 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pclk != 0U) 3159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** usartdiv = (uint16_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescal 3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 3162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp = (uint16_t)(usartdiv & 0xFFF0U); 3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; 3166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 57 3169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; 3170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** switch (clocksource) 3176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK1: 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK1Freq(); 3179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2: 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); 3182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI: 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) HSI_VALUE; 3185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_SYSCLK: 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = HAL_RCC_GetSysClockFreq(); 3188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = (uint32_t) LSE_VALUE; 3191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** default: 3193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pclk = 0U; 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; 3195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 3196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (pclk != 0U) 3199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* USARTDIV must be greater than or equal to 0d16 */ 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** usartdiv = (uint16_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPresca 3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 3203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = usartdiv; 3205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ret = HAL_ERROR; 3209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Initialize the number of data to process during RX/TX ISR execution */ 3214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->NbTxDataToProcess = 1; 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->NbRxDataToProcess = 1; 3216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear ISR function pointers */ 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 3220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return ret; 3222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Configure the UART peripheral advanced features. ARM GAS /tmp/ccgDLloS.s page 58 3226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) 3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check whether the set of advanced features to configure is properly set */ 3232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); 3233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure TX pin active level inversion */ 3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) 3236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); 3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); 3239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure RX pin active level inversion */ 3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) 3243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); 3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); 3246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure data inversion */ 3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) 3250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); 3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); 3253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure RX/TX pins swap */ 3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) 3257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); 3259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); 3260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure RX overrun detection disabling */ 3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) 3264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); 3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); 3267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure DMA disabling on reception error */ 3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) 3271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); 3274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure auto Baud rate detection scheme */ 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) 3278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); 3280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); 3282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* set auto Baudrate detection parameters if detection is enabled */ ARM GAS /tmp/ccgDLloS.s page 59 3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) 3284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); 3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); 3287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* if required, configure MSB first on communication line */ 3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) 3292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); 3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); 3295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Check the UART Idle State. 3300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 3302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) 3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; 3306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Initialize the UART ErrorCode */ 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Init tickstart for timeout management */ 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tickstart = HAL_GetTick(); 3312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if the Transmitter is enabled */ 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) 3315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until TEACK flag is set */ 3317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALU 3318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Timeout occurred */ 3320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 3321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if the Receiver is enabled */ 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) 3326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until REACK flag is set */ 3328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALU 3329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Timeout occurred */ 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 3332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Initialize the UART State */ 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 60 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 3341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Handle UART Communication Timeout. 3347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Flag Specifies the UART flag to check 3349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Status Flag status (SET or RESET) 3350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Tickstart Tick start value 3351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Timeout Timeout duration 3352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 3353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus 3355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t Tickstart, uint32_t Timeout) 3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until flag is set */ 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 3359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check for the Timeout */ 3361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (Timeout != HAL_MAX_DELAY) 3362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 3364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) 3366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** interrupts for the interrupt process */ 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEI 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 3374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 3376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) 3379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) 3381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear Receiver Timeout flag*/ 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); 3384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) 3386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** interrupts for the interrupt process */ 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TX 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 3393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Process Unlocked */ 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 3396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 61 3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_TIMEOUT; 3398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Start Receive operation in interrupt mode. 3407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This function could be called by all HAL UART API providing reception in Interrupt mode 3408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When calling this function, parameters validity is considered as already checked, 3409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * i.e. Rx State, buffer address, ... 3410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * UART Handle is assumed as Locked. 3411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 3413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 3414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 3415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; 3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 3422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Computation of UART mask to apply to RDR register */ 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_MASK_COMPUTATION(huart); 3425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 3428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 3431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Configure Rx interrupt processing */ 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) 3434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the Rx ISR function pointer according to the data word length */ 3436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 3437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_16BIT_FIFOEN; 3439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_8BIT_FIFOEN; 3443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 3446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Parity Error interrupt and RX FIFO Threshold interrupt */ 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); 3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); 3450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the Rx ISR function pointer according to the data word length */ ARM GAS /tmp/ccgDLloS.s page 62 3454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 3455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_16BIT; 3457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_8BIT; 3461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 3464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Parity Error interrupt and Data Register Not Empty interrupt */ 3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); 3467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Start Receive operation in DMA mode. 3473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note This function could be called by all HAL UART API providing reception in DMA mode. 3474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When calling this function, parameters validity is considered as already checked, 3475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * i.e. Rx State, buffer address, ... 3476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * UART Handle is assumed as Locked. 3477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 3479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 3480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval HAL status 3481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; 3486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 3489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) 3491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ 3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; 3494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ 3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; 3497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the DMA error callback */ 3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferErrorCallback = UART_DMAError; 3500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set the DMA abort callback */ 3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 3503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the DMA channel */ 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPt 3506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Set error code to DMA */ 3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 3509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); ARM GAS /tmp/ccgDLloS.s page 63 3511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to ready */ 3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_ERROR; 3516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UNLOCK(huart); 3519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */ 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); 3522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 3525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the DMA transfer for the receiver request by setting the DMAR bit 3527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ 3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); 3529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return HAL_OK; 3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit compl 3536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart) 3540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXEIE, TCIE, TXFT interrupts */ 3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); 3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); 3544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception comp 3552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart) 3556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); 3560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ 3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 3565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ ARM GAS /tmp/ccgDLloS.s page 64 3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset RxIsr function pointer */ 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 3573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART transmit process complete callback. 3578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) 3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Normal mode */ 3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_CLR(hdma->Instance->CCR, DMA_CCR_CIRC)) 3587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 3589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the DMA transfer for transmit request by resetting the DMAT bit 3591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ 3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 3593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 3596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Circular mode */ 3598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 3602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback(huart); 3603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 3605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); 3606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART transmit process half complete callback. 3612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma) 3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Tx Half complete callback*/ 3621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxHalfCpltCallback(huart); 3622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Tx Half complete callback*/ 3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback(huart); ARM GAS /tmp/ccgDLloS.s page 65 3625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART receive process complete callback. 3630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* DMA Normal mode */ 3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (HAL_IS_BIT_CLR(hdma->Instance->CCR, DMA_CCR_CIRC)) 3639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by resetting the DMAR bit 3647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** in the UART CR3 register */ 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 3649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If Reception till IDLE event has been selected, Disable IDLE Interrupt */ 3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 3657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : 3661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : use Rx Event callback */ 3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 3666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 3667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); 3670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In other cases : use Rx Complete callback */ 3675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 3677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); 3678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 3681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ ARM GAS /tmp/ccgDLloS.s page 66 3682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART receive process half complete callback. 3687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma) 3691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : 3695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : use Rx Event callback */ 3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 3700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize / 2U); 3701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); 3704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* In other cases : use Rx Half Complete callback */ 3709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Half complete callback*/ 3711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxHalfCpltCallback(huart); 3712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Half complete callback*/ 3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxHalfCpltCallback(huart); 3715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART communication error callback. 3721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma) 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; 3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; 3730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && 3733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 3734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 3736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndTxTransfer(huart); 3737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 67 3739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */ 3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && 3741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 3742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndRxTransfer(huart); 3745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_DMA; 3748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ 3751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); 3752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ 3754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 3755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART communication abort callback, when initiated by HAL services on Error 3760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (To be called at end of DMA Abort procedure following error occurrence). 3761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) 3765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 3769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ 3772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); 3773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ 3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 3776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user 3781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (To be called at end of DMA Tx Abort procedure following user abort request). 3782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no 3783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * Abort still ongoing for Rx DMA Handle. 3784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma) 3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 3792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ 3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx != NULL) 3795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 68 3796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmarx->XferAbortCallback != NULL) 3797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 3799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset errorCode */ 3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 3811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) 3814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); 3816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 3819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user Abort complete callback */ 3824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort complete callback */ 3826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 3827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 3830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user 3836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (To be called at end of DMA Rx Abort procedure following user abort request). 3837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no 3838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * Abort still ongoing for Tx DMA Handle. 3839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma) 3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 3847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx != NULL) 3850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->hdmatx->XferAbortCallback != NULL) 3852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 69 3853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return; 3854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba 3858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Reset errorCode */ 3862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 3866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ 3868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 3869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user Abort complete callback */ 3876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort complete callback */ 3878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 3879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 3882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user by a call to 3888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * HAL_UART_AbortTransmit_IT API (Abort only Tx transfer) 3889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (This callback is executed at end of DMA Tx Abort procedure following user abort reques 3890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * and leads to user Tx Abort Complete callback execution). 3891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma) 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 3899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Flush the whole TX FIFO (if needed) */ 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->FifoMode == UART_FIFOMODE_ENABLE) 3902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); 3904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user Abort complete callback */ ARM GAS /tmp/ccgDLloS.s page 70 3910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 3912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 3913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 3916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user by a call to 3921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * HAL_UART_AbortReceive_IT API (Abort only Rx transfer) 3922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * (This callback is executed at end of DMA Rx Abort procedure following user abort reques 3923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * and leads to user Rx Abort Complete callback execution). 3924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param hdma DMA handle. 3925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma) 3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear the Error flags in the ICR register */ 3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 3935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Discard the received data */ 3937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 3938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 3940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call user Abort complete callback */ 3944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 3946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 3947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 3948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 3949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 3950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief TX interrupt handler for 7 or 8 bits data word length . 3955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once 3956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Transmit_IT(). 3957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) 3961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ 3963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 3964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxXferCount == 0U) 3966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 71 3967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Transmit Data Register Empty Interrupt */ 3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); 3969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 3972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 3974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); 3976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; 3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; 3978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 3983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief TX interrupt handler for 9 bits data word length. 3984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once 3985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Transmit_IT(). 3986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 3987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 3988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 3989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) 3990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 26 .loc 1 3990 0 27 .cfi_startproc 28 @ args = 0, pretend = 0, frame = 0 29 @ frame_needed = 0, uses_anonymous_args = 0 30 @ link register save eliminated. 31 .LVL0: 3991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *tmp; 3992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ 3994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 32 .loc 1 3994 0 33 0000 D0F88430 ldr r3, [r0, #132] 34 0004 212B cmp r3, #33 35 0006 00D0 beq .L5 3995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxXferCount == 0U) 3997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Transmit Data Register Empty Interrupt */ 3999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); 4000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 4002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 4003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pTxBuffPtr; 4007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); 4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; 4010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 36 .loc 1 4012 0 ARM GAS /tmp/ccgDLloS.s page 72 37 0008 7047 bx lr 38 .L5: 3996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 39 .loc 1 3996 0 40 000a B0F85630 ldrh r3, [r0, #86] 41 000e 0268 ldr r2, [r0] 42 0010 9BB2 uxth r3, r3 43 0012 6BB1 cbz r3, .L6 44 .LVL1: 4007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 45 .loc 1 4007 0 46 0014 016D ldr r1, [r0, #80] 47 0016 31F8023B ldrh r3, [r1], #2 48 001a C3F30803 ubfx r3, r3, #0, #9 49 001e 9362 str r3, [r2, #40] 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 50 .loc 1 4009 0 51 0020 B0F85630 ldrh r3, [r0, #86] 4008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; 52 .loc 1 4008 0 53 0024 0165 str r1, [r0, #80] 54 .LVL2: 4009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 55 .loc 1 4009 0 56 0026 013B subs r3, r3, #1 57 0028 9BB2 uxth r3, r3 58 002a A0F85630 strh r3, [r0, #86] @ movhi 59 .loc 1 4012 0 60 002e 7047 bx lr 61 .LVL3: 62 .L6: 63 .LBB18: 64 .LBB19: 3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 65 .loc 1 3968 0 66 0030 1368 ldr r3, [r2] 67 0032 23F08003 bic r3, r3, #128 68 0036 1360 str r3, [r2] 3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 69 .loc 1 3971 0 70 0038 1368 ldr r3, [r2] 71 003a 43F04003 orr r3, r3, #64 72 003e 1360 str r3, [r2] 73 0040 7047 bx lr 74 .LBE19: 75 .LBE18: 76 .cfi_endproc 77 .LFE391: 79 0042 00BF .section .text.UART_TxISR_16BIT_FIFOEN,"ax",%progbits 80 .align 1 81 .p2align 2,,3 82 .syntax unified 83 .thumb 84 .thumb_func 85 .fpu fpv4-sp-d16 87 UART_TxISR_16BIT_FIFOEN: 88 .LFB393: ARM GAS /tmp/ccgDLloS.s page 73 4013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 4015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief TX interrupt handler for 7 or 8 bits data word length and FIFO mode is enabled. 4016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once 4017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Transmit_IT(). 4018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 4019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 4020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 4021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) 4022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_tx_data; 4024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ 4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 4027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) 4029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxXferCount == 0U) 4031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the TX FIFO threshold interrupt */ 4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); 4034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 4037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; /* force exit loop */ 4039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) 4041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); 4043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; 4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; 4045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Nothing to do */ 4049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 4055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief TX interrupt handler for 9 bits data word length and FIFO mode is enabled. 4056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once 4057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Transmit_IT(). 4058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 4059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 4060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 4061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) 4062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 89 .loc 1 4062 0 90 .cfi_startproc 91 @ args = 0, pretend = 0, frame = 0 92 @ frame_needed = 0, uses_anonymous_args = 0 93 @ link register save eliminated. 94 .LVL4: 4063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *tmp; ARM GAS /tmp/ccgDLloS.s page 74 4064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_tx_data; 4065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ 4067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 95 .loc 1 4067 0 96 0000 D0F88430 ldr r3, [r0, #132] 97 0004 212B cmp r3, #33 98 0006 00D0 beq .L29 99 .L26: 100 0008 7047 bx lr 101 .L29: 4068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) 102 .loc 1 4069 0 103 000a B0F86A30 ldrh r3, [r0, #106] 104 .LVL5: 105 000e 002B cmp r3, #0 106 0010 FAD0 beq .L26 4070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->TxXferCount == 0U) 107 .loc 1 4071 0 108 0012 B0F85620 ldrh r2, [r0, #86] 109 0016 92B2 uxth r2, r2 4062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *tmp; 110 .loc 1 4062 0 111 0018 10B4 push {r4} 112 .LCFI0: 113 .cfi_def_cfa_offset 4 114 .cfi_offset 4, -4 115 001a 0468 ldr r4, [r0] 116 .loc 1 4071 0 117 001c C2B1 cbz r2, .L11 118 .L12: 119 .LVL6: 4072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the TX FIFO threshold interrupt */ 4074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); 4075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 4077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 4078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; /* force exit loop */ 4080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) 120 .loc 1 4081 0 121 001e E269 ldr r2, [r4, #28] 4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 122 .loc 1 4069 0 123 0020 013B subs r3, r3, #1 124 .LVL7: 125 .loc 1 4081 0 126 0022 12F0800F tst r2, #128 4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 127 .loc 1 4069 0 128 0026 9BB2 uxth r3, r3 129 .LVL8: 130 .loc 1 4081 0 ARM GAS /tmp/ccgDLloS.s page 75 131 0028 0CD0 beq .L13 4082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pTxBuffPtr; 4084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); 132 .loc 1 4084 0 133 002a 016D ldr r1, [r0, #80] 134 002c 31F8022B ldrh r2, [r1], #2 135 0030 C2F30802 ubfx r2, r2, #0, #9 136 0034 A262 str r2, [r4, #40] 4085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 4086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; 137 .loc 1 4086 0 138 0036 B0F85620 ldrh r2, [r0, #86] 4085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 139 .loc 1 4085 0 140 003a 0165 str r1, [r0, #80] 141 .LVL9: 142 .loc 1 4086 0 143 003c 013A subs r2, r2, #1 144 003e 92B2 uxth r2, r2 145 0040 A0F85620 strh r2, [r0, #86] @ movhi 146 .LVL10: 147 .L13: 4069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 148 .loc 1 4069 0 discriminator 2 149 0044 63B1 cbz r3, .L7 4071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 150 .loc 1 4071 0 151 0046 B0F85620 ldrh r2, [r0, #86] 152 004a 92B2 uxth r2, r2 153 004c 002A cmp r2, #0 154 004e E6D1 bne .L12 155 .L11: 156 .LVL11: 157 .LBB22: 158 .LBB23: 4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 159 .loc 1 4033 0 160 0050 A368 ldr r3, [r4, #8] 161 .LVL12: 162 0052 23F40003 bic r3, r3, #8388608 163 0056 A360 str r3, [r4, #8] 4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 164 .loc 1 4036 0 165 0058 2368 ldr r3, [r4] 166 005a 43F04003 orr r3, r3, #64 167 005e 2360 str r3, [r4] 168 .LVL13: 169 .L7: 170 .LBE23: 171 .LBE22: 4087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Nothing to do */ 4091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 76 4093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 172 .loc 1 4094 0 173 0060 5DF8044B ldr r4, [sp], #4 174 .LCFI1: 175 .cfi_restore 4 176 .cfi_def_cfa_offset 0 177 0064 7047 bx lr 178 .cfi_endproc 179 .LFE393: 181 0066 00BF .section .text.UART_TxISR_8BIT,"ax",%progbits 182 .align 1 183 .p2align 2,,3 184 .syntax unified 185 .thumb 186 .thumb_func 187 .fpu fpv4-sp-d16 189 UART_TxISR_8BIT: 190 .LFB390: 3961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ 191 .loc 1 3961 0 192 .cfi_startproc 193 @ args = 0, pretend = 0, frame = 0 194 @ frame_needed = 0, uses_anonymous_args = 0 195 @ link register save eliminated. 196 .LVL14: 3963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 197 .loc 1 3963 0 198 0000 D0F88430 ldr r3, [r0, #132] 199 0004 212B cmp r3, #33 200 0006 00D0 beq .L33 3980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 201 .loc 1 3980 0 202 0008 7047 bx lr 203 .L33: 3965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 204 .loc 1 3965 0 205 000a B0F85630 ldrh r3, [r0, #86] 206 000e 0268 ldr r2, [r0] 207 0010 9BB2 uxth r3, r3 208 0012 5BB1 cbz r3, .L34 3975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; 209 .loc 1 3975 0 210 0014 016D ldr r1, [r0, #80] 211 0016 11F8013B ldrb r3, [r1], #1 @ zero_extendqisi2 212 001a 9362 str r3, [r2, #40] 3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 213 .loc 1 3977 0 214 001c B0F85630 ldrh r3, [r0, #86] 3976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; 215 .loc 1 3976 0 216 0020 0165 str r1, [r0, #80] 3977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 217 .loc 1 3977 0 218 0022 013B subs r3, r3, #1 219 0024 9BB2 uxth r3, r3 220 0026 A0F85630 strh r3, [r0, #86] @ movhi ARM GAS /tmp/ccgDLloS.s page 77 3980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 221 .loc 1 3980 0 222 002a 7047 bx lr 223 .L34: 224 .LVL15: 225 .LBB26: 226 .LBB27: 3968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 227 .loc 1 3968 0 228 002c 1368 ldr r3, [r2] 229 002e 23F08003 bic r3, r3, #128 230 0032 1360 str r3, [r2] 3971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 231 .loc 1 3971 0 232 0034 1368 ldr r3, [r2] 233 0036 43F04003 orr r3, r3, #64 234 003a 1360 str r3, [r2] 235 003c 7047 bx lr 236 .LBE27: 237 .LBE26: 238 .cfi_endproc 239 .LFE390: 241 003e 00BF .section .text.UART_TxISR_8BIT_FIFOEN,"ax",%progbits 242 .align 1 243 .p2align 2,,3 244 .syntax unified 245 .thumb 246 .thumb_func 247 .fpu fpv4-sp-d16 249 UART_TxISR_8BIT_FIFOEN: 250 .LFB392: 4022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_tx_data; 251 .loc 1 4022 0 252 .cfi_startproc 253 @ args = 0, pretend = 0, frame = 0 254 @ frame_needed = 0, uses_anonymous_args = 0 255 @ link register save eliminated. 256 .LVL16: 4026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 257 .loc 1 4026 0 258 0000 D0F88430 ldr r3, [r0, #132] 259 0004 212B cmp r3, #33 260 0006 00D0 beq .L57 261 .L54: 262 0008 7047 bx lr 263 .L57: 4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 264 .loc 1 4028 0 265 000a B0F86A30 ldrh r3, [r0, #106] 266 .LVL17: 267 000e 002B cmp r3, #0 268 0010 FAD0 beq .L54 4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 269 .loc 1 4030 0 270 0012 B0F85620 ldrh r2, [r0, #86] 271 0016 92B2 uxth r2, r2 4022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_tx_data; ARM GAS /tmp/ccgDLloS.s page 78 272 .loc 1 4022 0 273 0018 10B4 push {r4} 274 .LCFI2: 275 .cfi_def_cfa_offset 4 276 .cfi_offset 4, -4 277 001a 0468 ldr r4, [r0] 4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 278 .loc 1 4030 0 279 001c B2B1 cbz r2, .L39 280 .L40: 4040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 281 .loc 1 4040 0 282 001e E269 ldr r2, [r4, #28] 4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 283 .loc 1 4028 0 284 0020 013B subs r3, r3, #1 285 .LVL18: 4040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 286 .loc 1 4040 0 287 0022 12F0800F tst r2, #128 4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 288 .loc 1 4028 0 289 0026 9BB2 uxth r3, r3 290 .LVL19: 4040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 291 .loc 1 4040 0 292 0028 0AD0 beq .L41 4042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pTxBuffPtr++; 293 .loc 1 4042 0 294 002a 016D ldr r1, [r0, #80] 295 002c 11F8012B ldrb r2, [r1], #1 @ zero_extendqisi2 296 0030 A262 str r2, [r4, #40] 4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 297 .loc 1 4044 0 298 0032 B0F85620 ldrh r2, [r0, #86] 4043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount--; 299 .loc 1 4043 0 300 0036 0165 str r1, [r0, #80] 4044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 301 .loc 1 4044 0 302 0038 013A subs r2, r2, #1 303 003a 92B2 uxth r2, r2 304 003c A0F85620 strh r2, [r0, #86] @ movhi 305 .L41: 4028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 306 .loc 1 4028 0 discriminator 2 307 0040 63B1 cbz r3, .L35 4030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 308 .loc 1 4030 0 309 0042 B0F85620 ldrh r2, [r0, #86] 310 0046 92B2 uxth r2, r2 311 0048 002A cmp r2, #0 312 004a E8D1 bne .L40 313 .L39: 314 .LVL20: 315 .LBB30: 316 .LBB31: ARM GAS /tmp/ccgDLloS.s page 79 4033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 317 .loc 1 4033 0 318 004c A368 ldr r3, [r4, #8] 319 .LVL21: 320 004e 23F40003 bic r3, r3, #8388608 321 0052 A360 str r3, [r4, #8] 4036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 322 .loc 1 4036 0 323 0054 2368 ldr r3, [r4] 324 0056 43F04003 orr r3, r3, #64 325 005a 2360 str r3, [r4] 326 .LVL22: 327 .L35: 328 .LBE31: 329 .LBE30: 4052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 330 .loc 1 4052 0 331 005c 5DF8044B ldr r4, [sp], #4 332 .LCFI3: 333 .cfi_restore 4 334 .cfi_def_cfa_offset 0 335 0060 7047 bx lr 336 .cfi_endproc 337 .LFE392: 339 0062 00BF .section .text.HAL_UART_MspInit,"ax",%progbits 340 .align 1 341 .p2align 2,,3 342 .weak HAL_UART_MspInit 343 .syntax unified 344 .thumb 345 .thumb_func 346 .fpu fpv4-sp-d16 348 HAL_UART_MspInit: 349 .LFB334: 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 350 .loc 1 671 0 351 .cfi_startproc 352 @ args = 0, pretend = 0, frame = 0 353 @ frame_needed = 0, uses_anonymous_args = 0 354 @ link register save eliminated. 355 .LVL23: 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 356 .loc 1 678 0 357 0000 7047 bx lr 358 .cfi_endproc 359 .LFE334: 361 0002 00BF .section .text.HAL_UART_MspDeInit,"ax",%progbits 362 .align 1 363 .p2align 2,,3 364 .weak HAL_UART_MspDeInit 365 .syntax unified 366 .thumb 367 .thumb_func 368 .fpu fpv4-sp-d16 370 HAL_UART_MspDeInit: 371 .LFB406: 372 .cfi_startproc ARM GAS /tmp/ccgDLloS.s page 80 373 @ args = 0, pretend = 0, frame = 0 374 @ frame_needed = 0, uses_anonymous_args = 0 375 @ link register save eliminated. 376 0000 7047 bx lr 377 .cfi_endproc 378 .LFE406: 380 0002 00BF .section .text.HAL_UART_DeInit,"ax",%progbits 381 .align 1 382 .p2align 2,,3 383 .global HAL_UART_DeInit 384 .syntax unified 385 .thumb 386 .thumb_func 387 .fpu fpv4-sp-d16 389 HAL_UART_DeInit: 390 .LFB333: 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 391 .loc 1 625 0 392 .cfi_startproc 393 @ args = 0, pretend = 0, frame = 0 394 @ frame_needed = 0, uses_anonymous_args = 0 395 .LVL24: 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 396 .loc 1 627 0 397 0000 D0B1 cbz r0, .L62 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 398 .loc 1 625 0 399 0002 38B5 push {r3, r4, r5, lr} 400 .LCFI4: 401 .cfi_def_cfa_offset 16 402 .cfi_offset 3, -16 403 .cfi_offset 4, -12 404 .cfi_offset 5, -8 405 .cfi_offset 14, -4 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 406 .loc 1 635 0 407 0004 2422 movs r2, #36 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 408 .loc 1 637 0 409 0006 0368 ldr r3, [r0] 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 410 .loc 1 635 0 411 0008 C0F88420 str r2, [r0, #132] 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 412 .loc 1 637 0 413 000c 1A68 ldr r2, [r3] 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR2 = 0x0U; 414 .loc 1 639 0 415 000e 0025 movs r5, #0 416 0010 0446 mov r4, r0 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 417 .loc 1 637 0 418 0012 22F00102 bic r2, r2, #1 419 0016 1A60 str r2, [r3] 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR2 = 0x0U; 420 .loc 1 639 0 421 0018 1D60 str r5, [r3] ARM GAS /tmp/ccgDLloS.s page 81 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->CR3 = 0x0U; 422 .loc 1 640 0 423 001a 5D60 str r5, [r3, #4] 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 424 .loc 1 641 0 425 001c 9D60 str r5, [r3, #8] 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 426 .loc 1 652 0 427 001e FFF7FEFF bl HAL_UART_MspDeInit 428 .LVL25: 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 429 .loc 1 655 0 430 0022 C4F88C50 str r5, [r4, #140] 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 431 .loc 1 660 0 432 0026 84F88050 strb r5, [r4, #128] 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 433 .loc 1 656 0 434 002a C4F88450 str r5, [r4, #132] 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 435 .loc 1 662 0 436 002e 2846 mov r0, r5 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 437 .loc 1 657 0 438 0030 C4F88850 str r5, [r4, #136] 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 439 .loc 1 658 0 440 0034 E566 str r5, [r4, #108] 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 441 .loc 1 663 0 442 0036 38BD pop {r3, r4, r5, pc} 443 .LVL26: 444 .L62: 445 .LCFI5: 446 .cfi_def_cfa_offset 0 447 .cfi_restore 3 448 .cfi_restore 4 449 .cfi_restore 5 450 .cfi_restore 14 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 451 .loc 1 629 0 452 0038 0120 movs r0, #1 453 .LVL27: 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 454 .loc 1 663 0 455 003a 7047 bx lr 456 .cfi_endproc 457 .LFE333: 459 .section .text.HAL_UART_Transmit,"ax",%progbits 460 .align 1 461 .p2align 2,,3 462 .global HAL_UART_Transmit 463 .syntax unified 464 .thumb 465 .thumb_func 466 .fpu fpv4-sp-d16 468 HAL_UART_Transmit: ARM GAS /tmp/ccgDLloS.s page 82 469 .LFB336: 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint8_t *pdata8bits; 470 .loc 1 1122 0 471 .cfi_startproc 472 @ args = 0, pretend = 0, frame = 8 473 @ frame_needed = 0, uses_anonymous_args = 0 474 .LVL28: 475 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 476 .LCFI6: 477 .cfi_def_cfa_offset 28 478 .cfi_offset 4, -28 479 .cfi_offset 5, -24 480 .cfi_offset 6, -20 481 .cfi_offset 7, -16 482 .cfi_offset 8, -12 483 .cfi_offset 9, -8 484 .cfi_offset 14, -4 485 0004 0E46 mov r6, r1 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 486 .loc 1 1128 0 487 0006 D0F88410 ldr r1, [r0, #132] 488 .LVL29: 489 000a 2029 cmp r1, #32 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint8_t *pdata8bits; 490 .loc 1 1122 0 491 000c 83B0 sub sp, sp, #12 492 .LCFI7: 493 .cfi_def_cfa_offset 40 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 494 .loc 1 1128 0 495 000e 47D1 bne .L95 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 496 .loc 1 1130 0 497 0010 002E cmp r6, #0 498 0012 49D0 beq .L94 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 499 .loc 1 1130 0 is_stmt 0 discriminator 1 500 0014 0192 str r2, [sp, #4] 501 0016 002A cmp r2, #0 502 0018 46D0 beq .L94 503 001a 1D46 mov r5, r3 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 504 .loc 1 1135 0 is_stmt 1 505 001c 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 506 .LVL30: 507 0020 012B cmp r3, #1 508 0022 0446 mov r4, r0 509 0024 3CD0 beq .L95 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 510 .loc 1 1138 0 discriminator 2 511 0026 2123 movs r3, #33 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 512 .loc 1 1135 0 discriminator 2 513 0028 0121 movs r1, #1 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 514 .loc 1 1137 0 discriminator 2 515 002a 0027 movs r7, #0 ARM GAS /tmp/ccgDLloS.s page 83 516 002c C0F88C70 str r7, [r0, #140] 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 517 .loc 1 1135 0 discriminator 2 518 0030 80F88010 strb r1, [r0, #128] 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 519 .loc 1 1138 0 discriminator 2 520 0034 C0F88430 str r3, [r0, #132] 1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 521 .loc 1 1141 0 discriminator 2 522 0038 FFF7FEFF bl HAL_GetTick 523 .LVL31: 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 524 .loc 1 1147 0 discriminator 2 525 003c A368 ldr r3, [r4, #8] 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; 526 .loc 1 1143 0 discriminator 2 527 003e 019A ldr r2, [sp, #4] 528 0040 A4F85420 strh r2, [r4, #84] @ movhi 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 529 .loc 1 1147 0 discriminator 2 530 0044 B3F5805F cmp r3, #4096 1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 531 .loc 1 1141 0 discriminator 2 532 0048 8046 mov r8, r0 533 .LVL32: 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 534 .loc 1 1144 0 discriminator 2 535 004a A4F85620 strh r2, [r4, #86] @ movhi 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 536 .loc 1 1147 0 discriminator 2 537 004e 00F09780 beq .L120 538 .LVL33: 539 .L69: 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 540 .loc 1 1160 0 541 0052 B4F85630 ldrh r3, [r4, #86] 542 0056 2068 ldr r0, [r4] 543 .LVL34: 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 544 .loc 1 1158 0 545 0058 0022 movs r2, #0 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 546 .loc 1 1160 0 547 005a 9BB2 uxth r3, r3 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 548 .loc 1 1158 0 549 005c 84F88020 strb r2, [r4, #128] 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 550 .loc 1 1160 0 551 0060 A3B1 cbz r3, .L83 552 .L82: 553 0062 6A1C adds r2, r5, #1 554 0064 24D1 bne .L76 555 .L77: 556 .LBB40: 557 .LBB41: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 84 558 .loc 1 3358 0 559 0066 C269 ldr r2, [r0, #28] 560 0068 1306 lsls r3, r2, #24 561 006a FCD5 bpl .L77 562 .L78: 563 .LBE41: 564 .LBE40: 1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 565 .loc 1 1166 0 566 006c 002E cmp r6, #0 567 006e 48D0 beq .L121 1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; 568 .loc 1 1173 0 569 0070 16F8013B ldrb r3, [r6], #1 @ zero_extendqisi2 570 .LVL35: 571 .L119: 572 0074 8362 str r3, [r0, #40] 573 .LVL36: 1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 574 .loc 1 1176 0 575 0076 B4F85630 ldrh r3, [r4, #86] 576 007a 013B subs r3, r3, #1 577 007c 9BB2 uxth r3, r3 578 007e A4F85630 strh r3, [r4, #86] @ movhi 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 579 .loc 1 1160 0 580 0082 B4F85630 ldrh r3, [r4, #86] 581 0086 9BB2 uxth r3, r3 582 0088 002B cmp r3, #0 583 008a EAD1 bne .L82 584 .LVL37: 585 .L83: 586 008c 6A1C adds r2, r5, #1 587 008e 3DD1 bne .L88 588 .L89: 589 .LBB44: 590 .LBB45: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 591 .loc 1 3358 0 592 0090 C369 ldr r3, [r0, #28] 593 0092 5B06 lsls r3, r3, #25 594 0094 FCD5 bpl .L89 595 .L90: 596 .LBE45: 597 .LBE44: 1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 598 .loc 1 1185 0 599 0096 2023 movs r3, #32 600 0098 C4F88430 str r3, [r4, #132] 1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 601 .loc 1 1187 0 602 009c 0020 movs r0, #0 603 009e 00E0 b .L68 604 .LVL38: 605 .L95: 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 606 .loc 1 1191 0 ARM GAS /tmp/ccgDLloS.s page 85 607 00a0 0220 movs r0, #2 608 .LVL39: 609 .L68: 1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 610 .loc 1 1193 0 611 00a2 03B0 add sp, sp, #12 612 .LCFI8: 613 .cfi_remember_state 614 .cfi_def_cfa_offset 28 615 @ sp needed 616 00a4 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 617 .LVL40: 618 .L94: 619 .LCFI9: 620 .cfi_restore_state 1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 621 .loc 1 1132 0 622 00a8 0120 movs r0, #1 623 .LVL41: 1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 624 .loc 1 1193 0 625 00aa 03B0 add sp, sp, #12 626 .LCFI10: 627 .cfi_remember_state 628 .cfi_def_cfa_offset 28 629 @ sp needed 630 00ac BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 631 .LVL42: 632 .L76: 633 .LCFI11: 634 .cfi_restore_state 635 .LBB53: 636 .LBB42: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 637 .loc 1 3358 0 638 00b0 C369 ldr r3, [r0, #28] 639 00b2 13F08009 ands r9, r3, #128 640 00b6 D9D1 bne .L78 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 641 .loc 1 3363 0 642 00b8 FFF7FEFF bl HAL_GetTick 643 .LVL43: 644 00bc A0EB0800 sub r0, r0, r8 645 00c0 8542 cmp r5, r0 646 00c2 2068 ldr r0, [r4] 647 00c4 4AD3 bcc .L85 648 00c6 002D cmp r5, #0 649 00c8 48D0 beq .L85 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 650 .loc 1 3378 0 651 00ca 0368 ldr r3, [r0] 652 00cc 5B07 lsls r3, r3, #29 653 00ce C8D5 bpl .L82 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 654 .loc 1 3380 0 655 00d0 C369 ldr r3, [r0, #28] 656 00d2 1905 lsls r1, r3, #20 ARM GAS /tmp/ccgDLloS.s page 86 657 00d4 C5D5 bpl .L82 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 658 .loc 1 3383 0 659 00d6 4FF40063 mov r3, #2048 660 00da 0362 str r3, [r0, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 661 .loc 1 3387 0 662 00dc 0368 ldr r3, [r0] 663 00de 23F4D073 bic r3, r3, #416 664 00e2 0360 str r3, [r0] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 665 .loc 1 3388 0 666 00e4 8268 ldr r2, [r0, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 667 .loc 1 3390 0 668 00e6 2023 movs r3, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 669 .loc 1 3388 0 670 00e8 22F00102 bic r2, r2, #1 671 00ec 8260 str r2, [r0, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 672 .loc 1 3390 0 673 00ee C4F88430 str r3, [r4, #132] 674 .LBE42: 675 .LBE53: 1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 676 .loc 1 1164 0 677 00f2 0320 movs r0, #3 678 .LBB54: 679 .LBB43: 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 680 .loc 1 3391 0 681 00f4 C4F88830 str r3, [r4, #136] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 682 .loc 1 3395 0 683 00f8 84F88090 strb r9, [r4, #128] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 684 .loc 1 3392 0 685 00fc C4F88C30 str r3, [r4, #140] 686 0100 CFE7 b .L68 687 .L121: 688 .LBE43: 689 .LBE54: 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; 690 .loc 1 1168 0 691 0102 37F8023B ldrh r3, [r7], #2 692 .LVL44: 693 0106 C3F30803 ubfx r3, r3, #0, #9 694 010a B3E7 b .L119 695 .LVL45: 696 .L88: 697 .LBB55: 698 .LBB50: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 699 .loc 1 3358 0 700 010c C669 ldr r6, [r0, #28] 701 010e 16F04006 ands r6, r6, #64 ARM GAS /tmp/ccgDLloS.s page 87 702 0112 C0D1 bne .L90 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 703 .loc 1 3363 0 704 0114 FFF7FEFF bl HAL_GetTick 705 .LVL46: 706 0118 A0EB0800 sub r0, r0, r8 707 011c 8542 cmp r5, r0 708 011e 2068 ldr r0, [r4] 709 0120 1CD3 bcc .L85 710 0122 DDB1 cbz r5, .L85 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 711 .loc 1 3378 0 712 0124 0368 ldr r3, [r0] 713 0126 5F07 lsls r7, r3, #29 714 0128 B0D5 bpl .L83 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 715 .loc 1 3380 0 716 012a C369 ldr r3, [r0, #28] 717 012c 1905 lsls r1, r3, #20 718 012e ADD5 bpl .L83 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 719 .loc 1 3383 0 720 0130 4FF40063 mov r3, #2048 721 0134 0362 str r3, [r0, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 722 .loc 1 3387 0 723 0136 0368 ldr r3, [r0] 724 0138 23F4D073 bic r3, r3, #416 725 013c 0360 str r3, [r0] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 726 .loc 1 3388 0 727 013e 8268 ldr r2, [r0, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 728 .loc 1 3390 0 729 0140 2023 movs r3, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 730 .loc 1 3388 0 731 0142 22F00102 bic r2, r2, #1 732 0146 8260 str r2, [r0, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 733 .loc 1 3390 0 734 0148 C4F88430 str r3, [r4, #132] 735 .LBE50: 736 .LBE55: 1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 737 .loc 1 1181 0 738 014c 0320 movs r0, #3 739 .LBB56: 740 .LBB51: 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 741 .loc 1 3391 0 742 014e C4F88830 str r3, [r4, #136] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 743 .loc 1 3395 0 744 0152 84F88060 strb r6, [r4, #128] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 745 .loc 1 3392 0 ARM GAS /tmp/ccgDLloS.s page 88 746 0156 C4F88C30 str r3, [r4, #140] 747 015a A2E7 b .L68 748 .L85: 749 .LVL47: 750 .LBB46: 751 .LBB47: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 752 .loc 1 3367 0 753 015c 0368 ldr r3, [r0] 754 015e 23F4D073 bic r3, r3, #416 755 0162 0360 str r3, [r0] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 756 .loc 1 3368 0 757 0164 8368 ldr r3, [r0, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 758 .loc 1 3370 0 759 0166 2022 movs r2, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 760 .loc 1 3368 0 761 0168 23F00103 bic r3, r3, #1 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 762 .loc 1 3373 0 763 016c 0021 movs r1, #0 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 764 .loc 1 3368 0 765 016e 8360 str r3, [r0, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 766 .loc 1 3370 0 767 0170 C4F88420 str r2, [r4, #132] 768 .LBE47: 769 .LBE46: 770 .LBE51: 771 .LBE56: 1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 772 .loc 1 1181 0 773 0174 0320 movs r0, #3 774 .LBB57: 775 .LBB52: 776 .LBB49: 777 .LBB48: 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 778 .loc 1 3373 0 779 0176 84F88010 strb r1, [r4, #128] 780 .LVL48: 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 781 .loc 1 3371 0 782 017a C4F88820 str r2, [r4, #136] 783 017e 90E7 b .L68 784 .LVL49: 785 .L120: 786 .LBE48: 787 .LBE49: 788 .LBE52: 789 .LBE57: 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 790 .loc 1 1147 0 discriminator 1 791 0180 2369 ldr r3, [r4, #16] ARM GAS /tmp/ccgDLloS.s page 89 792 0182 002B cmp r3, #0 793 0184 7FF465AF bne .L69 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 794 .loc 1 1147 0 is_stmt 0 795 0188 3746 mov r7, r6 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 796 .loc 1 1149 0 is_stmt 1 797 018a 1E46 mov r6, r3 798 .LVL50: 799 018c 61E7 b .L69 800 .cfi_endproc 801 .LFE336: 803 018e 00BF .section .text.HAL_UART_Receive,"ax",%progbits 804 .align 1 805 .p2align 2,,3 806 .global HAL_UART_Receive 807 .syntax unified 808 .thumb 809 .thumb_func 810 .fpu fpv4-sp-d16 812 HAL_UART_Receive: 813 .LFB337: 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint8_t *pdata8bits; 814 .loc 1 1211 0 815 .cfi_startproc 816 @ args = 0, pretend = 0, frame = 8 817 @ frame_needed = 0, uses_anonymous_args = 0 818 .LVL51: 819 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 820 .LCFI12: 821 .cfi_def_cfa_offset 32 822 .cfi_offset 4, -32 823 .cfi_offset 5, -28 824 .cfi_offset 6, -24 825 .cfi_offset 7, -20 826 .cfi_offset 8, -16 827 .cfi_offset 9, -12 828 .cfi_offset 10, -8 829 .cfi_offset 14, -4 830 0004 0E46 mov r6, r1 1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 831 .loc 1 1218 0 832 0006 D0F88810 ldr r1, [r0, #136] 833 .LVL52: 834 000a 2029 cmp r1, #32 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint8_t *pdata8bits; 835 .loc 1 1211 0 836 000c 82B0 sub sp, sp, #8 837 .LCFI13: 838 .cfi_def_cfa_offset 40 1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 839 .loc 1 1218 0 840 000e 4ED1 bne .L148 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 841 .loc 1 1220 0 842 0010 002E cmp r6, #0 843 0012 50D0 beq .L147 ARM GAS /tmp/ccgDLloS.s page 90 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 844 .loc 1 1220 0 is_stmt 0 discriminator 1 845 0014 0192 str r2, [sp, #4] 846 0016 002A cmp r2, #0 847 0018 4DD0 beq .L147 848 001a 1D46 mov r5, r3 1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 849 .loc 1 1225 0 is_stmt 1 850 001c 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 851 .LVL53: 852 0020 012B cmp r3, #1 853 0022 0446 mov r4, r0 854 0024 43D0 beq .L148 1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 855 .loc 1 1228 0 discriminator 2 856 0026 2223 movs r3, #34 1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 857 .loc 1 1227 0 discriminator 2 858 0028 0027 movs r7, #0 1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 859 .loc 1 1225 0 discriminator 2 860 002a 0121 movs r1, #1 1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 861 .loc 1 1227 0 discriminator 2 862 002c C0F88C70 str r7, [r0, #140] 1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 863 .loc 1 1225 0 discriminator 2 864 0030 80F88010 strb r1, [r0, #128] 1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 865 .loc 1 1228 0 discriminator 2 866 0034 C0F88830 str r3, [r0, #136] 1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 867 .loc 1 1229 0 discriminator 2 868 0038 C766 str r7, [r0, #108] 1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 869 .loc 1 1232 0 discriminator 2 870 003a FFF7FEFF bl HAL_GetTick 871 .LVL54: 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 872 .loc 1 1238 0 discriminator 2 873 003e A368 ldr r3, [r4, #8] 1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; 874 .loc 1 1234 0 discriminator 2 875 0040 019A ldr r2, [sp, #4] 876 0042 A4F85C20 strh r2, [r4, #92] @ movhi 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 877 .loc 1 1238 0 discriminator 2 878 0046 B3F5805F cmp r3, #4096 1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 879 .loc 1 1232 0 discriminator 2 880 004a 8146 mov r9, r0 881 .LVL55: 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 882 .loc 1 1235 0 discriminator 2 883 004c A4F85E20 strh r2, [r4, #94] @ movhi 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 884 .loc 1 1238 0 discriminator 2 ARM GAS /tmp/ccgDLloS.s page 91 885 0050 00F08680 beq .L168 886 0054 002B cmp r3, #0 887 0056 32D0 beq .L169 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 888 .loc 1 1238 0 is_stmt 0 discriminator 6 889 0058 B3F1805F cmp r3, #268435456 890 005c 00F09380 beq .L170 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 891 .loc 1 1238 0 discriminator 10 892 0060 A4F86070 strh r7, [r4, #96] @ movhi 893 .L129: 894 .LVL56: 1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 895 .loc 1 1250 0 is_stmt 1 896 0064 4FF00008 mov r8, #0 897 .LVL57: 898 .L144: 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 899 .loc 1 1256 0 900 0068 B4F85E30 ldrh r3, [r4, #94] 1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 901 .loc 1 1253 0 902 006c 0022 movs r2, #0 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 903 .loc 1 1256 0 904 006e 9BB2 uxth r3, r3 1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 905 .loc 1 1253 0 906 0070 84F88020 strb r2, [r4, #128] 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 907 .loc 1 1256 0 908 0074 B3B1 cbz r3, .L132 909 .LVL58: 910 .L167: 911 0076 2068 ldr r0, [r4] 912 .LVL59: 913 .L143: 914 0078 6A1C adds r2, r5, #1 915 007a 27D1 bne .L137 916 .L138: 917 .LBB62: 918 .LBB63: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 919 .loc 1 3358 0 920 007c C269 ldr r2, [r0, #28] 921 007e 9306 lsls r3, r2, #26 922 0080 FCD5 bpl .L138 923 .L139: 924 .LBE63: 925 .LBE62: 1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; 926 .loc 1 1264 0 927 0082 436A ldr r3, [r0, #36] 928 0084 3B40 ands r3, r3, r7 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 929 .loc 1 1262 0 930 0086 002E cmp r6, #0 ARM GAS /tmp/ccgDLloS.s page 92 931 0088 49D0 beq .L171 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata8bits++; 932 .loc 1 1269 0 933 008a 06F8013B strb r3, [r6], #1 934 .LVL60: 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 935 .loc 1 1272 0 936 008e B4F85E30 ldrh r3, [r4, #94] 937 0092 013B subs r3, r3, #1 938 0094 9BB2 uxth r3, r3 939 0096 A4F85E30 strh r3, [r4, #94] @ movhi 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 940 .loc 1 1256 0 941 009a B4F85E30 ldrh r3, [r4, #94] 942 009e 9BB2 uxth r3, r3 943 00a0 002B cmp r3, #0 944 00a2 E8D1 bne .L167 945 .LVL61: 946 .L132: 1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 947 .loc 1 1276 0 948 00a4 2023 movs r3, #32 949 00a6 C4F88830 str r3, [r4, #136] 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 950 .loc 1 1278 0 951 00aa 0020 movs r0, #0 952 00ac 00E0 b .L165 953 .LVL62: 954 .L148: 1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 955 .loc 1 1282 0 956 00ae 0220 movs r0, #2 957 .LVL63: 958 .L165: 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 959 .loc 1 1284 0 960 00b0 02B0 add sp, sp, #8 961 .LCFI14: 962 .cfi_remember_state 963 .cfi_def_cfa_offset 32 964 @ sp needed 965 00b2 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 966 .LVL64: 967 .L147: 968 .LCFI15: 969 .cfi_restore_state 1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 970 .loc 1 1222 0 971 00b6 0120 movs r0, #1 972 .LVL65: 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 973 .loc 1 1284 0 974 00b8 02B0 add sp, sp, #8 975 .LCFI16: 976 .cfi_remember_state 977 .cfi_def_cfa_offset 32 978 @ sp needed ARM GAS /tmp/ccgDLloS.s page 93 979 00ba BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 980 .LVL66: 981 .L169: 982 .LCFI17: 983 .cfi_restore_state 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 984 .loc 1 1238 0 discriminator 5 985 00be 2369 ldr r3, [r4, #16] 986 00c0 002B cmp r3, #0 987 00c2 56D1 bne .L128 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 988 .loc 1 1238 0 is_stmt 0 discriminator 7 989 00c4 FF27 movs r7, #255 990 00c6 A4F86070 strh r7, [r4, #96] @ movhi 991 00ca CBE7 b .L129 992 .LVL67: 993 .L137: 994 .LBB72: 995 .LBB68: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 996 .loc 1 3358 0 is_stmt 1 997 00cc C369 ldr r3, [r0, #28] 998 00ce 13F0200A ands r10, r3, #32 999 00d2 D6D1 bne .L139 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1000 .loc 1 3363 0 1001 00d4 FFF7FEFF bl HAL_GetTick 1002 .LVL68: 1003 00d8 A0EB0900 sub r0, r0, r9 1004 00dc 8542 cmp r5, r0 1005 00de 2CD3 bcc .L172 1006 00e0 2068 ldr r0, [r4] 1007 00e2 0346 mov r3, r0 1008 00e4 55B3 cbz r5, .L134 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1009 .loc 1 3378 0 1010 00e6 0368 ldr r3, [r0] 1011 00e8 5B07 lsls r3, r3, #29 1012 00ea C5D5 bpl .L143 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1013 .loc 1 3380 0 1014 00ec C369 ldr r3, [r0, #28] 1015 00ee 1905 lsls r1, r3, #20 1016 00f0 C2D5 bpl .L143 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1017 .loc 1 3383 0 1018 00f2 4FF40063 mov r3, #2048 1019 00f6 0362 str r3, [r0, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1020 .loc 1 3387 0 1021 00f8 0368 ldr r3, [r0] 1022 00fa 23F4D073 bic r3, r3, #416 1023 00fe 0360 str r3, [r0] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1024 .loc 1 3388 0 1025 0100 8268 ldr r2, [r0, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; ARM GAS /tmp/ccgDLloS.s page 94 1026 .loc 1 3390 0 1027 0102 2023 movs r3, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1028 .loc 1 3388 0 1029 0104 22F00102 bic r2, r2, #1 1030 0108 8260 str r2, [r0, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1031 .loc 1 3390 0 1032 010a C4F88430 str r3, [r4, #132] 1033 .LBE68: 1034 .LBE72: 1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1035 .loc 1 1260 0 1036 010e 0320 movs r0, #3 1037 .LBB73: 1038 .LBB69: 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 1039 .loc 1 3391 0 1040 0110 C4F88830 str r3, [r4, #136] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1041 .loc 1 3395 0 1042 0114 84F880A0 strb r10, [r4, #128] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1043 .loc 1 3392 0 1044 0118 C4F88C30 str r3, [r4, #140] 1045 011c C8E7 b .L165 1046 .L171: 1047 .LBE69: 1048 .LBE73: 1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits++; 1049 .loc 1 1264 0 1050 011e 28F8023B strh r3, [r8], #2 @ movhi 1051 .LVL69: 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1052 .loc 1 1272 0 1053 0122 B4F85E30 ldrh r3, [r4, #94] 1054 0126 013B subs r3, r3, #1 1055 0128 9BB2 uxth r3, r3 1056 012a A4F85E30 strh r3, [r4, #94] @ movhi 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1057 .loc 1 1256 0 1058 012e B4F85E30 ldrh r3, [r4, #94] 1059 0132 9BB2 uxth r3, r3 1060 0134 002B cmp r3, #0 1061 0136 9FD1 bne .L143 1062 0138 B4E7 b .L132 1063 .LVL70: 1064 .L172: 1065 013a 2368 ldr r3, [r4] 1066 .L134: 1067 .LVL71: 1068 .LBB74: 1069 .LBB70: 1070 .LBB64: 1071 .LBB65: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1072 .loc 1 3367 0 ARM GAS /tmp/ccgDLloS.s page 95 1073 013c 1A68 ldr r2, [r3] 1074 013e 22F4D072 bic r2, r2, #416 1075 0142 1A60 str r2, [r3] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1076 .loc 1 3368 0 1077 0144 9A68 ldr r2, [r3, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1078 .loc 1 3370 0 1079 0146 2021 movs r1, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1080 .loc 1 3368 0 1081 0148 22F00102 bic r2, r2, #1 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1082 .loc 1 3373 0 1083 014c 0025 movs r5, #0 1084 .LVL72: 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1085 .loc 1 3368 0 1086 014e 9A60 str r2, [r3, #8] 1087 .LBE65: 1088 .LBE64: 1089 .LBE70: 1090 .LBE74: 1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1091 .loc 1 1260 0 1092 0150 0320 movs r0, #3 1093 .LBB75: 1094 .LBB71: 1095 .LBB67: 1096 .LBB66: 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1097 .loc 1 3370 0 1098 0152 C4F88410 str r1, [r4, #132] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1099 .loc 1 3373 0 1100 0156 84F88050 strb r5, [r4, #128] 1101 .LVL73: 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1102 .loc 1 3371 0 1103 015a C4F88810 str r1, [r4, #136] 1104 015e A7E7 b .L165 1105 .LVL74: 1106 .L168: 1107 .LBE66: 1108 .LBE67: 1109 .LBE71: 1110 .LBE75: 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 1111 .loc 1 1238 0 discriminator 1 1112 0160 2369 ldr r3, [r4, #16] 1113 0162 53B9 cbnz r3, .L173 1114 0164 40F2FF17 movw r7, #511 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 1115 .loc 1 1238 0 is_stmt 0 1116 0168 B046 mov r8, r6 1117 016a A4F86070 strh r7, [r4, #96] @ movhi 1118 .LVL75: ARM GAS /tmp/ccgDLloS.s page 96 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1119 .loc 1 1244 0 is_stmt 1 1120 016e 1E46 mov r6, r3 1121 .LVL76: 1122 0170 7AE7 b .L144 1123 .LVL77: 1124 .L128: 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 1125 .loc 1 1238 0 discriminator 8 1126 0172 7F27 movs r7, #127 1127 0174 A4F86070 strh r7, [r4, #96] @ movhi 1128 0178 74E7 b .L129 1129 .L173: 1130 017a FF23 movs r3, #255 1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1131 .loc 1 1250 0 1132 017c B846 mov r8, r7 1133 017e A4F86030 strh r3, [r4, #96] @ movhi 1134 .LVL78: 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 1135 .loc 1 1238 0 1136 0182 1F46 mov r7, r3 1137 0184 70E7 b .L144 1138 .LVL79: 1139 .L170: 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 1140 .loc 1 1238 0 is_stmt 0 discriminator 9 1141 0186 2369 ldr r3, [r4, #16] 1142 0188 002B cmp r3, #0 1143 018a F2D0 beq .L128 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhMask = huart->Mask; 1144 .loc 1 1238 0 discriminator 12 1145 018c 3F27 movs r7, #63 1146 018e A4F86070 strh r7, [r4, #96] @ movhi 1147 0192 67E7 b .L129 1148 .cfi_endproc 1149 .LFE337: 1151 .section .text.HAL_UART_Transmit_IT,"ax",%progbits 1152 .align 1 1153 .p2align 2,,3 1154 .global HAL_UART_Transmit_IT 1155 .syntax unified 1156 .thumb 1157 .thumb_func 1158 .fpu fpv4-sp-d16 1160 HAL_UART_Transmit_IT: 1161 .LFB338: 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1162 .loc 1 1297 0 is_stmt 1 1163 .cfi_startproc 1164 @ args = 0, pretend = 0, frame = 0 1165 @ frame_needed = 0, uses_anonymous_args = 0 1166 @ link register save eliminated. 1167 .LVL80: 1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1168 .loc 1 1299 0 1169 0000 D0F88430 ldr r3, [r0, #132] ARM GAS /tmp/ccgDLloS.s page 97 1170 0004 202B cmp r3, #32 1171 0006 2AD1 bne .L182 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1172 .loc 1 1301 0 1173 0008 59B3 cbz r1, .L181 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1174 .loc 1 1301 0 is_stmt 0 discriminator 1 1175 000a 52B3 cbz r2, .L181 1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1176 .loc 1 1306 0 is_stmt 1 1177 000c 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 1178 0010 012B cmp r3, #1 1179 0012 24D0 beq .L182 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1180 .loc 1 1297 0 discriminator 2 1181 0014 30B4 push {r4, r5} 1182 .LCFI18: 1183 .cfi_def_cfa_offset 8 1184 .cfi_offset 4, -8 1185 .cfi_offset 5, -4 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1186 .loc 1 1317 0 discriminator 2 1187 0016 446E ldr r4, [r0, #100] 1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; 1188 .loc 1 1308 0 discriminator 2 1189 0018 0165 str r1, [r0, #80] 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1190 .loc 1 1311 0 discriminator 2 1191 001a 0023 movs r3, #0 1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1192 .loc 1 1306 0 discriminator 2 1193 001c 0125 movs r5, #1 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1194 .loc 1 1314 0 discriminator 2 1195 001e 2121 movs r1, #33 1196 .LVL81: 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1197 .loc 1 1317 0 discriminator 2 1198 0020 B4F1005F cmp r4, #536870912 1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 1199 .loc 1 1310 0 discriminator 2 1200 0024 A0F85620 strh r2, [r0, #86] @ movhi 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1201 .loc 1 1311 0 discriminator 2 1202 0028 4367 str r3, [r0, #116] 1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1203 .loc 1 1313 0 discriminator 2 1204 002a C0F88C30 str r3, [r0, #140] 1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; 1205 .loc 1 1309 0 discriminator 2 1206 002e A0F85420 strh r2, [r0, #84] @ movhi 1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1207 .loc 1 1306 0 discriminator 2 1208 0032 80F88050 strb r5, [r0, #128] 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1209 .loc 1 1314 0 discriminator 2 1210 0036 C0F88410 str r1, [r0, #132] ARM GAS /tmp/ccgDLloS.s page 98 1211 003a 8368 ldr r3, [r0, #8] 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1212 .loc 1 1317 0 discriminator 2 1213 003c 13D0 beq .L191 1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1214 .loc 1 1337 0 1215 003e B3F5805F cmp r3, #4096 1216 0042 26D0 beq .L192 1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1217 .loc 1 1343 0 1218 0044 164B ldr r3, .L194 1219 .LVL82: 1220 .L178: 1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1221 .loc 1 1349 0 1222 0046 0168 ldr r1, [r0] 1223 0048 4367 str r3, [r0, #116] 1224 004a 0A68 ldr r2, [r1] 1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1225 .loc 1 1346 0 1226 004c 0023 movs r3, #0 1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1227 .loc 1 1349 0 1228 004e 42F08002 orr r2, r2, #128 1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1229 .loc 1 1346 0 1230 0052 80F88030 strb r3, [r0, #128] 1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1231 .loc 1 1352 0 1232 0056 1846 mov r0, r3 1233 .LVL83: 1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1234 .loc 1 1349 0 1235 0058 0A60 str r2, [r1] 1236 .L175: 1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1237 .loc 1 1358 0 1238 005a 30BC pop {r4, r5} 1239 .LCFI19: 1240 .cfi_restore 5 1241 .cfi_restore 4 1242 .cfi_def_cfa_offset 0 1243 005c 7047 bx lr 1244 .LVL84: 1245 .L182: 1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1246 .loc 1 1356 0 1247 005e 0220 movs r0, #2 1248 .LVL85: 1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1249 .loc 1 1358 0 1250 0060 7047 bx lr 1251 .LVL86: 1252 .L181: 1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1253 .loc 1 1303 0 1254 0062 0120 movs r0, #1 ARM GAS /tmp/ccgDLloS.s page 99 1255 .LVL87: 1256 0064 7047 bx lr 1257 .LVL88: 1258 .L191: 1259 .LCFI20: 1260 .cfi_def_cfa_offset 8 1261 .cfi_offset 4, -8 1262 .cfi_offset 5, -4 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1263 .loc 1 1320 0 1264 0066 B3F5805F cmp r3, #4096 1265 006a 0BD0 beq .L193 1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1266 .loc 1 1326 0 1267 006c 0D4B ldr r3, .L194+4 1268 .LVL89: 1269 .L177: 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1270 .loc 1 1332 0 1271 006e 0168 ldr r1, [r0] 1272 0070 4367 str r3, [r0, #116] 1273 0072 8A68 ldr r2, [r1, #8] 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1274 .loc 1 1329 0 1275 0074 0023 movs r3, #0 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1276 .loc 1 1332 0 1277 0076 42F40002 orr r2, r2, #8388608 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1278 .loc 1 1329 0 1279 007a 80F88030 strb r3, [r0, #128] 1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1280 .loc 1 1352 0 1281 007e 1846 mov r0, r3 1282 .LVL90: 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1283 .loc 1 1332 0 1284 0080 8A60 str r2, [r1, #8] 1285 0082 EAE7 b .L175 1286 .LVL91: 1287 .L193: 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1288 .loc 1 1320 0 discriminator 1 1289 0084 0169 ldr r1, [r0, #16] 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1290 .loc 1 1322 0 discriminator 1 1291 0086 074B ldr r3, .L194+4 1292 0088 074A ldr r2, .L194+8 1293 .LVL92: 1294 008a 0029 cmp r1, #0 1295 008c 08BF it eq 1296 008e 1346 moveq r3, r2 1297 0090 EDE7 b .L177 1298 .LVL93: 1299 .L192: 1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1300 .loc 1 1337 0 discriminator 1 ARM GAS /tmp/ccgDLloS.s page 100 1301 0092 0169 ldr r1, [r0, #16] 1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1302 .loc 1 1339 0 discriminator 1 1303 0094 024B ldr r3, .L194 1304 0096 054A ldr r2, .L194+12 1305 .LVL94: 1306 0098 0029 cmp r1, #0 1307 009a 08BF it eq 1308 009c 1346 moveq r3, r2 1309 009e D2E7 b .L178 1310 .L195: 1311 .align 2 1312 .L194: 1313 00a0 00000000 .word UART_TxISR_8BIT 1314 00a4 00000000 .word UART_TxISR_8BIT_FIFOEN 1315 00a8 00000000 .word UART_TxISR_16BIT_FIFOEN 1316 00ac 00000000 .word UART_TxISR_16BIT 1317 .cfi_endproc 1318 .LFE338: 1320 .section .text.HAL_UART_Receive_IT,"ax",%progbits 1321 .align 1 1322 .p2align 2,,3 1323 .global HAL_UART_Receive_IT 1324 .syntax unified 1325 .thumb 1326 .thumb_func 1327 .fpu fpv4-sp-d16 1329 HAL_UART_Receive_IT: 1330 .LFB339: 1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1331 .loc 1 1371 0 1332 .cfi_startproc 1333 @ args = 0, pretend = 0, frame = 0 1334 @ frame_needed = 0, uses_anonymous_args = 0 1335 @ link register save eliminated. 1336 .LVL95: 1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1337 .loc 1 1373 0 1338 0000 D0F88830 ldr r3, [r0, #136] 1339 0004 202B cmp r3, #32 1340 0006 3CD1 bne .L219 1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1341 .loc 1 1375 0 1342 0008 0029 cmp r1, #0 1343 000a 3CD0 beq .L218 1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1344 .loc 1 1375 0 is_stmt 0 discriminator 1 1345 000c 002A cmp r2, #0 1346 000e 3AD0 beq .L218 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1347 .loc 1 1380 0 is_stmt 1 1348 0010 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 1349 0014 012B cmp r3, #1 1350 0016 34D0 beq .L219 1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1351 .loc 1 1371 0 discriminator 2 1352 0018 30B4 push {r4, r5} ARM GAS /tmp/ccgDLloS.s page 101 1353 .LCFI21: 1354 .cfi_def_cfa_offset 8 1355 .cfi_offset 4, -8 1356 .cfi_offset 5, -4 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1357 .loc 1 1385 0 discriminator 2 1358 001a 4E4B ldr r3, .L242 1359 001c 0468 ldr r4, [r0] 1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1360 .loc 1 1380 0 discriminator 2 1361 001e 0125 movs r5, #1 1362 0020 80F88050 strb r5, [r0, #128] 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1363 .loc 1 1385 0 discriminator 2 1364 0024 9C42 cmp r4, r3 1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1365 .loc 1 1383 0 discriminator 2 1366 0026 4FF00005 mov r5, #0 1367 002a C566 str r5, [r0, #108] 1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1368 .loc 1 1385 0 discriminator 2 1369 002c 06D0 beq .L198 1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1370 .loc 1 1388 0 1371 002e 6368 ldr r3, [r4, #4] 1372 0030 1B02 lsls r3, r3, #8 1373 0032 03D5 bpl .L198 1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1374 .loc 1 1391 0 1375 0034 2368 ldr r3, [r4] 1376 0036 43F08063 orr r3, r3, #67108864 1377 003a 2360 str r3, [r4] 1378 .L198: 1379 .LVL96: 1380 .LBB78: 1381 .LBB79: 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1382 .loc 1 3424 0 1383 003c 8368 ldr r3, [r0, #8] 3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; 1384 .loc 1 3418 0 1385 003e 8165 str r1, [r0, #88] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1386 .loc 1 3424 0 1387 0040 B3F5805F cmp r3, #4096 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1388 .loc 1 3421 0 1389 0044 4FF00001 mov r1, #0 1390 .LVL97: 3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; 1391 .loc 1 3419 0 1392 0048 A0F85C20 strh r2, [r0, #92] @ movhi 3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 1393 .loc 1 3420 0 1394 004c A0F85E20 strh r2, [r0, #94] @ movhi 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1395 .loc 1 3421 0 ARM GAS /tmp/ccgDLloS.s page 102 1396 0050 0167 str r1, [r0, #112] 1397 0052 456E ldr r5, [r0, #100] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1398 .loc 1 3424 0 1399 0054 19D0 beq .L237 1400 0056 002B cmp r3, #0 1401 0058 3CD1 bne .L205 1402 005a 0369 ldr r3, [r0, #16] 1403 005c 002B cmp r3, #0 1404 005e 6CD0 beq .L238 1405 .L206: 1406 0060 7F23 movs r3, #127 1407 0062 A0F86030 strh r3, [r0, #96] @ movhi 1408 .L207: 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1409 .loc 1 3427 0 1410 0066 2223 movs r3, #34 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1411 .loc 1 3426 0 1412 0068 0021 movs r1, #0 1413 006a C0F88C10 str r1, [r0, #140] 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1414 .loc 1 3427 0 1415 006e C0F88830 str r3, [r0, #136] 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1416 .loc 1 3430 0 1417 0072 A368 ldr r3, [r4, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1418 .loc 1 3433 0 1419 0074 B5F1005F cmp r5, #536870912 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1420 .loc 1 3430 0 1421 0078 43F00103 orr r3, r3, #1 1422 007c A360 str r3, [r4, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1423 .loc 1 3433 0 1424 007e 3AD1 bne .L203 1425 0080 15E0 b .L213 1426 .LVL98: 1427 .L219: 1428 .LCFI22: 1429 .cfi_def_cfa_offset 0 1430 .cfi_restore 4 1431 .cfi_restore 5 1432 .LBE79: 1433 .LBE78: 1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1434 .loc 1 1399 0 1435 0082 0220 movs r0, #2 1436 .LVL99: 1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1437 .loc 1 1401 0 1438 0084 7047 bx lr 1439 .LVL100: 1440 .L218: 1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1441 .loc 1 1377 0 ARM GAS /tmp/ccgDLloS.s page 103 1442 0086 0120 movs r0, #1 1443 .LVL101: 1444 0088 7047 bx lr 1445 .LVL102: 1446 .L237: 1447 .LCFI23: 1448 .cfi_def_cfa_offset 8 1449 .cfi_offset 4, -8 1450 .cfi_offset 5, -4 1451 .LBB84: 1452 .LBB80: 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1453 .loc 1 3424 0 1454 008a 0369 ldr r3, [r0, #16] 1455 008c 002B cmp r3, #0 1456 008e 3ED0 beq .L239 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1457 .loc 1 3427 0 1458 0090 2223 movs r3, #34 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1459 .loc 1 3426 0 1460 0092 C0F88C10 str r1, [r0, #140] 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1461 .loc 1 3427 0 1462 0096 C0F88830 str r3, [r0, #136] 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1463 .loc 1 3430 0 1464 009a A368 ldr r3, [r4, #8] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1465 .loc 1 3424 0 1466 009c FF21 movs r1, #255 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1467 .loc 1 3430 0 1468 009e 43F00103 orr r3, r3, #1 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1469 .loc 1 3433 0 1470 00a2 B5F1005F cmp r5, #536870912 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1471 .loc 1 3424 0 1472 00a6 A0F86010 strh r1, [r0, #96] @ movhi 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1473 .loc 1 3430 0 1474 00aa A360 str r3, [r4, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1475 .loc 1 3433 0 1476 00ac 23D1 bne .L203 1477 .L213: 1478 00ae B0F86830 ldrh r3, [r0, #104] 1479 00b2 9342 cmp r3, r2 1480 00b4 1FD8 bhi .L203 3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1481 .loc 1 3442 0 1482 00b6 284B ldr r3, .L242+4 1483 .L211: 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); 1484 .loc 1 3448 0 1485 00b8 2268 ldr r2, [r4] ARM GAS /tmp/ccgDLloS.s page 104 1486 .LVL103: 1487 00ba 0367 str r3, [r0, #112] 1488 00bc 42F48072 orr r2, r2, #256 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1489 .loc 1 3445 0 1490 00c0 0023 movs r3, #0 1491 00c2 80F88030 strb r3, [r0, #128] 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); 1492 .loc 1 3448 0 1493 00c6 2260 str r2, [r4] 3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1494 .loc 1 3449 0 1495 00c8 A268 ldr r2, [r4, #8] 1496 00ca 42F08052 orr r2, r2, #268435456 1497 .LBE80: 1498 .LBE84: 1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1499 .loc 1 1395 0 1500 00ce 1846 mov r0, r3 1501 .LVL104: 1502 .LBB85: 1503 .LBB81: 3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1504 .loc 1 3449 0 1505 00d0 A260 str r2, [r4, #8] 1506 00d2 1AE0 b .L229 1507 .LVL105: 1508 .L205: 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1509 .loc 1 3424 0 1510 00d4 B3F1805F cmp r3, #268435456 1511 00d8 33D0 beq .L240 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1512 .loc 1 3427 0 1513 00da 2223 movs r3, #34 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1514 .loc 1 3426 0 1515 00dc C0F88C10 str r1, [r0, #140] 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1516 .loc 1 3427 0 1517 00e0 C0F88830 str r3, [r0, #136] 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1518 .loc 1 3430 0 1519 00e4 A368 ldr r3, [r4, #8] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1520 .loc 1 3424 0 1521 00e6 A0F86010 strh r1, [r0, #96] @ movhi 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1522 .loc 1 3430 0 1523 00ea 43F00103 orr r3, r3, #1 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1524 .loc 1 3433 0 1525 00ee B5F1005F cmp r5, #536870912 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1526 .loc 1 3430 0 1527 00f2 A360 str r3, [r4, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 105 1528 .loc 1 3433 0 1529 00f4 DBD0 beq .L213 1530 .L203: 3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1531 .loc 1 3460 0 1532 00f6 194B ldr r3, .L242+8 1533 .L202: 3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1534 .loc 1 3466 0 1535 00f8 2268 ldr r2, [r4] 1536 .LVL106: 1537 00fa 0367 str r3, [r0, #112] 1538 00fc 42F49072 orr r2, r2, #288 3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1539 .loc 1 3463 0 1540 0100 0023 movs r3, #0 1541 0102 80F88030 strb r3, [r0, #128] 1542 .LBE81: 1543 .LBE85: 1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1544 .loc 1 1395 0 1545 0106 1846 mov r0, r3 1546 .LVL107: 1547 .LBB86: 1548 .LBB82: 3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1549 .loc 1 3466 0 1550 0108 2260 str r2, [r4] 1551 .L229: 1552 .LBE82: 1553 .LBE86: 1401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1554 .loc 1 1401 0 1555 010a 30BC pop {r4, r5} 1556 .LCFI24: 1557 .cfi_remember_state 1558 .cfi_restore 5 1559 .cfi_restore 4 1560 .cfi_def_cfa_offset 0 1561 010c 7047 bx lr 1562 .LVL108: 1563 .L239: 1564 .LCFI25: 1565 .cfi_restore_state 1566 .LBB87: 1567 .LBB83: 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1568 .loc 1 3427 0 1569 010e 2221 movs r1, #34 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1570 .loc 1 3426 0 1571 0110 C0F88C30 str r3, [r0, #140] 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1572 .loc 1 3427 0 1573 0114 C0F88810 str r1, [r0, #136] 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1574 .loc 1 3430 0 ARM GAS /tmp/ccgDLloS.s page 106 1575 0118 A368 ldr r3, [r4, #8] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1576 .loc 1 3424 0 1577 011a 40F2FF11 movw r1, #511 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1578 .loc 1 3430 0 1579 011e 43F00103 orr r3, r3, #1 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1580 .loc 1 3433 0 1581 0122 B5F1005F cmp r5, #536870912 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1582 .loc 1 3424 0 1583 0126 A0F86010 strh r1, [r0, #96] @ movhi 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1584 .loc 1 3430 0 1585 012a A360 str r3, [r4, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1586 .loc 1 3433 0 1587 012c 03D1 bne .L231 1588 012e B0F86830 ldrh r3, [r0, #104] 1589 0132 9342 cmp r3, r2 1590 0134 0CD9 bls .L241 1591 .L231: 3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1592 .loc 1 3456 0 1593 0136 0A4B ldr r3, .L242+12 1594 0138 DEE7 b .L202 1595 .L238: 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1596 .loc 1 3424 0 1597 013a FF23 movs r3, #255 1598 013c A0F86030 strh r3, [r0, #96] @ movhi 1599 0140 91E7 b .L207 1600 .L240: 1601 0142 0369 ldr r3, [r0, #16] 1602 0144 002B cmp r3, #0 1603 0146 8BD0 beq .L206 1604 0148 3F23 movs r3, #63 1605 014a A0F86030 strh r3, [r0, #96] @ movhi 1606 014e 8AE7 b .L207 1607 .L241: 3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1608 .loc 1 3438 0 1609 0150 044B ldr r3, .L242+16 1610 0152 B1E7 b .L211 1611 .L243: 1612 .align 2 1613 .L242: 1614 0154 00800040 .word 1073774592 1615 0158 00000000 .word UART_RxISR_8BIT_FIFOEN 1616 015c 00000000 .word UART_RxISR_8BIT 1617 0160 00000000 .word UART_RxISR_16BIT 1618 0164 00000000 .word UART_RxISR_16BIT_FIFOEN 1619 .LBE83: 1620 .LBE87: 1621 .cfi_endproc 1622 .LFE339: ARM GAS /tmp/ccgDLloS.s page 107 1624 .section .text.HAL_UART_Transmit_DMA,"ax",%progbits 1625 .align 1 1626 .p2align 2,,3 1627 .global HAL_UART_Transmit_DMA 1628 .syntax unified 1629 .thumb 1630 .thumb_func 1631 .fpu fpv4-sp-d16 1633 HAL_UART_Transmit_DMA: 1634 .LFB340: 1414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1635 .loc 1 1414 0 1636 .cfi_startproc 1637 @ args = 0, pretend = 0, frame = 0 1638 @ frame_needed = 0, uses_anonymous_args = 0 1639 .LVL109: 1640 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1641 .LCFI26: 1642 .cfi_def_cfa_offset 24 1643 .cfi_offset 4, -24 1644 .cfi_offset 5, -20 1645 .cfi_offset 6, -16 1646 .cfi_offset 7, -12 1647 .cfi_offset 8, -8 1648 .cfi_offset 14, -4 1416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1649 .loc 1 1416 0 1650 0004 D0F88460 ldr r6, [r0, #132] 1651 0008 202E cmp r6, #32 1652 000a 32D1 bne .L251 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1653 .loc 1 1418 0 1654 000c A1B3 cbz r1, .L250 1418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1655 .loc 1 1418 0 is_stmt 0 discriminator 1 1656 000e 9AB3 cbz r2, .L250 1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1657 .loc 1 1423 0 is_stmt 1 1658 0010 90F88040 ldrb r4, [r0, #128] @ zero_extendqisi2 1659 0014 012C cmp r4, #1 1660 0016 2CD0 beq .L251 1661 0018 0546 mov r5, r0 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1662 .loc 1 1432 0 discriminator 2 1663 001a 806F ldr r0, [r0, #120] 1664 .LVL110: 1427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1665 .loc 1 1427 0 discriminator 2 1666 001c A5F85620 strh r2, [r5, #86] @ movhi 1667 0020 1346 mov r3, r2 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1668 .loc 1 1429 0 discriminator 2 1669 0022 4FF00008 mov r8, #0 1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1670 .loc 1 1430 0 discriminator 2 1671 0026 2122 movs r2, #33 1672 .LVL111: ARM GAS /tmp/ccgDLloS.s page 108 1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1673 .loc 1 1423 0 discriminator 2 1674 0028 0124 movs r4, #1 1429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1675 .loc 1 1429 0 discriminator 2 1676 002a C5F88C80 str r8, [r5, #140] 1677 .LVL112: 1425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferSize = Size; 1678 .loc 1 1425 0 discriminator 2 1679 002e 2965 str r1, [r5, #80] 1430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1680 .loc 1 1430 0 discriminator 2 1681 0030 C5F88420 str r2, [r5, #132] 1426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = Size; 1682 .loc 1 1426 0 discriminator 2 1683 0034 A5F85430 strh r3, [r5, #84] @ movhi 1423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1684 .loc 1 1423 0 discriminator 2 1685 0038 85F88040 strb r4, [r5, #128] 1686 003c 2A68 ldr r2, [r5] 1432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1687 .loc 1 1432 0 discriminator 2 1688 003e 68B1 cbz r0, .L246 1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1689 .loc 1 1435 0 1690 0040 134F ldr r7, .L256 1438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1691 .loc 1 1438 0 1692 0042 DFF854C0 ldr ip, .L256+8 1435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1693 .loc 1 1435 0 1694 0046 C762 str r7, [r0, #44] 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1695 .loc 1 1441 0 1696 0048 124F ldr r7, .L256+4 1444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1697 .loc 1 1444 0 1698 004a C0F83880 str r8, [r0, #56] 1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1699 .loc 1 1447 0 1700 004e 2832 adds r2, r2, #40 1441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1701 .loc 1 1441 0 1702 0050 C0E90CC7 strd ip, r7, [r0, #48] 1447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1703 .loc 1 1447 0 1704 0054 FFF7FEFF bl HAL_DMA_Start_IT 1705 .LVL113: 1706 0058 88B9 cbnz r0, .L247 1707 005a 2A68 ldr r2, [r5] 1708 .L246: 1461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1709 .loc 1 1461 0 1710 005c 4023 movs r3, #64 1711 005e 1362 str r3, [r2, #32] 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1712 .loc 1 1467 0 ARM GAS /tmp/ccgDLloS.s page 109 1713 0060 9368 ldr r3, [r2, #8] 1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1714 .loc 1 1463 0 1715 0062 0020 movs r0, #0 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1716 .loc 1 1467 0 1717 0064 43F08003 orr r3, r3, #128 1463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1718 .loc 1 1463 0 1719 0068 85F88000 strb r0, [r5, #128] 1467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1720 .loc 1 1467 0 1721 006c 9360 str r3, [r2, #8] 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1722 .loc 1 1475 0 1723 006e BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1724 .LVL114: 1725 .L251: 1473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1726 .loc 1 1473 0 1727 0072 0220 movs r0, #2 1728 .LVL115: 1729 .L245: 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1730 .loc 1 1475 0 1731 0074 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1732 .LVL116: 1733 .L250: 1420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1734 .loc 1 1420 0 1735 0078 0120 movs r0, #1 1736 .LVL117: 1475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1737 .loc 1 1475 0 1738 007a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1739 .LVL118: 1740 .L247: 1450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1741 .loc 1 1450 0 1742 007e 1023 movs r3, #16 1743 0080 C5F88C30 str r3, [r5, #140] 1452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1744 .loc 1 1452 0 1745 0084 85F88080 strb r8, [r5, #128] 1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1746 .loc 1 1457 0 1747 0088 2046 mov r0, r4 1455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1748 .loc 1 1455 0 1749 008a C5F88460 str r6, [r5, #132] 1457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1750 .loc 1 1457 0 1751 008e F1E7 b .L245 1752 .L257: 1753 .align 2 1754 .L256: 1755 0090 00000000 .word UART_DMATransmitCplt ARM GAS /tmp/ccgDLloS.s page 110 1756 0094 00000000 .word UART_DMAError 1757 0098 00000000 .word UART_DMATxHalfCplt 1758 .cfi_endproc 1759 .LFE340: 1761 .section .text.HAL_UART_Receive_DMA,"ax",%progbits 1762 .align 1 1763 .p2align 2,,3 1764 .global HAL_UART_Receive_DMA 1765 .syntax unified 1766 .thumb 1767 .thumb_func 1768 .fpu fpv4-sp-d16 1770 HAL_UART_Receive_DMA: 1771 .LFB341: 1490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1772 .loc 1 1490 0 1773 .cfi_startproc 1774 @ args = 0, pretend = 0, frame = 0 1775 @ frame_needed = 0, uses_anonymous_args = 0 1776 .LVL119: 1777 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1778 .LCFI27: 1779 .cfi_def_cfa_offset 24 1780 .cfi_offset 3, -24 1781 .cfi_offset 4, -20 1782 .cfi_offset 5, -16 1783 .cfi_offset 6, -12 1784 .cfi_offset 7, -8 1785 .cfi_offset 14, -4 1492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1786 .loc 1 1492 0 1787 0002 D0F88840 ldr r4, [r0, #136] 1788 0006 202C cmp r4, #32 1789 0008 45D1 bne .L266 1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1790 .loc 1 1494 0 1791 000a 0029 cmp r1, #0 1792 000c 45D0 beq .L265 1494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1793 .loc 1 1494 0 is_stmt 0 discriminator 1 1794 000e 002A cmp r2, #0 1795 0010 43D0 beq .L265 1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1796 .loc 1 1499 0 is_stmt 1 1797 0012 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 1798 0016 012B cmp r3, #1 1799 0018 3DD0 beq .L266 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1800 .loc 1 1504 0 discriminator 2 1801 001a 0568 ldr r5, [r0] 1802 001c 254B ldr r3, .L274 1499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1803 .loc 1 1499 0 discriminator 2 1804 001e 0124 movs r4, #1 1805 0020 80F88040 strb r4, [r0, #128] 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1806 .loc 1 1504 0 discriminator 2 ARM GAS /tmp/ccgDLloS.s page 111 1807 0024 9D42 cmp r5, r3 1502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1808 .loc 1 1502 0 discriminator 2 1809 0026 4FF00004 mov r4, #0 1810 002a C466 str r4, [r0, #108] 1504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1811 .loc 1 1504 0 discriminator 2 1812 002c 06D0 beq .L260 1507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1813 .loc 1 1507 0 1814 002e 6B68 ldr r3, [r5, #4] 1815 0030 1B02 lsls r3, r3, #8 1816 0032 03D5 bpl .L260 1510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1817 .loc 1 1510 0 1818 0034 2B68 ldr r3, [r5] 1819 0036 43F08063 orr r3, r3, #67108864 1820 003a 2B60 str r3, [r5] 1821 .L260: 1822 .LVL120: 1823 003c 0446 mov r4, r0 1824 .LBB90: 1825 .LBB91: 3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1826 .loc 1 3490 0 1827 003e C06F ldr r0, [r0, #124] 1828 .LVL121: 3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; 1829 .loc 1 3484 0 1830 0040 A165 str r1, [r4, #88] 1831 0042 1346 mov r3, r2 1832 .LVL122: 3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1833 .loc 1 3487 0 1834 0044 0026 movs r6, #0 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1835 .loc 1 3488 0 1836 0046 2222 movs r2, #34 1837 .LVL123: 3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1838 .loc 1 3487 0 1839 0048 C4F88C60 str r6, [r4, #140] 3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1840 .loc 1 3485 0 1841 004c A4F85C30 strh r3, [r4, #92] @ movhi 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1842 .loc 1 3488 0 1843 0050 C4F88820 str r2, [r4, #136] 3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1844 .loc 1 3490 0 1845 0054 78B1 cbz r0, .L261 3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1846 .loc 1 3496 0 1847 0056 184F ldr r7, .L274+4 3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1848 .loc 1 3493 0 1849 0058 DFF864C0 ldr ip, .L274+12 ARM GAS /tmp/ccgDLloS.s page 112 3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1850 .loc 1 3502 0 1851 005c 8663 str r6, [r0, #56] 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1852 .loc 1 3505 0 1853 005e 0A46 mov r2, r1 1854 0060 05F12401 add r1, r5, #36 1855 .LVL124: 3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1856 .loc 1 3499 0 1857 0064 154D ldr r5, .L274+8 3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1858 .loc 1 3493 0 1859 0066 C0F82CC0 str ip, [r0, #44] 3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1860 .loc 1 3499 0 1861 006a C0E90C75 strd r7, r5, [r0, #48] 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 1862 .loc 1 3505 0 1863 006e FFF7FEFF bl HAL_DMA_Start_IT 1864 .LVL125: 1865 0072 A0B9 cbnz r0, .L262 1866 0074 2568 ldr r5, [r4] 1867 .L261: 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1868 .loc 1 3521 0 1869 0076 2B68 ldr r3, [r5] 3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1870 .loc 1 3518 0 1871 0078 0020 movs r0, #0 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1872 .loc 1 3521 0 1873 007a 43F48073 orr r3, r3, #256 3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1874 .loc 1 3518 0 1875 007e 84F88000 strb r0, [r4, #128] 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1876 .loc 1 3521 0 1877 0082 2B60 str r3, [r5] 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1878 .loc 1 3524 0 1879 0084 AB68 ldr r3, [r5, #8] 1880 0086 43F00103 orr r3, r3, #1 1881 008a AB60 str r3, [r5, #8] 3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1882 .loc 1 3528 0 1883 008c AB68 ldr r3, [r5, #8] 1884 008e 43F04003 orr r3, r3, #64 1885 0092 AB60 str r3, [r5, #8] 1886 .LBE91: 1887 .LBE90: 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1888 .loc 1 1520 0 1889 0094 F8BD pop {r3, r4, r5, r6, r7, pc} 1890 .LVL126: 1891 .L266: 1518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 113 1892 .loc 1 1518 0 1893 0096 0220 movs r0, #2 1894 .LVL127: 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1895 .loc 1 1520 0 1896 0098 F8BD pop {r3, r4, r5, r6, r7, pc} 1897 .LVL128: 1898 .L265: 1496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1899 .loc 1 1496 0 1900 009a 0120 movs r0, #1 1901 .LVL129: 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1902 .loc 1 1520 0 1903 009c F8BD pop {r3, r4, r5, r6, r7, pc} 1904 .LVL130: 1905 .L262: 1906 .LBB93: 1907 .LBB92: 3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1908 .loc 1 3508 0 1909 009e 1022 movs r2, #16 3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1910 .loc 1 3513 0 1911 00a0 2023 movs r3, #32 3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1912 .loc 1 3508 0 1913 00a2 C4F88C20 str r2, [r4, #140] 3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1914 .loc 1 3510 0 1915 00a6 84F88060 strb r6, [r4, #128] 3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1916 .loc 1 3515 0 1917 00aa 0120 movs r0, #1 3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1918 .loc 1 3513 0 1919 00ac C4F88430 str r3, [r4, #132] 1920 .LBE92: 1921 .LBE93: 1520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1922 .loc 1 1520 0 1923 00b0 F8BD pop {r3, r4, r5, r6, r7, pc} 1924 .LVL131: 1925 .L275: 1926 00b2 00BF .align 2 1927 .L274: 1928 00b4 00800040 .word 1073774592 1929 00b8 00000000 .word UART_DMARxHalfCplt 1930 00bc 00000000 .word UART_DMAError 1931 00c0 00000000 .word UART_DMAReceiveCplt 1932 .cfi_endproc 1933 .LFE341: 1935 .section .text.HAL_UART_DMAPause,"ax",%progbits 1936 .align 1 1937 .p2align 2,,3 1938 .global HAL_UART_DMAPause 1939 .syntax unified ARM GAS /tmp/ccgDLloS.s page 114 1940 .thumb 1941 .thumb_func 1942 .fpu fpv4-sp-d16 1944 HAL_UART_DMAPause: 1945 .LFB342: 1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; 1946 .loc 1 1528 0 1947 .cfi_startproc 1948 @ args = 0, pretend = 0, frame = 0 1949 @ frame_needed = 0, uses_anonymous_args = 0 1950 @ link register save eliminated. 1951 .LVL132: 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1952 .loc 1 1532 0 1953 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 1954 0004 012B cmp r3, #1 1528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef gstate = huart->gState; 1955 .loc 1 1528 0 1956 0006 30B4 push {r4, r5} 1957 .LCFI28: 1958 .cfi_def_cfa_offset 8 1959 .cfi_offset 4, -8 1960 .cfi_offset 5, -4 1529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; 1961 .loc 1 1529 0 1962 0008 D0F88450 ldr r5, [r0, #132] 1963 .LVL133: 1530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1964 .loc 1 1530 0 1965 000c D0F88840 ldr r4, [r0, #136] 1966 .LVL134: 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1967 .loc 1 1532 0 1968 0010 28D0 beq .L280 1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 1969 .loc 1 1534 0 discriminator 2 1970 0012 0368 ldr r3, [r0] 1971 0014 9A68 ldr r2, [r3, #8] 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1972 .loc 1 1532 0 discriminator 2 1973 0016 0121 movs r1, #1 1974 0018 80F88010 strb r1, [r0, #128] 1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 1975 .loc 1 1534 0 discriminator 2 1976 001c 1106 lsls r1, r2, #24 1977 001e 01D5 bpl .L278 1534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 1978 .loc 1 1534 0 is_stmt 0 discriminator 1 1979 0020 212D cmp r5, #33 1980 0022 17D0 beq .L288 1981 .L278: 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 1982 .loc 1 1540 0 is_stmt 1 1983 0024 9A68 ldr r2, [r3, #8] 1984 0026 5206 lsls r2, r2, #25 1985 0028 05D4 bmi .L289 1986 .L279: ARM GAS /tmp/ccgDLloS.s page 115 1551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1987 .loc 1 1551 0 1988 002a 0023 movs r3, #0 1989 002c 80F88030 strb r3, [r0, #128] 1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 1990 .loc 1 1554 0 1991 0030 30BC pop {r4, r5} 1992 .LCFI29: 1993 .cfi_remember_state 1994 .cfi_restore 5 1995 .cfi_restore 4 1996 .cfi_def_cfa_offset 0 1997 .LVL135: 1553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 1998 .loc 1 1553 0 1999 0032 1846 mov r0, r3 2000 .LVL136: 1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2001 .loc 1 1554 0 2002 0034 7047 bx lr 2003 .LVL137: 2004 .L289: 2005 .LCFI30: 2006 .cfi_restore_state 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 2007 .loc 1 1540 0 discriminator 1 2008 0036 222C cmp r4, #34 2009 0038 F7D1 bne .L279 1544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2010 .loc 1 1544 0 2011 003a 1A68 ldr r2, [r3] 2012 003c 22F48072 bic r2, r2, #256 2013 0040 1A60 str r2, [r3] 1545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2014 .loc 1 1545 0 2015 0042 9A68 ldr r2, [r3, #8] 2016 0044 22F00102 bic r2, r2, #1 2017 0048 9A60 str r2, [r3, #8] 1548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2018 .loc 1 1548 0 2019 004a 9A68 ldr r2, [r3, #8] 2020 004c 22F04002 bic r2, r2, #64 2021 0050 9A60 str r2, [r3, #8] 2022 0052 EAE7 b .L279 2023 .L288: 1538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2024 .loc 1 1538 0 2025 0054 9A68 ldr r2, [r3, #8] 2026 0056 22F08002 bic r2, r2, #128 2027 005a 9A60 str r2, [r3, #8] 1540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 2028 .loc 1 1540 0 2029 005c 9A68 ldr r2, [r3, #8] 2030 005e 5206 lsls r2, r2, #25 2031 0060 E3D5 bpl .L279 2032 0062 E8E7 b .L289 2033 .L280: ARM GAS /tmp/ccgDLloS.s page 116 1532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2034 .loc 1 1532 0 2035 0064 0220 movs r0, #2 2036 .LVL138: 1554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2037 .loc 1 1554 0 2038 0066 30BC pop {r4, r5} 2039 .LCFI31: 2040 .cfi_restore 5 2041 .cfi_restore 4 2042 .cfi_def_cfa_offset 0 2043 .LVL139: 2044 0068 7047 bx lr 2045 .cfi_endproc 2046 .LFE342: 2048 006a 00BF .section .text.HAL_UART_DMAResume,"ax",%progbits 2049 .align 1 2050 .p2align 2,,3 2051 .global HAL_UART_DMAResume 2052 .syntax unified 2053 .thumb 2054 .thumb_func 2055 .fpu fpv4-sp-d16 2057 HAL_UART_DMAResume: 2058 .LFB343: 1562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 2059 .loc 1 1562 0 2060 .cfi_startproc 2061 @ args = 0, pretend = 0, frame = 0 2062 @ frame_needed = 0, uses_anonymous_args = 0 2063 @ link register save eliminated. 2064 .LVL140: 1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2065 .loc 1 1563 0 2066 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 2067 0004 012B cmp r3, #1 2068 0006 23D0 beq .L294 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2069 .loc 1 1565 0 discriminator 2 2070 0008 D0F88430 ldr r3, [r0, #132] 1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2071 .loc 1 1563 0 discriminator 2 2072 000c 0122 movs r2, #1 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2073 .loc 1 1565 0 discriminator 2 2074 000e 212B cmp r3, #33 1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2075 .loc 1 1563 0 discriminator 2 2076 0010 80F88020 strb r2, [r0, #128] 1565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2077 .loc 1 1565 0 discriminator 2 2078 0014 04D1 bne .L292 1568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2079 .loc 1 1568 0 2080 0016 0268 ldr r2, [r0] 2081 0018 9368 ldr r3, [r2, #8] 2082 001a 43F08003 orr r3, r3, #128 ARM GAS /tmp/ccgDLloS.s page 117 2083 001e 9360 str r3, [r2, #8] 2084 .L292: 1570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2085 .loc 1 1570 0 2086 0020 D0F88830 ldr r3, [r0, #136] 2087 0024 222B cmp r3, #34 2088 0026 0ED1 bne .L293 1573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2089 .loc 1 1573 0 2090 0028 0368 ldr r3, [r0] 2091 002a 0822 movs r2, #8 2092 002c 1A62 str r2, [r3, #32] 1576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 2093 .loc 1 1576 0 2094 002e 1A68 ldr r2, [r3] 2095 0030 42F48072 orr r2, r2, #256 2096 0034 1A60 str r2, [r3] 1577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2097 .loc 1 1577 0 2098 0036 9A68 ldr r2, [r3, #8] 2099 0038 42F00102 orr r2, r2, #1 2100 003c 9A60 str r2, [r3, #8] 1580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2101 .loc 1 1580 0 2102 003e 9A68 ldr r2, [r3, #8] 2103 0040 42F04002 orr r2, r2, #64 2104 0044 9A60 str r2, [r3, #8] 2105 .L293: 1583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2106 .loc 1 1583 0 2107 0046 0023 movs r3, #0 2108 0048 80F88030 strb r3, [r0, #128] 1585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2109 .loc 1 1585 0 2110 004c 1846 mov r0, r3 2111 .LVL141: 2112 004e 7047 bx lr 2113 .LVL142: 2114 .L294: 1563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2115 .loc 1 1563 0 2116 0050 0220 movs r0, #2 2117 .LVL143: 1586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2118 .loc 1 1586 0 2119 0052 7047 bx lr 2120 .cfi_endproc 2121 .LFE343: 2123 .section .text.HAL_UART_DMAStop,"ax",%progbits 2124 .align 1 2125 .p2align 2,,3 2126 .global HAL_UART_DMAStop 2127 .syntax unified 2128 .thumb 2129 .thumb_func 2130 .fpu fpv4-sp-d16 2132 HAL_UART_DMAStop: ARM GAS /tmp/ccgDLloS.s page 118 2133 .LFB344: 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application 2134 .loc 1 1594 0 2135 .cfi_startproc 2136 @ args = 0, pretend = 0, frame = 0 2137 @ frame_needed = 0, uses_anonymous_args = 0 2138 .LVL144: 2139 0000 38B5 push {r3, r4, r5, lr} 2140 .LCFI32: 2141 .cfi_def_cfa_offset 16 2142 .cfi_offset 3, -16 2143 .cfi_offset 4, -12 2144 .cfi_offset 5, -8 2145 .cfi_offset 14, -4 1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 2146 .loc 1 1606 0 2147 0002 0368 ldr r3, [r0] 1602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; 2148 .loc 1 1602 0 2149 0004 D0F88410 ldr r1, [r0, #132] 2150 .LVL145: 1603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2151 .loc 1 1603 0 2152 0008 D0F88850 ldr r5, [r0, #136] 2153 .LVL146: 1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 2154 .loc 1 1606 0 2155 000c 9A68 ldr r2, [r3, #8] 2156 000e 1206 lsls r2, r2, #24 1594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application 2157 .loc 1 1594 0 2158 0010 0446 mov r4, r0 1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 2159 .loc 1 1606 0 2160 0012 01D5 bpl .L296 1606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 2161 .loc 1 1606 0 is_stmt 0 discriminator 1 2162 0014 2129 cmp r1, #33 2163 0016 2AD0 beq .L319 2164 .LVL147: 2165 .L296: 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 2166 .loc 1 1630 0 is_stmt 1 2167 0018 9868 ldr r0, [r3, #8] 2168 001a 10F04000 ands r0, r0, #64 2169 001e 02D0 beq .L300 1630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 2170 .loc 1 1630 0 is_stmt 0 discriminator 1 2171 0020 222D cmp r5, #34 2172 0022 01D0 beq .L320 1653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2173 .loc 1 1653 0 is_stmt 1 2174 0024 0020 movs r0, #0 2175 .L300: 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2176 .loc 1 1654 0 2177 0026 38BD pop {r3, r4, r5, pc} ARM GAS /tmp/ccgDLloS.s page 119 2178 .LVL148: 2179 .L320: 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2180 .loc 1 1633 0 2181 0028 9A68 ldr r2, [r3, #8] 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2182 .loc 1 1636 0 2183 002a E06F ldr r0, [r4, #124] 1633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2184 .loc 1 1633 0 2185 002c 22F04002 bic r2, r2, #64 2186 0030 9A60 str r2, [r3, #8] 1636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2187 .loc 1 1636 0 2188 0032 20B1 cbz r0, .L301 1638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2189 .loc 1 1638 0 2190 0034 FFF7FEFF bl HAL_DMA_Abort 2191 .LVL149: 2192 0038 0028 cmp r0, #0 2193 003a 2ED1 bne .L302 2194 .L318: 2195 003c 2368 ldr r3, [r4] 2196 .L301: 2197 .LVL150: 2198 .LBB94: 2199 .LBB95: 3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); 2200 .loc 1 3558 0 2201 003e 1A68 ldr r2, [r3] 2202 0040 22F49072 bic r2, r2, #288 2203 0044 1A60 str r2, [r3] 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2204 .loc 1 3559 0 2205 0046 9A68 ldr r2, [r3, #8] 2206 0048 22F08052 bic r2, r2, #268435456 2207 004c 22F00102 bic r2, r2, #1 2208 0050 9A60 str r2, [r3, #8] 3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2209 .loc 1 3562 0 2210 0052 E26E ldr r2, [r4, #108] 2211 0054 012A cmp r2, #1 2212 0056 03D1 bne .L304 3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2213 .loc 1 3564 0 2214 0058 1A68 ldr r2, [r3] 2215 005a 22F01002 bic r2, r2, #16 2216 005e 1A60 str r2, [r3] 2217 .L304: 3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2218 .loc 1 3569 0 2219 0060 0020 movs r0, #0 3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2220 .loc 1 3568 0 2221 0062 2023 movs r3, #32 2222 0064 C4F88830 str r3, [r4, #136] 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 120 2223 .loc 1 3572 0 2224 0068 2067 str r0, [r4, #112] 3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2225 .loc 1 3569 0 2226 006a E066 str r0, [r4, #108] 2227 .LBE95: 2228 .LBE94: 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2229 .loc 1 1654 0 2230 006c 38BD pop {r3, r4, r5, pc} 2231 .LVL151: 2232 .L319: 1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2233 .loc 1 1609 0 2234 006e 9A68 ldr r2, [r3, #8] 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2235 .loc 1 1612 0 2236 0070 806F ldr r0, [r0, #120] 2237 .LVL152: 1609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2238 .loc 1 1609 0 2239 0072 22F08002 bic r2, r2, #128 2240 0076 9A60 str r2, [r3, #8] 1612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2241 .loc 1 1612 0 2242 0078 18B1 cbz r0, .L297 1614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2243 .loc 1 1614 0 2244 007a FFF7FEFF bl HAL_DMA_Abort 2245 .LVL153: 2246 007e B0B9 cbnz r0, .L298 2247 .L317: 2248 0080 2368 ldr r3, [r4] 2249 .L297: 2250 .LVL154: 2251 .LBB96: 2252 .LBB97: 3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); 2253 .loc 1 3542 0 2254 0082 1A68 ldr r2, [r3] 2255 0084 22F0C002 bic r2, r2, #192 2256 0088 1A60 str r2, [r3] 3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2257 .loc 1 3543 0 2258 008a 9A68 ldr r2, [r3, #8] 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2259 .loc 1 3546 0 2260 008c 2021 movs r1, #32 3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2261 .loc 1 3543 0 2262 008e 22F40002 bic r2, r2, #8388608 2263 0092 9A60 str r2, [r3, #8] 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2264 .loc 1 3546 0 2265 0094 C4F88410 str r1, [r4, #132] 2266 0098 BEE7 b .L296 2267 .LVL155: ARM GAS /tmp/ccgDLloS.s page 121 2268 .L302: 2269 .LBE97: 2270 .LBE96: 1640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2271 .loc 1 1640 0 2272 009a E06F ldr r0, [r4, #124] 2273 009c FFF7FEFF bl HAL_DMA_GetError 2274 .LVL156: 2275 00a0 2028 cmp r0, #32 2276 00a2 CBD1 bne .L318 2277 .L303: 1643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2278 .loc 1 1643 0 2279 00a4 1023 movs r3, #16 2280 00a6 C4F88C30 str r3, [r4, #140] 1645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2281 .loc 1 1645 0 2282 00aa 0320 movs r0, #3 1654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2283 .loc 1 1654 0 2284 00ac 38BD pop {r3, r4, r5, pc} 2285 .LVL157: 2286 .L298: 1616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2287 .loc 1 1616 0 2288 00ae A06F ldr r0, [r4, #120] 2289 00b0 FFF7FEFF bl HAL_DMA_GetError 2290 .LVL158: 2291 00b4 2028 cmp r0, #32 2292 00b6 E3D1 bne .L317 2293 00b8 F4E7 b .L303 2294 .cfi_endproc 2295 .LFE344: 2297 00ba 00BF .section .text.HAL_UART_Abort,"ax",%progbits 2298 .align 1 2299 .p2align 2,,3 2300 .global HAL_UART_Abort 2301 .syntax unified 2302 .thumb 2303 .thumb_func 2304 .fpu fpv4-sp-d16 2306 HAL_UART_Abort: 2307 .LFB345: 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, TC, RXNE, PE, RXFT, TXFT and ERR (Frame error, noise error, overrun error) interr 2308 .loc 1 1669 0 2309 .cfi_startproc 2310 @ args = 0, pretend = 0, frame = 0 2311 @ frame_needed = 0, uses_anonymous_args = 0 2312 .LVL159: 2313 0000 38B5 push {r3, r4, r5, lr} 2314 .LCFI33: 2315 .cfi_def_cfa_offset 16 2316 .cfi_offset 3, -16 2317 .cfi_offset 4, -12 2318 .cfi_offset 5, -8 2319 .cfi_offset 14, -4 1671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TCIE)); ARM GAS /tmp/ccgDLloS.s page 122 2320 .loc 1 1671 0 2321 0002 0368 ldr r3, [r0] 2322 0004 1A68 ldr r2, [r3] 2323 0006 22F4F072 bic r2, r2, #480 2324 000a 1A60 str r2, [r3] 1673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2325 .loc 1 1673 0 2326 000c 9A68 ldr r2, [r3, #8] 2327 000e 22F08452 bic r2, r2, #276824064 2328 0012 22F00102 bic r2, r2, #1 2329 0016 9A60 str r2, [r3, #8] 1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2330 .loc 1 1676 0 2331 0018 C26E ldr r2, [r0, #108] 2332 001a 012A cmp r2, #1 1669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TXE, TC, RXNE, PE, RXFT, TXFT and ERR (Frame error, noise error, overrun error) interr 2333 .loc 1 1669 0 2334 001c 0446 mov r4, r0 1676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2335 .loc 1 1676 0 2336 001e 03D1 bne .L322 1678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2337 .loc 1 1678 0 2338 0020 1A68 ldr r2, [r3] 2339 0022 22F01002 bic r2, r2, #16 2340 0026 1A60 str r2, [r3] 2341 .L322: 1682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2342 .loc 1 1682 0 2343 0028 9A68 ldr r2, [r3, #8] 2344 002a 1106 lsls r1, r2, #24 2345 002c 0BD5 bpl .L323 1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2346 .loc 1 1684 0 2347 002e 9A68 ldr r2, [r3, #8] 1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2348 .loc 1 1687 0 2349 0030 A06F ldr r0, [r4, #120] 2350 .LVL160: 1684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2351 .loc 1 1684 0 2352 0032 22F08002 bic r2, r2, #128 2353 0036 9A60 str r2, [r3, #8] 1687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2354 .loc 1 1687 0 2355 0038 28B1 cbz r0, .L323 1691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2356 .loc 1 1691 0 2357 003a 0023 movs r3, #0 2358 003c 8363 str r3, [r0, #56] 1693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2359 .loc 1 1693 0 2360 003e FFF7FEFF bl HAL_DMA_Abort 2361 .LVL161: 2362 0042 68BB cbnz r0, .L324 2363 .L344: 2364 0044 2368 ldr r3, [r4] ARM GAS /tmp/ccgDLloS.s page 123 2365 .L323: 1707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2366 .loc 1 1707 0 2367 0046 9A68 ldr r2, [r3, #8] 2368 0048 5206 lsls r2, r2, #25 2369 004a 0BD5 bpl .L327 1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2370 .loc 1 1709 0 2371 004c 9A68 ldr r2, [r3, #8] 1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2372 .loc 1 1712 0 2373 004e E06F ldr r0, [r4, #124] 1709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2374 .loc 1 1709 0 2375 0050 22F04002 bic r2, r2, #64 2376 0054 9A60 str r2, [r3, #8] 1712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2377 .loc 1 1712 0 2378 0056 28B1 cbz r0, .L327 1716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2379 .loc 1 1716 0 2380 0058 0023 movs r3, #0 2381 005a 8363 str r3, [r0, #56] 1718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2382 .loc 1 1718 0 2383 005c FFF7FEFF bl HAL_DMA_Abort 2384 .LVL162: 2385 0060 40BB cbnz r0, .L328 2386 .L345: 2387 0062 2368 ldr r3, [r4] 2388 .L327: 1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2389 .loc 1 1739 0 2390 0064 616E ldr r1, [r4, #100] 1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 2391 .loc 1 1732 0 2392 0066 0022 movs r2, #0 1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2393 .loc 1 1736 0 2394 0068 0F20 movs r0, #15 1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2395 .loc 1 1739 0 2396 006a B1F1005F cmp r1, #536870912 1732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 2397 .loc 1 1732 0 2398 006e A4F85620 strh r2, [r4, #86] @ movhi 1733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2399 .loc 1 1733 0 2400 0072 A4F85E20 strh r2, [r4, #94] @ movhi 1736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2401 .loc 1 1736 0 2402 0076 1862 str r0, [r3, #32] 1739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2403 .loc 1 1739 0 2404 0078 03D1 bne .L330 1741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2405 .loc 1 1741 0 ARM GAS /tmp/ccgDLloS.s page 124 2406 007a 9A69 ldr r2, [r3, #24] 2407 007c 42F01002 orr r2, r2, #16 2408 0080 9A61 str r2, [r3, #24] 2409 .L330: 1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2410 .loc 1 1745 0 2411 0082 9969 ldr r1, [r3, #24] 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2412 .loc 1 1750 0 2413 0084 0022 movs r2, #0 1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2414 .loc 1 1748 0 2415 0086 2025 movs r5, #32 1745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2416 .loc 1 1745 0 2417 0088 41F00801 orr r1, r1, #8 2418 008c 9961 str r1, [r3, #24] 1754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2419 .loc 1 1754 0 2420 008e 1046 mov r0, r2 1748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2421 .loc 1 1748 0 2422 0090 C4F88450 str r5, [r4, #132] 1749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2423 .loc 1 1749 0 2424 0094 C4F88850 str r5, [r4, #136] 1750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2425 .loc 1 1750 0 2426 0098 E266 str r2, [r4, #108] 1752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2427 .loc 1 1752 0 2428 009a C4F88C20 str r2, [r4, #140] 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2429 .loc 1 1755 0 2430 009e 38BD pop {r3, r4, r5, pc} 2431 .LVL163: 2432 .L324: 1695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2433 .loc 1 1695 0 2434 00a0 A06F ldr r0, [r4, #120] 2435 00a2 FFF7FEFF bl HAL_DMA_GetError 2436 .LVL164: 2437 00a6 2028 cmp r0, #32 2438 00a8 CCD1 bne .L344 2439 .L329: 1723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2440 .loc 1 1723 0 2441 00aa 1023 movs r3, #16 2442 00ac C4F88C30 str r3, [r4, #140] 1725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2443 .loc 1 1725 0 2444 00b0 0320 movs r0, #3 1755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2445 .loc 1 1755 0 2446 00b2 38BD pop {r3, r4, r5, pc} 2447 .LVL165: 2448 .L328: ARM GAS /tmp/ccgDLloS.s page 125 1720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2449 .loc 1 1720 0 2450 00b4 E06F ldr r0, [r4, #124] 2451 00b6 FFF7FEFF bl HAL_DMA_GetError 2452 .LVL166: 2453 00ba 2028 cmp r0, #32 2454 00bc D1D1 bne .L345 2455 00be F4E7 b .L329 2456 .cfi_endproc 2457 .LFE345: 2459 .section .text.HAL_UART_AbortTransmit,"ax",%progbits 2460 .align 1 2461 .p2align 2,,3 2462 .global HAL_UART_AbortTransmit 2463 .syntax unified 2464 .thumb 2465 .thumb_func 2466 .fpu fpv4-sp-d16 2468 HAL_UART_AbortTransmit: 2469 .LFB346: 1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TCIE, TXEIE and TXFTIE interrupts */ 2470 .loc 1 1770 0 2471 .cfi_startproc 2472 @ args = 0, pretend = 0, frame = 0 2473 @ frame_needed = 0, uses_anonymous_args = 0 2474 .LVL167: 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); 2475 .loc 1 1772 0 2476 0000 0368 ldr r3, [r0] 2477 0002 1A68 ldr r2, [r3] 2478 0004 22F0C002 bic r2, r2, #192 1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TCIE, TXEIE and TXFTIE interrupts */ 2479 .loc 1 1770 0 2480 0008 10B5 push {r4, lr} 2481 .LCFI34: 2482 .cfi_def_cfa_offset 8 2483 .cfi_offset 4, -8 2484 .cfi_offset 14, -4 1772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); 2485 .loc 1 1772 0 2486 000a 1A60 str r2, [r3] 1773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2487 .loc 1 1773 0 2488 000c 9A68 ldr r2, [r3, #8] 2489 000e 22F40002 bic r2, r2, #8388608 2490 0012 9A60 str r2, [r3, #8] 1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2491 .loc 1 1776 0 2492 0014 9A68 ldr r2, [r3, #8] 2493 0016 1206 lsls r2, r2, #24 1770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable TCIE, TXEIE and TXFTIE interrupts */ 2494 .loc 1 1770 0 2495 0018 0446 mov r4, r0 1776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2496 .loc 1 1776 0 2497 001a 0AD5 bpl .L347 1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 126 2498 .loc 1 1778 0 2499 001c 9A68 ldr r2, [r3, #8] 1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2500 .loc 1 1781 0 2501 001e 806F ldr r0, [r0, #120] 2502 .LVL168: 1778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2503 .loc 1 1778 0 2504 0020 22F08002 bic r2, r2, #128 2505 0024 9A60 str r2, [r3, #8] 1781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2506 .loc 1 1781 0 2507 0026 20B1 cbz r0, .L347 1785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2508 .loc 1 1785 0 2509 0028 0023 movs r3, #0 2510 002a 8363 str r3, [r0, #56] 1787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2511 .loc 1 1787 0 2512 002c FFF7FEFF bl HAL_DMA_Abort 2513 .LVL169: 2514 0030 80B9 cbnz r0, .L360 2515 .L347: 1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2516 .loc 1 1804 0 2517 0032 636E ldr r3, [r4, #100] 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2518 .loc 1 1801 0 2519 0034 0022 movs r2, #0 1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2520 .loc 1 1804 0 2521 0036 B3F1005F cmp r3, #536870912 1801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2522 .loc 1 1801 0 2523 003a A4F85620 strh r2, [r4, #86] @ movhi 1804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2524 .loc 1 1804 0 2525 003e 04D1 bne .L349 1806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2526 .loc 1 1806 0 2527 0040 2268 ldr r2, [r4] 2528 0042 9369 ldr r3, [r2, #24] 2529 0044 43F01003 orr r3, r3, #16 2530 0048 9361 str r3, [r2, #24] 2531 .L349: 1810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2532 .loc 1 1810 0 2533 004a 2023 movs r3, #32 2534 004c C4F88430 str r3, [r4, #132] 1812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2535 .loc 1 1812 0 2536 0050 0020 movs r0, #0 1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2537 .loc 1 1813 0 2538 0052 10BD pop {r4, pc} 2539 .LVL170: 2540 .L360: ARM GAS /tmp/ccgDLloS.s page 127 1789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2541 .loc 1 1789 0 2542 0054 A06F ldr r0, [r4, #120] 2543 0056 FFF7FEFF bl HAL_DMA_GetError 2544 .LVL171: 2545 005a 2028 cmp r0, #32 2546 005c E9D1 bne .L347 1792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2547 .loc 1 1792 0 2548 005e 1023 movs r3, #16 2549 0060 C4F88C30 str r3, [r4, #140] 1794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2550 .loc 1 1794 0 2551 0064 0320 movs r0, #3 1813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2552 .loc 1 1813 0 2553 0066 10BD pop {r4, pc} 2554 .cfi_endproc 2555 .LFE346: 2557 .section .text.HAL_UART_AbortReceive,"ax",%progbits 2558 .align 1 2559 .p2align 2,,3 2560 .global HAL_UART_AbortReceive 2561 .syntax unified 2562 .thumb 2563 .thumb_func 2564 .fpu fpv4-sp-d16 2566 HAL_UART_AbortReceive: 2567 .LFB347: 1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PEIE, EIE, RXNEIE and RXFTIE interrupts */ 2568 .loc 1 1828 0 2569 .cfi_startproc 2570 @ args = 0, pretend = 0, frame = 0 2571 @ frame_needed = 0, uses_anonymous_args = 0 2572 .LVL172: 2573 0000 38B5 push {r3, r4, r5, lr} 2574 .LCFI35: 2575 .cfi_def_cfa_offset 16 2576 .cfi_offset 3, -16 2577 .cfi_offset 4, -12 2578 .cfi_offset 5, -8 2579 .cfi_offset 14, -4 1830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); 2580 .loc 1 1830 0 2581 0002 0368 ldr r3, [r0] 2582 0004 1A68 ldr r2, [r3] 2583 0006 22F49072 bic r2, r2, #288 2584 000a 1A60 str r2, [r3] 1831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2585 .loc 1 1831 0 2586 000c 9A68 ldr r2, [r3, #8] 2587 000e 22F08052 bic r2, r2, #268435456 2588 0012 22F00102 bic r2, r2, #1 2589 0016 9A60 str r2, [r3, #8] 1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2590 .loc 1 1834 0 2591 0018 C26E ldr r2, [r0, #108] ARM GAS /tmp/ccgDLloS.s page 128 2592 001a 012A cmp r2, #1 1828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable PEIE, EIE, RXNEIE and RXFTIE interrupts */ 2593 .loc 1 1828 0 2594 001c 0446 mov r4, r0 1834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2595 .loc 1 1834 0 2596 001e 03D1 bne .L362 1836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2597 .loc 1 1836 0 2598 0020 1A68 ldr r2, [r3] 2599 0022 22F01002 bic r2, r2, #16 2600 0026 1A60 str r2, [r3] 2601 .L362: 1840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2602 .loc 1 1840 0 2603 0028 9A68 ldr r2, [r3, #8] 2604 002a 5206 lsls r2, r2, #25 2605 002c 0BD5 bpl .L363 1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2606 .loc 1 1842 0 2607 002e 9A68 ldr r2, [r3, #8] 1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2608 .loc 1 1845 0 2609 0030 E06F ldr r0, [r4, #124] 2610 .LVL173: 1842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2611 .loc 1 1842 0 2612 0032 22F04002 bic r2, r2, #64 2613 0036 9A60 str r2, [r3, #8] 1845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2614 .loc 1 1845 0 2615 0038 28B1 cbz r0, .L363 1849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2616 .loc 1 1849 0 2617 003a 0023 movs r3, #0 2618 003c 8363 str r3, [r0, #56] 1851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2619 .loc 1 1851 0 2620 003e FFF7FEFF bl HAL_DMA_Abort 2621 .LVL174: 2622 0042 78B9 cbnz r0, .L364 2623 .L374: 2624 0044 2368 ldr r3, [r4] 2625 .L363: 1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2626 .loc 1 1865 0 2627 0046 0022 movs r2, #0 1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2628 .loc 1 1868 0 2629 0048 0F21 movs r1, #15 1865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2630 .loc 1 1865 0 2631 004a A4F85E20 strh r2, [r4, #94] @ movhi 1868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2632 .loc 1 1868 0 2633 004e 1962 str r1, [r3, #32] 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 129 2634 .loc 1 1871 0 2635 0050 9969 ldr r1, [r3, #24] 1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2636 .loc 1 1874 0 2637 0052 2025 movs r5, #32 1871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2638 .loc 1 1871 0 2639 0054 41F00801 orr r1, r1, #8 2640 0058 9961 str r1, [r3, #24] 1877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2641 .loc 1 1877 0 2642 005a 1046 mov r0, r2 1874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2643 .loc 1 1874 0 2644 005c C4F88850 str r5, [r4, #136] 1875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2645 .loc 1 1875 0 2646 0060 E266 str r2, [r4, #108] 1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2647 .loc 1 1878 0 2648 0062 38BD pop {r3, r4, r5, pc} 2649 .LVL175: 2650 .L364: 1853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2651 .loc 1 1853 0 2652 0064 E06F ldr r0, [r4, #124] 2653 0066 FFF7FEFF bl HAL_DMA_GetError 2654 .LVL176: 2655 006a 2028 cmp r0, #32 2656 006c EAD1 bne .L374 1856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2657 .loc 1 1856 0 2658 006e 1023 movs r3, #16 2659 0070 C4F88C30 str r3, [r4, #140] 1858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2660 .loc 1 1858 0 2661 0074 0320 movs r0, #3 1878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2662 .loc 1 1878 0 2663 0076 38BD pop {r3, r4, r5, pc} 2664 .cfi_endproc 2665 .LFE347: 2667 .section .text.HAL_UART_TxCpltCallback,"ax",%progbits 2668 .align 1 2669 .p2align 2,,3 2670 .weak HAL_UART_TxCpltCallback 2671 .syntax unified 2672 .thumb 2673 .thumb_func 2674 .fpu fpv4-sp-d16 2676 HAL_UART_TxCpltCallback: 2677 .LFB410: 2678 .cfi_startproc 2679 @ args = 0, pretend = 0, frame = 0 2680 @ frame_needed = 0, uses_anonymous_args = 0 2681 @ link register save eliminated. 2682 0000 7047 bx lr ARM GAS /tmp/ccgDLloS.s page 130 2683 .cfi_endproc 2684 .LFE410: 2686 0002 00BF .section .text.UART_DMATransmitCplt,"ax",%progbits 2687 .align 1 2688 .p2align 2,,3 2689 .syntax unified 2690 .thumb 2691 .thumb_func 2692 .fpu fpv4-sp-d16 2694 UART_DMATransmitCplt: 2695 .LFB380: 3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 2696 .loc 1 3582 0 2697 .cfi_startproc 2698 @ args = 0, pretend = 0, frame = 0 2699 @ frame_needed = 0, uses_anonymous_args = 0 2700 .LVL177: 3582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 2701 .loc 1 3582 0 2702 0000 08B5 push {r3, lr} 2703 .LCFI36: 2704 .cfi_def_cfa_offset 8 2705 .cfi_offset 3, -8 2706 .cfi_offset 14, -4 3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2707 .loc 1 3586 0 2708 0002 0368 ldr r3, [r0] 3583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2709 .loc 1 3583 0 2710 0004 806A ldr r0, [r0, #40] 2711 .LVL178: 3586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2712 .loc 1 3586 0 2713 0006 1B68 ldr r3, [r3] 2714 0008 13F02003 ands r3, r3, #32 2715 000c 0BD1 bne .L377 3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2716 .loc 1 3592 0 2717 000e 0268 ldr r2, [r0] 3588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2718 .loc 1 3588 0 2719 0010 A0F85630 strh r3, [r0, #86] @ movhi 3592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2720 .loc 1 3592 0 2721 0014 9368 ldr r3, [r2, #8] 2722 0016 23F08003 bic r3, r3, #128 2723 001a 9360 str r3, [r2, #8] 3595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2724 .loc 1 3595 0 2725 001c 1368 ldr r3, [r2] 2726 001e 43F04003 orr r3, r3, #64 2727 0022 1360 str r3, [r2] 3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2728 .loc 1 3608 0 2729 0024 08BD pop {r3, pc} 2730 .L377: 3605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ ARM GAS /tmp/ccgDLloS.s page 131 2731 .loc 1 3605 0 2732 0026 FFF7FEFF bl HAL_UART_TxCpltCallback 2733 .LVL179: 3608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2734 .loc 1 3608 0 2735 002a 08BD pop {r3, pc} 2736 .cfi_endproc 2737 .LFE380: 2739 .section .text.HAL_UART_TxHalfCpltCallback,"ax",%progbits 2740 .align 1 2741 .p2align 2,,3 2742 .weak HAL_UART_TxHalfCpltCallback 2743 .syntax unified 2744 .thumb 2745 .thumb_func 2746 .fpu fpv4-sp-d16 2748 HAL_UART_TxHalfCpltCallback: 2749 .LFB408: 2750 .cfi_startproc 2751 @ args = 0, pretend = 0, frame = 0 2752 @ frame_needed = 0, uses_anonymous_args = 0 2753 @ link register save eliminated. 2754 0000 7047 bx lr 2755 .cfi_endproc 2756 .LFE408: 2758 0002 00BF .section .text.UART_DMATxHalfCplt,"ax",%progbits 2759 .align 1 2760 .p2align 2,,3 2761 .syntax unified 2762 .thumb 2763 .thumb_func 2764 .fpu fpv4-sp-d16 2766 UART_DMATxHalfCplt: 2767 .LFB381: 3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 2768 .loc 1 3616 0 2769 .cfi_startproc 2770 @ args = 0, pretend = 0, frame = 0 2771 @ frame_needed = 0, uses_anonymous_args = 0 2772 .LVL180: 3616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 2773 .loc 1 3616 0 2774 0000 08B5 push {r3, lr} 2775 .LCFI37: 2776 .cfi_def_cfa_offset 8 2777 .cfi_offset 3, -8 2778 .cfi_offset 14, -4 3624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2779 .loc 1 3624 0 2780 0002 806A ldr r0, [r0, #40] 2781 .LVL181: 2782 0004 FFF7FEFF bl HAL_UART_TxHalfCpltCallback 2783 .LVL182: 3626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2784 .loc 1 3626 0 2785 0008 08BD pop {r3, pc} 2786 .cfi_endproc ARM GAS /tmp/ccgDLloS.s page 132 2787 .LFE381: 2789 000a 00BF .section .text.HAL_UART_RxCpltCallback,"ax",%progbits 2790 .align 1 2791 .p2align 2,,3 2792 .weak HAL_UART_RxCpltCallback 2793 .syntax unified 2794 .thumb 2795 .thumb_func 2796 .fpu fpv4-sp-d16 2798 HAL_UART_RxCpltCallback: 2799 .LFB414: 2800 .cfi_startproc 2801 @ args = 0, pretend = 0, frame = 0 2802 @ frame_needed = 0, uses_anonymous_args = 0 2803 @ link register save eliminated. 2804 0000 7047 bx lr 2805 .cfi_endproc 2806 .LFE414: 2808 0002 00BF .section .text.HAL_UART_RxHalfCpltCallback,"ax",%progbits 2809 .align 1 2810 .p2align 2,,3 2811 .weak HAL_UART_RxHalfCpltCallback 2812 .syntax unified 2813 .thumb 2814 .thumb_func 2815 .fpu fpv4-sp-d16 2817 HAL_UART_RxHalfCpltCallback: 2818 .LFB412: 2819 .cfi_startproc 2820 @ args = 0, pretend = 0, frame = 0 2821 @ frame_needed = 0, uses_anonymous_args = 0 2822 @ link register save eliminated. 2823 0000 7047 bx lr 2824 .cfi_endproc 2825 .LFE412: 2827 0002 00BF .section .text.HAL_UART_ErrorCallback,"ax",%progbits 2828 .align 1 2829 .p2align 2,,3 2830 .weak HAL_UART_ErrorCallback 2831 .syntax unified 2832 .thumb 2833 .thumb_func 2834 .fpu fpv4-sp-d16 2836 HAL_UART_ErrorCallback: 2837 .LFB416: 2838 .cfi_startproc 2839 @ args = 0, pretend = 0, frame = 0 2840 @ frame_needed = 0, uses_anonymous_args = 0 2841 @ link register save eliminated. 2842 0000 7047 bx lr 2843 .cfi_endproc 2844 .LFE416: 2846 0002 00BF .section .text.UART_DMAError,"ax",%progbits 2847 .align 1 2848 .p2align 2,,3 2849 .syntax unified 2850 .thumb ARM GAS /tmp/ccgDLloS.s page 133 2851 .thumb_func 2852 .fpu fpv4-sp-d16 2854 UART_DMAError: 2855 .LFB384: 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 2856 .loc 1 3725 0 2857 .cfi_startproc 2858 @ args = 0, pretend = 0, frame = 0 2859 @ frame_needed = 0, uses_anonymous_args = 0 2860 .LVL183: 3726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2861 .loc 1 3726 0 2862 0000 806A ldr r0, [r0, #40] 2863 .LVL184: 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 2864 .loc 1 3732 0 2865 0002 0368 ldr r3, [r0] 3725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 2866 .loc 1 3725 0 2867 0004 10B5 push {r4, lr} 2868 .LCFI38: 2869 .cfi_def_cfa_offset 8 2870 .cfi_offset 4, -8 2871 .cfi_offset 14, -4 3728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** const HAL_UART_StateTypeDef rxstate = huart->RxState; 2872 .loc 1 3728 0 2873 0006 D0F88440 ldr r4, [r0, #132] 2874 .LVL185: 3729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2875 .loc 1 3729 0 2876 000a D0F88810 ldr r1, [r0, #136] 2877 .LVL186: 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 2878 .loc 1 3732 0 2879 000e 9A68 ldr r2, [r3, #8] 2880 0010 1206 lsls r2, r2, #24 2881 0012 01D5 bpl .L387 3732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (gstate == HAL_UART_STATE_BUSY_TX)) 2882 .loc 1 3732 0 is_stmt 0 discriminator 1 2883 0014 212C cmp r4, #33 2884 0016 24D0 beq .L397 2885 .LVL187: 2886 .L387: 3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 2887 .loc 1 3740 0 is_stmt 1 2888 0018 9A68 ldr r2, [r3, #8] 2889 001a 5206 lsls r2, r2, #25 2890 001c 01D5 bpl .L388 3740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (rxstate == HAL_UART_STATE_BUSY_RX)) 2891 .loc 1 3740 0 is_stmt 0 discriminator 1 2892 001e 2229 cmp r1, #34 2893 0020 08D0 beq .L398 2894 .L388: 3747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2895 .loc 1 3747 0 is_stmt 1 2896 0022 D0F88C30 ldr r3, [r0, #140] 2897 0026 43F01003 orr r3, r3, #16 ARM GAS /tmp/ccgDLloS.s page 134 2898 002a C0F88C30 str r3, [r0, #140] 3754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2899 .loc 1 3754 0 2900 002e FFF7FEFF bl HAL_UART_ErrorCallback 2901 .LVL188: 3756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2902 .loc 1 3756 0 2903 0032 10BD pop {r4, pc} 2904 .LVL189: 2905 .L398: 3743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndRxTransfer(huart); 2906 .loc 1 3743 0 2907 0034 0022 movs r2, #0 2908 0036 A0F85E20 strh r2, [r0, #94] @ movhi 2909 .LVL190: 2910 .LBB98: 2911 .LBB99: 3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); 2912 .loc 1 3558 0 2913 003a 1A68 ldr r2, [r3] 2914 003c 22F49072 bic r2, r2, #288 2915 0040 1A60 str r2, [r3] 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2916 .loc 1 3559 0 2917 0042 9A68 ldr r2, [r3, #8] 2918 0044 22F08052 bic r2, r2, #268435456 2919 0048 22F00102 bic r2, r2, #1 2920 004c 9A60 str r2, [r3, #8] 3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 2921 .loc 1 3562 0 2922 004e C26E ldr r2, [r0, #108] 2923 0050 012A cmp r2, #1 2924 0052 15D0 beq .L399 2925 .L389: 3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2926 .loc 1 3569 0 2927 0054 0023 movs r3, #0 3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2928 .loc 1 3568 0 2929 0056 2022 movs r2, #32 2930 0058 C0F88820 str r2, [r0, #136] 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2931 .loc 1 3572 0 2932 005c 0367 str r3, [r0, #112] 3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2933 .loc 1 3569 0 2934 005e C366 str r3, [r0, #108] 2935 0060 DFE7 b .L388 2936 .LVL191: 2937 .L397: 2938 .LBE99: 2939 .LBE98: 3735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_EndTxTransfer(huart); 2940 .loc 1 3735 0 2941 0062 0022 movs r2, #0 2942 0064 A0F85620 strh r2, [r0, #86] @ movhi 2943 .LVL192: ARM GAS /tmp/ccgDLloS.s page 135 2944 .LBB101: 2945 .LBB102: 3542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); 2946 .loc 1 3542 0 2947 0068 1A68 ldr r2, [r3] 2948 006a 22F0C002 bic r2, r2, #192 2949 006e 1A60 str r2, [r3] 3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2950 .loc 1 3543 0 2951 0070 9A68 ldr r2, [r3, #8] 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2952 .loc 1 3546 0 2953 0072 2024 movs r4, #32 2954 .LVL193: 3543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 2955 .loc 1 3543 0 2956 0074 22F40002 bic r2, r2, #8388608 2957 0078 9A60 str r2, [r3, #8] 3546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2958 .loc 1 3546 0 2959 007a C0F88440 str r4, [r0, #132] 2960 007e CBE7 b .L387 2961 .LVL194: 2962 .L399: 2963 .LBE102: 2964 .LBE101: 2965 .LBB103: 2966 .LBB100: 3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 2967 .loc 1 3564 0 2968 0080 1A68 ldr r2, [r3] 2969 0082 22F01002 bic r2, r2, #16 2970 0086 1A60 str r2, [r3] 2971 0088 E4E7 b .L389 2972 .LBE100: 2973 .LBE103: 2974 .cfi_endproc 2975 .LFE384: 2977 008a 00BF .section .text.UART_DMAAbortOnError,"ax",%progbits 2978 .align 1 2979 .p2align 2,,3 2980 .syntax unified 2981 .thumb 2982 .thumb_func 2983 .fpu fpv4-sp-d16 2985 UART_DMAAbortOnError: 2986 .LFB385: 3765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 2987 .loc 1 3765 0 2988 .cfi_startproc 2989 @ args = 0, pretend = 0, frame = 0 2990 @ frame_needed = 0, uses_anonymous_args = 0 2991 .LVL195: 2992 0000 08B5 push {r3, lr} 2993 .LCFI39: 2994 .cfi_def_cfa_offset 8 2995 .cfi_offset 3, -8 ARM GAS /tmp/ccgDLloS.s page 136 2996 .cfi_offset 14, -4 3766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 2997 .loc 1 3766 0 2998 0002 836A ldr r3, [r0, #40] 2999 .LVL196: 3767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxXferCount = 0U; 3000 .loc 1 3767 0 3001 0004 0022 movs r2, #0 3002 0006 A3F85E20 strh r2, [r3, #94] @ movhi 3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3003 .loc 1 3775 0 3004 000a 1846 mov r0, r3 3005 .LVL197: 3768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3006 .loc 1 3768 0 3007 000c A3F85620 strh r2, [r3, #86] @ movhi 3775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3008 .loc 1 3775 0 3009 0010 FFF7FEFF bl HAL_UART_ErrorCallback 3010 .LVL198: 3777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3011 .loc 1 3777 0 3012 0014 08BD pop {r3, pc} 3013 .cfi_endproc 3014 .LFE385: 3016 0016 00BF .section .text.HAL_UART_AbortCpltCallback,"ax",%progbits 3017 .align 1 3018 .p2align 2,,3 3019 .weak HAL_UART_AbortCpltCallback 3020 .syntax unified 3021 .thumb 3022 .thumb_func 3023 .fpu fpv4-sp-d16 3025 HAL_UART_AbortCpltCallback: 3026 .LFB418: 3027 .cfi_startproc 3028 @ args = 0, pretend = 0, frame = 0 3029 @ frame_needed = 0, uses_anonymous_args = 0 3030 @ link register save eliminated. 3031 0000 7047 bx lr 3032 .cfi_endproc 3033 .LFE418: 3035 0002 00BF .section .text.HAL_UART_Abort_IT,"ax",%progbits 3036 .align 1 3037 .p2align 2,,3 3038 .global HAL_UART_Abort_IT 3039 .syntax unified 3040 .thumb 3041 .thumb_func 3042 .fpu fpv4-sp-d16 3044 HAL_UART_Abort_IT: 3045 .LFB348: 1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t abortcplt = 1U; 3046 .loc 1 1895 0 3047 .cfi_startproc 3048 @ args = 0, pretend = 0, frame = 0 3049 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccgDLloS.s page 137 3050 .LVL199: 1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t abortcplt = 1U; 3051 .loc 1 1895 0 3052 0000 38B5 push {r3, r4, r5, lr} 3053 .LCFI40: 3054 .cfi_def_cfa_offset 16 3055 .cfi_offset 3, -16 3056 .cfi_offset 4, -12 3057 .cfi_offset 5, -8 3058 .cfi_offset 14, -4 1899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** USART_CR1_TXEIE_TXFNFIE)); 3059 .loc 1 1899 0 3060 0002 0368 ldr r3, [r0] 3061 0004 1A68 ldr r2, [r3] 3062 0006 22F4F072 bic r2, r2, #480 3063 000a 1A60 str r2, [r3] 1901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3064 .loc 1 1901 0 3065 000c 9A68 ldr r2, [r3, #8] 3066 000e 22F08452 bic r2, r2, #276824064 3067 0012 22F00102 bic r2, r2, #1 3068 0016 9A60 str r2, [r3, #8] 1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3069 .loc 1 1904 0 3070 0018 C26E ldr r2, [r0, #108] 3071 001a 012A cmp r2, #1 1895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t abortcplt = 1U; 3072 .loc 1 1895 0 3073 001c 0446 mov r4, r0 1904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3074 .loc 1 1904 0 3075 001e 03D1 bne .L404 1906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3076 .loc 1 1906 0 3077 0020 1A68 ldr r2, [r3] 3078 0022 22F01002 bic r2, r2, #16 3079 0026 1A60 str r2, [r3] 3080 .L404: 1912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3081 .loc 1 1912 0 3082 0028 A06F ldr r0, [r4, #120] 3083 .LVL200: 3084 002a 28B1 cbz r0, .L405 1916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3085 .loc 1 1916 0 3086 002c 9A68 ldr r2, [r3, #8] 3087 002e 12F08002 ands r2, r2, #128 1918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3088 .loc 1 1918 0 3089 0032 18BF it ne 3090 0034 2C4A ldrne r2, .L438 1922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3091 .loc 1 1922 0 3092 0036 8263 str r2, [r0, #56] 3093 .L405: 1926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3094 .loc 1 1926 0 ARM GAS /tmp/ccgDLloS.s page 138 3095 0038 E16F ldr r1, [r4, #124] 3096 003a 29B1 cbz r1, .L407 1930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3097 .loc 1 1930 0 3098 003c 9A68 ldr r2, [r3, #8] 3099 003e 12F04002 ands r2, r2, #64 1932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3100 .loc 1 1932 0 3101 0042 18BF it ne 3102 0044 294A ldrne r2, .L438+4 1936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3103 .loc 1 1936 0 3104 0046 8A63 str r2, [r1, #56] 3105 .L407: 1941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3106 .loc 1 1941 0 3107 0048 9A68 ldr r2, [r3, #8] 3108 004a 1506 lsls r5, r2, #24 3109 004c 0CD5 bpl .L409 1944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3110 .loc 1 1944 0 3111 004e 9A68 ldr r2, [r3, #8] 3112 0050 22F08002 bic r2, r2, #128 3113 0054 9A60 str r2, [r3, #8] 1947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3114 .loc 1 1947 0 3115 0056 38B1 cbz r0, .L409 1953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3116 .loc 1 1953 0 3117 0058 FFF7FEFF bl HAL_DMA_Abort_IT 3118 .LVL201: 3119 005c 0028 cmp r0, #0 3120 005e 36D0 beq .L410 1955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3121 .loc 1 1955 0 3122 0060 A26F ldr r2, [r4, #120] 3123 0062 2368 ldr r3, [r4] 3124 0064 0021 movs r1, #0 3125 0066 9163 str r1, [r2, #56] 3126 .L409: 1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3127 .loc 1 1965 0 3128 0068 9A68 ldr r2, [r3, #8] 3129 006a 5106 lsls r1, r2, #25 3130 006c 0CD5 bpl .L413 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3131 .loc 1 1967 0 3132 006e 9A68 ldr r2, [r3, #8] 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3133 .loc 1 1970 0 3134 0070 E06F ldr r0, [r4, #124] 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3135 .loc 1 1967 0 3136 0072 22F04002 bic r2, r2, #64 3137 0076 9A60 str r2, [r3, #8] 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3138 .loc 1 1970 0 ARM GAS /tmp/ccgDLloS.s page 139 3139 0078 30B1 cbz r0, .L413 3140 .LVL202: 3141 .L411: 1976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3142 .loc 1 1976 0 3143 007a FFF7FEFF bl HAL_DMA_Abort_IT 3144 .LVL203: 3145 007e 20B3 cbz r0, .L430 1978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** abortcplt = 1U; 3146 .loc 1 1978 0 3147 0080 E26F ldr r2, [r4, #124] 3148 0082 2368 ldr r3, [r4] 3149 0084 0021 movs r1, #0 3150 0086 9163 str r1, [r2, #56] 3151 .LVL204: 3152 .L413: 2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3153 .loc 1 2006 0 3154 0088 616E ldr r1, [r4, #100] 1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3155 .loc 1 1992 0 3156 008a 0022 movs r2, #0 2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3157 .loc 1 2003 0 3158 008c 0F20 movs r0, #15 2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3159 .loc 1 2006 0 3160 008e B1F1005F cmp r1, #536870912 1992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3161 .loc 1 1992 0 3162 0092 A4F85620 strh r2, [r4, #86] @ movhi 1996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 3163 .loc 1 1996 0 3164 0096 2267 str r2, [r4, #112] 1993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3165 .loc 1 1993 0 3166 0098 A4F85E20 strh r2, [r4, #94] @ movhi 1997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3167 .loc 1 1997 0 3168 009c 6267 str r2, [r4, #116] 2000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3169 .loc 1 2000 0 3170 009e C4F88C20 str r2, [r4, #140] 2003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3171 .loc 1 2003 0 3172 00a2 1862 str r0, [r3, #32] 2006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3173 .loc 1 2006 0 3174 00a4 03D1 bne .L415 2008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3175 .loc 1 2008 0 3176 00a6 9A69 ldr r2, [r3, #24] 3177 00a8 42F01002 orr r2, r2, #16 3178 00ac 9A61 str r2, [r3, #24] 3179 .L415: 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3180 .loc 1 2012 0 ARM GAS /tmp/ccgDLloS.s page 140 3181 00ae 9A69 ldr r2, [r3, #24] 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3182 .loc 1 2015 0 3183 00b0 2021 movs r1, #32 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3184 .loc 1 2012 0 3185 00b2 42F00802 orr r2, r2, #8 2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3186 .loc 1 2017 0 3187 00b6 0025 movs r5, #0 2012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3188 .loc 1 2012 0 3189 00b8 9A61 str r2, [r3, #24] 2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3190 .loc 1 2025 0 3191 00ba 2046 mov r0, r4 2015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3192 .loc 1 2015 0 3193 00bc C4F88410 str r1, [r4, #132] 2016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3194 .loc 1 2016 0 3195 00c0 C4F88810 str r1, [r4, #136] 2017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3196 .loc 1 2017 0 3197 00c4 E566 str r5, [r4, #108] 2025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3198 .loc 1 2025 0 3199 00c6 FFF7FEFF bl HAL_UART_AbortCpltCallback 3200 .LVL205: 3201 .L430: 2030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3202 .loc 1 2030 0 3203 00ca 0020 movs r0, #0 3204 00cc 38BD pop {r3, r4, r5, pc} 3205 .LVL206: 3206 .L410: 1965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3207 .loc 1 1965 0 3208 00ce 2368 ldr r3, [r4] 3209 00d0 9A68 ldr r2, [r3, #8] 3210 00d2 5206 lsls r2, r2, #25 3211 00d4 F9D5 bpl .L430 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3212 .loc 1 1967 0 3213 00d6 9A68 ldr r2, [r3, #8] 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3214 .loc 1 1970 0 3215 00d8 E06F ldr r0, [r4, #124] 1967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3216 .loc 1 1967 0 3217 00da 22F04002 bic r2, r2, #64 3218 00de 9A60 str r2, [r3, #8] 1970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3219 .loc 1 1970 0 3220 00e0 0028 cmp r0, #0 3221 00e2 CAD1 bne .L411 3222 00e4 F1E7 b .L430 ARM GAS /tmp/ccgDLloS.s page 141 3223 .L439: 3224 00e6 00BF .align 2 3225 .L438: 3226 00e8 00000000 .word UART_DMATxAbortCallback 3227 00ec 00000000 .word UART_DMARxAbortCallback 3228 .cfi_endproc 3229 .LFE348: 3231 .section .text.UART_DMARxAbortCallback,"ax",%progbits 3232 .align 1 3233 .p2align 2,,3 3234 .syntax unified 3235 .thumb 3236 .thumb_func 3237 .fpu fpv4-sp-d16 3239 UART_DMARxAbortCallback: 3240 .LFB387: 3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3241 .loc 1 3843 0 3242 .cfi_startproc 3243 @ args = 0, pretend = 0, frame = 0 3244 @ frame_needed = 0, uses_anonymous_args = 0 3245 .LVL207: 3844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3246 .loc 1 3844 0 3247 0000 836A ldr r3, [r0, #40] 3248 .LVL208: 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3249 .loc 1 3849 0 3250 0002 D3E91E21 ldrd r2, r1, [r3, #120] 3846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3251 .loc 1 3846 0 3252 0006 0020 movs r0, #0 3253 .LVL209: 3254 0008 8863 str r0, [r1, #56] 3849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3255 .loc 1 3849 0 3256 000a 12B1 cbz r2, .L441 3851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3257 .loc 1 3851 0 3258 000c 926B ldr r2, [r2, #56] 3259 000e 02B1 cbz r2, .L441 3260 0010 7047 bx lr 3261 .L441: 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3262 .loc 1 3865 0 3263 0012 1968 ldr r1, [r3] 3858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3264 .loc 1 3858 0 3265 0014 0022 movs r2, #0 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3266 .loc 1 3865 0 3267 0016 0F20 movs r0, #15 3843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3268 .loc 1 3843 0 3269 0018 10B5 push {r4, lr} 3270 .LCFI41: 3271 .cfi_def_cfa_offset 8 ARM GAS /tmp/ccgDLloS.s page 142 3272 .cfi_offset 4, -8 3273 .cfi_offset 14, -4 3858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3274 .loc 1 3858 0 3275 001a A3F85620 strh r2, [r3, #86] @ movhi 3859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3276 .loc 1 3859 0 3277 001e A3F85E20 strh r2, [r3, #94] @ movhi 3862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3278 .loc 1 3862 0 3279 0022 C3F88C20 str r2, [r3, #140] 3865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3280 .loc 1 3865 0 3281 0026 0862 str r0, [r1, #32] 3868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3282 .loc 1 3868 0 3283 0028 8869 ldr r0, [r1, #24] 3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3284 .loc 1 3871 0 3285 002a 2024 movs r4, #32 3868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3286 .loc 1 3868 0 3287 002c 40F00800 orr r0, r0, #8 3288 0030 8861 str r0, [r1, #24] 3871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3289 .loc 1 3871 0 3290 0032 C3F88440 str r4, [r3, #132] 3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3291 .loc 1 3881 0 3292 0036 1846 mov r0, r3 3872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3293 .loc 1 3872 0 3294 0038 C3F88840 str r4, [r3, #136] 3873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3295 .loc 1 3873 0 3296 003c DA66 str r2, [r3, #108] 3881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3297 .loc 1 3881 0 3298 003e FFF7FEFF bl HAL_UART_AbortCpltCallback 3299 .LVL210: 3883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3300 .loc 1 3883 0 3301 0042 10BD pop {r4, pc} 3302 .cfi_endproc 3303 .LFE387: 3305 .section .text.UART_DMATxAbortCallback,"ax",%progbits 3306 .align 1 3307 .p2align 2,,3 3308 .syntax unified 3309 .thumb 3310 .thumb_func 3311 .fpu fpv4-sp-d16 3313 UART_DMATxAbortCallback: 3314 .LFB386: 3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3315 .loc 1 3788 0 3316 .cfi_startproc ARM GAS /tmp/ccgDLloS.s page 143 3317 @ args = 0, pretend = 0, frame = 0 3318 @ frame_needed = 0, uses_anonymous_args = 0 3319 .LVL211: 3789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3320 .loc 1 3789 0 3321 0000 836A ldr r3, [r0, #40] 3322 .LVL212: 3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3323 .loc 1 3794 0 3324 0002 D3E91E12 ldrd r1, r2, [r3, #120] 3791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3325 .loc 1 3791 0 3326 0006 0020 movs r0, #0 3327 .LVL213: 3328 0008 8863 str r0, [r1, #56] 3794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3329 .loc 1 3794 0 3330 000a 12B1 cbz r2, .L450 3796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3331 .loc 1 3796 0 3332 000c 926B ldr r2, [r2, #56] 3333 000e 02B1 cbz r2, .L450 3334 0010 7047 bx lr 3335 .L450: 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3336 .loc 1 3813 0 3337 0012 586E ldr r0, [r3, #100] 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3338 .loc 1 3810 0 3339 0014 1968 ldr r1, [r3] 3788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3340 .loc 1 3788 0 3341 0016 10B5 push {r4, lr} 3342 .LCFI42: 3343 .cfi_def_cfa_offset 8 3344 .cfi_offset 4, -8 3345 .cfi_offset 14, -4 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3346 .loc 1 3803 0 3347 0018 0022 movs r2, #0 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3348 .loc 1 3810 0 3349 001a 0F24 movs r4, #15 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3350 .loc 1 3813 0 3351 001c B0F1005F cmp r0, #536870912 3803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = 0U; 3352 .loc 1 3803 0 3353 0020 A3F85620 strh r2, [r3, #86] @ movhi 3804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3354 .loc 1 3804 0 3355 0024 A3F85E20 strh r2, [r3, #94] @ movhi 3807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3356 .loc 1 3807 0 3357 0028 C3F88C20 str r2, [r3, #140] 3810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3358 .loc 1 3810 0 ARM GAS /tmp/ccgDLloS.s page 144 3359 002c 0C62 str r4, [r1, #32] 3813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3360 .loc 1 3813 0 3361 002e 0AD0 beq .L459 3362 .L452: 3819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3363 .loc 1 3819 0 3364 0030 2022 movs r2, #32 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3365 .loc 1 3821 0 3366 0032 0021 movs r1, #0 3819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3367 .loc 1 3819 0 3368 0034 C3F88420 str r2, [r3, #132] 3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3369 .loc 1 3829 0 3370 0038 1846 mov r0, r3 3820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3371 .loc 1 3820 0 3372 003a C3F88820 str r2, [r3, #136] 3821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3373 .loc 1 3821 0 3374 003e D966 str r1, [r3, #108] 3829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3375 .loc 1 3829 0 3376 0040 FFF7FEFF bl HAL_UART_AbortCpltCallback 3377 .LVL214: 3831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3378 .loc 1 3831 0 3379 0044 10BD pop {r4, pc} 3380 .LVL215: 3381 .L459: 3815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3382 .loc 1 3815 0 3383 0046 8A69 ldr r2, [r1, #24] 3384 0048 42F01002 orr r2, r2, #16 3385 004c 8A61 str r2, [r1, #24] 3386 004e EFE7 b .L452 3387 .cfi_endproc 3388 .LFE386: 3390 .section .text.HAL_UART_AbortTransmitCpltCallback,"ax",%progbits 3391 .align 1 3392 .p2align 2,,3 3393 .weak HAL_UART_AbortTransmitCpltCallback 3394 .syntax unified 3395 .thumb 3396 .thumb_func 3397 .fpu fpv4-sp-d16 3399 HAL_UART_AbortTransmitCpltCallback: 3400 .LFB420: 3401 .cfi_startproc 3402 @ args = 0, pretend = 0, frame = 0 3403 @ frame_needed = 0, uses_anonymous_args = 0 3404 @ link register save eliminated. 3405 0000 7047 bx lr 3406 .cfi_endproc 3407 .LFE420: ARM GAS /tmp/ccgDLloS.s page 145 3409 0002 00BF .section .text.HAL_UART_AbortTransmit_IT,"ax",%progbits 3410 .align 1 3411 .p2align 2,,3 3412 .global HAL_UART_AbortTransmit_IT 3413 .syntax unified 3414 .thumb 3415 .thumb_func 3416 .fpu fpv4-sp-d16 3418 HAL_UART_AbortTransmit_IT: 3419 .LFB349: 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable interrupts */ 3420 .loc 1 2047 0 3421 .cfi_startproc 3422 @ args = 0, pretend = 0, frame = 0 3423 @ frame_needed = 0, uses_anonymous_args = 0 3424 .LVL216: 2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); 3425 .loc 1 2049 0 3426 0000 0368 ldr r3, [r0] 3427 0002 1A68 ldr r2, [r3] 3428 0004 22F0C002 bic r2, r2, #192 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable interrupts */ 3429 .loc 1 2047 0 3430 0008 10B5 push {r4, lr} 3431 .LCFI43: 3432 .cfi_def_cfa_offset 8 3433 .cfi_offset 4, -8 3434 .cfi_offset 14, -4 2049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); 3435 .loc 1 2049 0 3436 000a 1A60 str r2, [r3] 2050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3437 .loc 1 2050 0 3438 000c 9A68 ldr r2, [r3, #8] 3439 000e 22F40002 bic r2, r2, #8388608 3440 0012 9A60 str r2, [r3, #8] 2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3441 .loc 1 2053 0 3442 0014 9A68 ldr r2, [r3, #8] 3443 0016 12F08002 ands r2, r2, #128 2047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable interrupts */ 3444 .loc 1 2047 0 3445 001a 0446 mov r4, r0 2053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3446 .loc 1 2053 0 3447 001c 10D0 beq .L462 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3448 .loc 1 2055 0 3449 001e 9A68 ldr r2, [r3, #8] 2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3450 .loc 1 2058 0 3451 0020 816F ldr r1, [r0, #120] 2055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3452 .loc 1 2055 0 3453 0022 22F08002 bic r2, r2, #128 3454 0026 9A60 str r2, [r3, #8] 2058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 146 3455 .loc 1 2058 0 3456 0028 F1B1 cbz r1, .L463 2062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3457 .loc 1 2062 0 3458 002a 144B ldr r3, .L471 3459 002c 8B63 str r3, [r1, #56] 2065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3460 .loc 1 2065 0 3461 002e 0846 mov r0, r1 3462 .LVL217: 3463 0030 FFF7FEFF bl HAL_DMA_Abort_IT 3464 .LVL218: 3465 0034 88B1 cbz r0, .L464 2068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3466 .loc 1 2068 0 3467 0036 A06F ldr r0, [r4, #120] 3468 0038 836B ldr r3, [r0, #56] 3469 003a 9847 blx r3 3470 .LVL219: 2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3471 .loc 1 2120 0 3472 003c 0020 movs r0, #0 3473 003e 10BD pop {r4, pc} 3474 .LVL220: 3475 .L462: 2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3476 .loc 1 2101 0 3477 0040 416E ldr r1, [r0, #100] 2095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3478 .loc 1 2095 0 3479 0042 A0F85620 strh r2, [r0, #86] @ movhi 2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3480 .loc 1 2101 0 3481 0046 B1F1005F cmp r1, #536870912 2098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3482 .loc 1 2098 0 3483 004a 4267 str r2, [r0, #116] 2101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3484 .loc 1 2101 0 3485 004c 07D0 beq .L470 3486 .L465: 2107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3487 .loc 1 2107 0 3488 004e 2023 movs r3, #32 3489 0050 C4F88430 str r3, [r4, #132] 2115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3490 .loc 1 2115 0 3491 0054 2046 mov r0, r4 3492 .LVL221: 3493 0056 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 3494 .LVL222: 3495 .L464: 2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3496 .loc 1 2120 0 3497 005a 0020 movs r0, #0 3498 005c 10BD pop {r4, pc} 3499 .LVL223: ARM GAS /tmp/ccgDLloS.s page 147 3500 .L470: 2103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3501 .loc 1 2103 0 3502 005e 9A69 ldr r2, [r3, #24] 3503 0060 42F01002 orr r2, r2, #16 3504 0064 9A61 str r2, [r3, #24] 3505 0066 F2E7 b .L465 3506 .L463: 2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3507 .loc 1 2080 0 3508 0068 2023 movs r3, #32 2074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3509 .loc 1 2074 0 3510 006a A0F85610 strh r1, [r0, #86] @ movhi 2077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3511 .loc 1 2077 0 3512 006e 4167 str r1, [r0, #116] 2080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3513 .loc 1 2080 0 3514 0070 C0F88430 str r3, [r0, #132] 2088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3515 .loc 1 2088 0 3516 0074 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 3517 .LVL224: 2120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3518 .loc 1 2120 0 3519 0078 0020 movs r0, #0 3520 007a 10BD pop {r4, pc} 3521 .LVL225: 3522 .L472: 3523 .align 2 3524 .L471: 3525 007c 00000000 .word UART_DMATxOnlyAbortCallback 3526 .cfi_endproc 3527 .LFE349: 3529 .section .text.UART_DMATxOnlyAbortCallback,"ax",%progbits 3530 .align 1 3531 .p2align 2,,3 3532 .syntax unified 3533 .thumb 3534 .thumb_func 3535 .fpu fpv4-sp-d16 3537 UART_DMATxOnlyAbortCallback: 3538 .LFB388: 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3539 .loc 1 3895 0 3540 .cfi_startproc 3541 @ args = 0, pretend = 0, frame = 0 3542 @ frame_needed = 0, uses_anonymous_args = 0 3543 .LVL226: 3896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3544 .loc 1 3896 0 3545 0000 806A ldr r0, [r0, #40] 3546 .LVL227: 3895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 3547 .loc 1 3895 0 3548 0002 08B5 push {r3, lr} ARM GAS /tmp/ccgDLloS.s page 148 3549 .LCFI44: 3550 .cfi_def_cfa_offset 8 3551 .cfi_offset 3, -8 3552 .cfi_offset 14, -4 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3553 .loc 1 3901 0 3554 0004 436E ldr r3, [r0, #100] 3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3555 .loc 1 3898 0 3556 0006 0022 movs r2, #0 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3557 .loc 1 3901 0 3558 0008 B3F1005F cmp r3, #536870912 3898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3559 .loc 1 3898 0 3560 000c A0F85620 strh r2, [r0, #86] @ movhi 3901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3561 .loc 1 3901 0 3562 0010 04D1 bne .L474 3903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3563 .loc 1 3903 0 3564 0012 0268 ldr r2, [r0] 3565 0014 9369 ldr r3, [r2, #24] 3566 0016 43F01003 orr r3, r3, #16 3567 001a 9361 str r3, [r2, #24] 3568 .L474: 3907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3569 .loc 1 3907 0 3570 001c 2023 movs r3, #32 3571 001e C0F88430 str r3, [r0, #132] 3915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3572 .loc 1 3915 0 3573 0022 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 3574 .LVL228: 3917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3575 .loc 1 3917 0 3576 0026 08BD pop {r3, pc} 3577 .cfi_endproc 3578 .LFE388: 3580 .section .text.HAL_UART_AbortReceiveCpltCallback,"ax",%progbits 3581 .align 1 3582 .p2align 2,,3 3583 .weak HAL_UART_AbortReceiveCpltCallback 3584 .syntax unified 3585 .thumb 3586 .thumb_func 3587 .fpu fpv4-sp-d16 3589 HAL_UART_AbortReceiveCpltCallback: 3590 .LFB422: 3591 .cfi_startproc 3592 @ args = 0, pretend = 0, frame = 0 3593 @ frame_needed = 0, uses_anonymous_args = 0 3594 @ link register save eliminated. 3595 0000 7047 bx lr 3596 .cfi_endproc 3597 .LFE422: 3599 0002 00BF .section .text.HAL_UART_AbortReceive_IT,"ax",%progbits ARM GAS /tmp/ccgDLloS.s page 149 3600 .align 1 3601 .p2align 2,,3 3602 .global HAL_UART_AbortReceive_IT 3603 .syntax unified 3604 .thumb 3605 .thumb_func 3606 .fpu fpv4-sp-d16 3608 HAL_UART_AbortReceive_IT: 3609 .LFB350: 2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3610 .loc 1 2137 0 3611 .cfi_startproc 3612 @ args = 0, pretend = 0, frame = 0 3613 @ frame_needed = 0, uses_anonymous_args = 0 3614 .LVL229: 2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3615 .loc 1 2137 0 3616 0000 38B5 push {r3, r4, r5, lr} 3617 .LCFI45: 3618 .cfi_def_cfa_offset 16 3619 .cfi_offset 3, -16 3620 .cfi_offset 4, -12 3621 .cfi_offset 5, -8 3622 .cfi_offset 14, -4 2139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); 3623 .loc 1 2139 0 3624 0002 0368 ldr r3, [r0] 3625 0004 1A68 ldr r2, [r3] 3626 0006 22F49072 bic r2, r2, #288 3627 000a 1A60 str r2, [r3] 2140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3628 .loc 1 2140 0 3629 000c 9A68 ldr r2, [r3, #8] 3630 000e 22F08052 bic r2, r2, #268435456 3631 0012 22F00102 bic r2, r2, #1 3632 0016 9A60 str r2, [r3, #8] 2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3633 .loc 1 2143 0 3634 0018 C26E ldr r2, [r0, #108] 3635 001a 012A cmp r2, #1 2137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3636 .loc 1 2137 0 3637 001c 0446 mov r4, r0 2143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3638 .loc 1 2143 0 3639 001e 03D1 bne .L478 2145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3640 .loc 1 2145 0 3641 0020 1A68 ldr r2, [r3] 3642 0022 22F01002 bic r2, r2, #16 3643 0026 1A60 str r2, [r3] 3644 .L478: 2149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3645 .loc 1 2149 0 3646 0028 9A68 ldr r2, [r3, #8] 3647 002a 12F04002 ands r2, r2, #64 3648 002e 10D0 beq .L479 ARM GAS /tmp/ccgDLloS.s page 150 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3649 .loc 1 2151 0 3650 0030 9968 ldr r1, [r3, #8] 2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3651 .loc 1 2154 0 3652 0032 E26F ldr r2, [r4, #124] 2151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3653 .loc 1 2151 0 3654 0034 21F04001 bic r1, r1, #64 3655 0038 9960 str r1, [r3, #8] 2154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3656 .loc 1 2154 0 3657 003a C2B1 cbz r2, .L480 2158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3658 .loc 1 2158 0 3659 003c 154B ldr r3, .L486 3660 003e 9363 str r3, [r2, #56] 2161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3661 .loc 1 2161 0 3662 0040 1046 mov r0, r2 3663 .LVL230: 3664 0042 FFF7FEFF bl HAL_DMA_Abort_IT 3665 .LVL231: 3666 0046 10B1 cbz r0, .L481 2164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3667 .loc 1 2164 0 3668 0048 E06F ldr r0, [r4, #124] 3669 004a 836B ldr r3, [r0, #56] 3670 004c 9847 blx r3 3671 .LVL232: 3672 .L481: 2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3673 .loc 1 2221 0 3674 004e 0020 movs r0, #0 3675 0050 38BD pop {r3, r4, r5, pc} 3676 .LVL233: 3677 .L479: 2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3678 .loc 1 2207 0 3679 0052 2021 movs r1, #32 2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3680 .loc 1 2204 0 3681 0054 0F20 movs r0, #15 3682 .LVL234: 2198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3683 .loc 1 2198 0 3684 0056 A4F85E20 strh r2, [r4, #94] @ movhi 2201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3685 .loc 1 2201 0 3686 005a A265 str r2, [r4, #88] 2204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3687 .loc 1 2204 0 3688 005c 1862 str r0, [r3, #32] 2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3689 .loc 1 2216 0 3690 005e 2046 mov r0, r4 2207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; ARM GAS /tmp/ccgDLloS.s page 151 3691 .loc 1 2207 0 3692 0060 C4F88810 str r1, [r4, #136] 2208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3693 .loc 1 2208 0 3694 0064 E266 str r2, [r4, #108] 2216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3695 .loc 1 2216 0 3696 0066 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 3697 .LVL235: 2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3698 .loc 1 2221 0 3699 006a 0020 movs r0, #0 3700 006c 38BD pop {r3, r4, r5, pc} 3701 .LVL236: 3702 .L480: 2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3703 .loc 1 2176 0 3704 006e 0F21 movs r1, #15 2170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3705 .loc 1 2170 0 3706 0070 A4F85E20 strh r2, [r4, #94] @ movhi 2173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3707 .loc 1 2173 0 3708 0074 A265 str r2, [r4, #88] 2176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3709 .loc 1 2176 0 3710 0076 1962 str r1, [r3, #32] 2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3711 .loc 1 2179 0 3712 0078 9969 ldr r1, [r3, #24] 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3713 .loc 1 2182 0 3714 007a 2025 movs r5, #32 2179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3715 .loc 1 2179 0 3716 007c 41F00801 orr r1, r1, #8 3717 0080 9961 str r1, [r3, #24] 2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3718 .loc 1 2191 0 3719 0082 2046 mov r0, r4 3720 .LVL237: 2182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3721 .loc 1 2182 0 3722 0084 C4F88850 str r5, [r4, #136] 2183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3723 .loc 1 2183 0 3724 0088 E266 str r2, [r4, #108] 2191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3725 .loc 1 2191 0 3726 008a FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 3727 .LVL238: 2221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3728 .loc 1 2221 0 3729 008e 0020 movs r0, #0 3730 0090 38BD pop {r3, r4, r5, pc} 3731 .LVL239: 3732 .L487: ARM GAS /tmp/ccgDLloS.s page 152 3733 0092 00BF .align 2 3734 .L486: 3735 0094 00000000 .word UART_DMARxOnlyAbortCallback 3736 .cfi_endproc 3737 .LFE350: 3739 .section .text.UART_DMARxOnlyAbortCallback,"ax",%progbits 3740 .align 1 3741 .p2align 2,,3 3742 .syntax unified 3743 .thumb 3744 .thumb_func 3745 .fpu fpv4-sp-d16 3747 UART_DMARxOnlyAbortCallback: 3748 .LFB389: 3928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3749 .loc 1 3928 0 3750 .cfi_startproc 3751 @ args = 0, pretend = 0, frame = 0 3752 @ frame_needed = 0, uses_anonymous_args = 0 3753 .LVL240: 3754 0000 38B5 push {r3, r4, r5, lr} 3755 .LCFI46: 3756 .cfi_def_cfa_offset 16 3757 .cfi_offset 3, -16 3758 .cfi_offset 4, -12 3759 .cfi_offset 5, -8 3760 .cfi_offset 14, -4 3929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3761 .loc 1 3929 0 3762 0002 836A ldr r3, [r0, #40] 3763 .LVL241: 3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3764 .loc 1 3934 0 3765 0004 1A68 ldr r2, [r3] 3931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3766 .loc 1 3931 0 3767 0006 0024 movs r4, #0 3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3768 .loc 1 3934 0 3769 0008 0F21 movs r1, #15 3931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3770 .loc 1 3931 0 3771 000a A3F85E40 strh r4, [r3, #94] @ movhi 3934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3772 .loc 1 3934 0 3773 000e 1162 str r1, [r2, #32] 3937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3774 .loc 1 3937 0 3775 0010 9169 ldr r1, [r2, #24] 3940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3776 .loc 1 3940 0 3777 0012 2025 movs r5, #32 3937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3778 .loc 1 3937 0 3779 0014 41F00801 orr r1, r1, #8 3780 0018 9161 str r1, [r2, #24] 3949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ ARM GAS /tmp/ccgDLloS.s page 153 3781 .loc 1 3949 0 3782 001a 1846 mov r0, r3 3783 .LVL242: 3940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3784 .loc 1 3940 0 3785 001c C3F88850 str r5, [r3, #136] 3941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3786 .loc 1 3941 0 3787 0020 DC66 str r4, [r3, #108] 3949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3788 .loc 1 3949 0 3789 0022 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 3790 .LVL243: 3951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3791 .loc 1 3951 0 3792 0026 38BD pop {r3, r4, r5, pc} 3793 .cfi_endproc 3794 .LFE389: 3796 .section .text.HAL_UARTEx_RxEventCallback,"ax",%progbits 3797 .align 1 3798 .p2align 2,,3 3799 .weak HAL_UARTEx_RxEventCallback 3800 .syntax unified 3801 .thumb 3802 .thumb_func 3803 .fpu fpv4-sp-d16 3805 HAL_UARTEx_RxEventCallback: 3806 .LFB360: 2670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 3807 .loc 1 2670 0 3808 .cfi_startproc 3809 @ args = 0, pretend = 0, frame = 0 3810 @ frame_needed = 0, uses_anonymous_args = 0 3811 @ link register save eliminated. 3812 .LVL244: 2678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3813 .loc 1 2678 0 3814 0000 7047 bx lr 3815 .cfi_endproc 3816 .LFE360: 3818 0002 00BF .section .text.HAL_UART_IRQHandler,"ax",%progbits 3819 .align 1 3820 .p2align 2,,3 3821 .global HAL_UART_IRQHandler 3822 .syntax unified 3823 .thumb 3824 .thumb_func 3825 .fpu fpv4-sp-d16 3827 HAL_UART_IRQHandler: 3828 .LFB351: 2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); 3829 .loc 1 2229 0 3830 .cfi_startproc 3831 @ args = 0, pretend = 0, frame = 0 3832 @ frame_needed = 0, uses_anonymous_args = 0 3833 .LVL245: 2230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); ARM GAS /tmp/ccgDLloS.s page 154 3834 .loc 1 2230 0 3835 0000 0368 ldr r3, [r0] 3836 0002 DA69 ldr r2, [r3, #28] 3837 .LVL246: 2231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 3838 .loc 1 2231 0 3839 0004 1968 ldr r1, [r3] 3840 .LVL247: 2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); 3841 .loc 1 2229 0 3842 0006 2DE9F041 push {r4, r5, r6, r7, r8, lr} 3843 .LCFI47: 3844 .cfi_def_cfa_offset 24 3845 .cfi_offset 4, -24 3846 .cfi_offset 5, -20 3847 .cfi_offset 6, -16 3848 .cfi_offset 7, -12 3849 .cfi_offset 8, -8 3850 .cfi_offset 14, -4 2238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (errorflags == 0U) 3851 .loc 1 2238 0 3852 000a 40F60F05 movw r5, #2063 2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3853 .loc 1 2239 0 3854 000e 2A42 tst r2, r5 2229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); 3855 .loc 1 2229 0 3856 0010 0446 mov r4, r0 2232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3857 .loc 1 2232 0 3858 0012 9868 ldr r0, [r3, #8] 3859 .LVL248: 2239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3860 .loc 1 2239 0 3861 0014 7BD0 beq .L625 2256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))) 3862 .loc 1 2256 0 3863 0016 AB4D ldr r5, .L635 3864 0018 0540 ands r5, r0, r5 3865 001a 00F09780 beq .L626 2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3866 .loc 1 2260 0 3867 001e D707 lsls r7, r2, #31 3868 0020 09D5 bpl .L498 3869 .L631: 2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3870 .loc 1 2260 0 is_stmt 0 discriminator 1 3871 0022 CE05 lsls r6, r1, #23 3872 0024 07D5 bpl .L498 2262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3873 .loc 1 2262 0 is_stmt 1 3874 0026 0126 movs r6, #1 3875 0028 1E62 str r6, [r3, #32] 2264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3876 .loc 1 2264 0 3877 002a D4F88C60 ldr r6, [r4, #140] 3878 002e 46F00106 orr r6, r6, #1 ARM GAS /tmp/ccgDLloS.s page 155 3879 0032 C4F88C60 str r6, [r4, #140] 3880 .L498: 2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3881 .loc 1 2268 0 3882 0036 9707 lsls r7, r2, #30 3883 0038 02F00406 and r6, r2, #4 3884 003c 40F1D380 bpl .L499 2268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3885 .loc 1 2268 0 is_stmt 0 discriminator 1 3886 0040 C707 lsls r7, r0, #31 3887 0042 0AD5 bpl .L501 2270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3888 .loc 1 2270 0 is_stmt 1 3889 0044 0227 movs r7, #2 3890 0046 1F62 str r7, [r3, #32] 2272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3891 .loc 1 2272 0 3892 0048 D4F88C70 ldr r7, [r4, #140] 3893 004c 47F00407 orr r7, r7, #4 3894 0050 C4F88C70 str r7, [r4, #140] 2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3895 .loc 1 2276 0 3896 0054 002E cmp r6, #0 3897 0056 40F0CC80 bne .L502 3898 .L501: 2284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) || 3899 .loc 1 2284 0 3900 005a 1707 lsls r7, r2, #28 3901 005c 05D5 bpl .L503 2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U))) 3902 .loc 1 2285 0 3903 005e 8E06 lsls r6, r1, #26 3904 0060 00F1DF80 bmi .L504 2285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U))) 3905 .loc 1 2285 0 is_stmt 0 discriminator 1 3906 0064 002D cmp r5, #0 3907 0066 40F0DC80 bne .L504 3908 .L503: 2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3909 .loc 1 2294 0 is_stmt 1 3910 006a 1505 lsls r5, r2, #20 3911 006c 0AD5 bpl .L505 2294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3912 .loc 1 2294 0 is_stmt 0 discriminator 1 3913 006e 4F01 lsls r7, r1, #5 3914 0070 08D5 bpl .L505 2296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3915 .loc 1 2296 0 is_stmt 1 3916 0072 4FF40065 mov r5, #2048 3917 0076 1D62 str r5, [r3, #32] 2298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3918 .loc 1 2298 0 3919 0078 D4F88C50 ldr r5, [r4, #140] 3920 007c 45F02005 orr r5, r5, #32 3921 0080 C4F88C50 str r5, [r4, #140] 3922 .L505: 2302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 156 3923 .loc 1 2302 0 3924 0084 D4F88C50 ldr r5, [r4, #140] 3925 0088 002D cmp r5, #0 3926 008a 70D0 beq .L491 2305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) 3927 .loc 1 2305 0 3928 008c 9606 lsls r6, r2, #26 3929 008e 07D5 bpl .L507 2306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_RXFTIE) != 0U))) 3930 .loc 1 2306 0 3931 0090 8D06 lsls r5, r1, #26 3932 0092 40F1D380 bpl .L627 3933 .LVL249: 3934 .L508: 2309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3935 .loc 1 2309 0 3936 0096 226F ldr r2, [r4, #112] 3937 .LVL250: 3938 0098 12B1 cbz r2, .L507 2311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3939 .loc 1 2311 0 3940 009a 2046 mov r0, r4 3941 009c 9047 blx r2 3942 .LVL251: 3943 009e 2368 ldr r3, [r4] 3944 .L507: 2320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || 3945 .loc 1 2320 0 3946 00a0 D4F88C50 ldr r5, [r4, #140] 3947 .LVL252: 2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) 3948 .loc 1 2321 0 3949 00a4 9968 ldr r1, [r3, #8] 3950 00a6 4906 lsls r1, r1, #25 3951 00a8 03D4 bmi .L509 2321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) 3952 .loc 1 2321 0 is_stmt 0 discriminator 1 3953 00aa 15F02805 ands r5, r5, #40 3954 .LVL253: 3955 00ae 00F0D680 beq .L510 3956 .L509: 3957 .LVL254: 3958 .LBB104: 3959 .LBB105: 3558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); 3960 .loc 1 3558 0 is_stmt 1 3961 00b2 1A68 ldr r2, [r3] 3962 00b4 22F49072 bic r2, r2, #288 3963 00b8 1A60 str r2, [r3] 3559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3964 .loc 1 3559 0 3965 00ba 9A68 ldr r2, [r3, #8] 3966 00bc 22F08052 bic r2, r2, #268435456 3967 00c0 22F00102 bic r2, r2, #1 3968 00c4 9A60 str r2, [r3, #8] 3562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3969 .loc 1 3562 0 ARM GAS /tmp/ccgDLloS.s page 157 3970 00c6 E26E ldr r2, [r4, #108] 3971 00c8 012A cmp r2, #1 3972 00ca 03D1 bne .L511 3564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3973 .loc 1 3564 0 3974 00cc 1A68 ldr r2, [r3] 3975 00ce 22F01002 bic r2, r2, #16 3976 00d2 1A60 str r2, [r3] 3977 .L511: 3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3978 .loc 1 3569 0 3979 00d4 0022 movs r2, #0 3568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3980 .loc 1 3568 0 3981 00d6 2021 movs r1, #32 3982 00d8 C4F88810 str r1, [r4, #136] 3569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3983 .loc 1 3569 0 3984 00dc E266 str r2, [r4, #108] 3985 .LBE105: 3986 .LBE104: 2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3987 .loc 1 2330 0 3988 00de 9968 ldr r1, [r3, #8] 3989 .LBB107: 3990 .LBB106: 3572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 3991 .loc 1 3572 0 3992 00e0 2267 str r2, [r4, #112] 3993 .LVL255: 3994 .LBE106: 3995 .LBE107: 2330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 3996 .loc 1 2330 0 3997 00e2 4A06 lsls r2, r1, #25 3998 00e4 40F1A680 bpl .L512 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 3999 .loc 1 2332 0 4000 00e8 9A68 ldr r2, [r3, #8] 2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4001 .loc 1 2335 0 4002 00ea E06F ldr r0, [r4, #124] 2332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4003 .loc 1 2332 0 4004 00ec 22F04002 bic r2, r2, #64 4005 00f0 9A60 str r2, [r3, #8] 2335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4006 .loc 1 2335 0 4007 00f2 0028 cmp r0, #0 4008 00f4 00F09E80 beq .L512 2339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4009 .loc 1 2339 0 4010 00f8 734B ldr r3, .L635+4 4011 00fa 8363 str r3, [r0, #56] 2342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4012 .loc 1 2342 0 4013 00fc FFF7FEFF bl HAL_DMA_Abort_IT ARM GAS /tmp/ccgDLloS.s page 158 4014 .LVL256: 4015 0100 0028 cmp r0, #0 4016 0102 34D0 beq .L491 2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4017 .loc 1 2345 0 4018 0104 E06F ldr r0, [r4, #124] 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4019 .loc 1 2540 0 4020 0106 BDE8F041 pop {r4, r5, r6, r7, r8, lr} 4021 .LCFI48: 4022 .cfi_remember_state 4023 .cfi_restore 14 4024 .cfi_restore 8 4025 .cfi_restore 7 4026 .cfi_restore 6 4027 .cfi_restore 5 4028 .cfi_restore 4 4029 .cfi_def_cfa_offset 0 4030 .LVL257: 2345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4031 .loc 1 2345 0 4032 010a 836B ldr r3, [r0, #56] 4033 010c 1847 bx r3 @ indirect register sibling call 4034 .LVL258: 4035 .L625: 4036 .LCFI49: 4037 .cfi_restore_state 2242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) 4038 .loc 1 2242 0 4039 010e 9706 lsls r7, r2, #26 4040 0110 09D5 bpl .L493 2243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_RXFTIE) != 0U))) 4041 .loc 1 2243 0 4042 0112 8E06 lsls r6, r1, #26 4043 0114 05D5 bpl .L628 4044 .L494: 2246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4045 .loc 1 2246 0 4046 0116 236F ldr r3, [r4, #112] 4047 0118 4BB3 cbz r3, .L491 2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4048 .loc 1 2503 0 4049 011a 2046 mov r0, r4 4050 .LVL259: 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4051 .loc 1 2540 0 4052 011c BDE8F041 pop {r4, r5, r6, r7, r8, lr} 4053 .LCFI50: 4054 .cfi_remember_state 4055 .cfi_restore 14 4056 .cfi_restore 8 4057 .cfi_restore 7 4058 .cfi_restore 6 4059 .cfi_restore 5 4060 .cfi_restore 4 4061 .cfi_def_cfa_offset 0 4062 .LVL260: ARM GAS /tmp/ccgDLloS.s page 159 2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4063 .loc 1 2503 0 4064 0120 1847 bx r3 @ indirect register sibling call 4065 .LVL261: 4066 .L628: 4067 .LCFI51: 4068 .cfi_restore_state 2244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4069 .loc 1 2244 0 4070 0122 C500 lsls r5, r0, #3 4071 0124 F7D4 bmi .L494 4072 .L493: 2393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((isrflags & USART_ISR_IDLE) != 0U) 4073 .loc 1 2393 0 4074 0126 E56E ldr r5, [r4, #108] 4075 0128 012D cmp r5, #1 4076 012a 22D0 beq .L629 4077 .L513: 2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4078 .loc 1 2479 0 4079 012c D502 lsls r5, r2, #11 4080 012e 01D5 bpl .L516 2479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4081 .loc 1 2479 0 is_stmt 0 discriminator 1 4082 0130 4702 lsls r7, r0, #9 4083 0132 6ED4 bmi .L630 4084 .L516: 2497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (((cr1its & USART_CR1_TXEIE_TXFNFIE) != 0U) 4085 .loc 1 2497 0 is_stmt 1 4086 0134 1606 lsls r6, r2, #24 4087 0136 10D5 bpl .L517 2498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** || ((cr3its & USART_CR3_TXFTIE) != 0U))) 4088 .loc 1 2498 0 4089 0138 0D06 lsls r5, r1, #24 4090 013a 01D4 bmi .L518 2499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4091 .loc 1 2499 0 4092 013c 0002 lsls r0, r0, #8 4093 .LVL262: 4094 013e 0CD5 bpl .L517 4095 .L518: 2501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4096 .loc 1 2501 0 4097 0140 636F ldr r3, [r4, #116] 4098 0142 A3B1 cbz r3, .L491 2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4099 .loc 1 2503 0 4100 0144 2046 mov r0, r4 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4101 .loc 1 2540 0 4102 0146 BDE8F041 pop {r4, r5, r6, r7, r8, lr} 4103 .LCFI52: 4104 .cfi_remember_state 4105 .cfi_restore 14 4106 .cfi_restore 8 4107 .cfi_restore 7 4108 .cfi_restore 6 ARM GAS /tmp/ccgDLloS.s page 160 4109 .cfi_restore 5 4110 .cfi_restore 4 4111 .cfi_def_cfa_offset 0 4112 .LVL263: 2503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4113 .loc 1 2503 0 4114 014a 1847 bx r3 @ indirect register sibling call 4115 .LVL264: 4116 .L626: 4117 .LCFI53: 4118 .cfi_restore_state 2257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4119 .loc 1 2257 0 4120 014c 5F4E ldr r6, .L635+8 4121 014e 3142 tst r1, r6 4122 0150 E9D0 beq .L493 2260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4123 .loc 1 2260 0 4124 0152 D707 lsls r7, r2, #31 4125 0154 7FF56FAF bpl .L498 4126 0158 63E7 b .L631 4127 .LVL265: 4128 .L517: 2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4129 .loc 1 2509 0 4130 015a 5706 lsls r7, r2, #25 4131 015c 01D5 bpl .L519 2509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4132 .loc 1 2509 0 is_stmt 0 discriminator 1 4133 015e 4E06 lsls r6, r1, #25 4134 0160 70D4 bmi .L632 4135 .L519: 2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4136 .loc 1 2516 0 is_stmt 1 4137 0162 1502 lsls r5, r2, #8 4138 0164 4ED4 bmi .L633 4139 .L520: 2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4140 .loc 1 2529 0 4141 0166 D301 lsls r3, r2, #7 4142 0168 01D5 bpl .L491 2529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4143 .loc 1 2529 0 is_stmt 0 discriminator 1 4144 016a 0029 cmp r1, #0 4145 016c 7DDB blt .L634 4146 .LVL266: 4147 .L491: 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4148 .loc 1 2540 0 is_stmt 1 4149 016e BDE8F081 pop {r4, r5, r6, r7, r8, pc} 4150 .LVL267: 4151 .L629: 2394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && ((cr1its & USART_ISR_IDLE) != 0U)) 4152 .loc 1 2394 0 4153 0172 D706 lsls r7, r2, #27 4154 0174 DAD5 bpl .L513 2395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 161 4155 .loc 1 2395 0 4156 0176 CE06 lsls r6, r1, #27 4157 0178 D8D5 bpl .L513 2397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4158 .loc 1 2397 0 4159 017a 1022 movs r2, #16 4160 .LVL268: 4161 017c 1A62 str r2, [r3, #32] 2400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4162 .loc 1 2400 0 4163 017e 9A68 ldr r2, [r3, #8] 4164 0180 12F04002 ands r2, r2, #64 4165 0184 76D0 beq .L514 4166 .LBB108: 2406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) 4167 .loc 1 2406 0 4168 0186 E06F ldr r0, [r4, #124] 4169 .LVL269: 4170 0188 0168 ldr r1, [r0] 4171 .LVL270: 4172 018a 4A68 ldr r2, [r1, #4] 4173 018c 92B2 uxth r2, r2 4174 .LVL271: 2407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) 4175 .loc 1 2407 0 4176 018e 002A cmp r2, #0 4177 0190 EDD0 beq .L491 2408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4178 .loc 1 2408 0 4179 0192 B4F85C50 ldrh r5, [r4, #92] 4180 0196 9542 cmp r5, r2 4181 0198 E9D9 bls .L491 2411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4182 .loc 1 2411 0 4183 019a A4F85E20 strh r2, [r4, #94] @ movhi 2414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4184 .loc 1 2414 0 4185 019e 0A68 ldr r2, [r1] 4186 .LVL272: 4187 01a0 12F02002 ands r2, r2, #32 4188 01a4 17D1 bne .L515 2417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4189 .loc 1 2417 0 4190 01a6 1968 ldr r1, [r3] 4191 01a8 21F48071 bic r1, r1, #256 4192 01ac 1960 str r1, [r3] 4193 .LVL273: 2418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4194 .loc 1 2418 0 4195 01ae 9968 ldr r1, [r3, #8] 4196 01b0 21F00101 bic r1, r1, #1 4197 01b4 9960 str r1, [r3, #8] 2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4198 .loc 1 2422 0 4199 01b6 9968 ldr r1, [r3, #8] 2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4200 .loc 1 2425 0 ARM GAS /tmp/ccgDLloS.s page 162 4201 01b8 2025 movs r5, #32 2422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4202 .loc 1 2422 0 4203 01ba 21F04001 bic r1, r1, #64 4204 01be 9960 str r1, [r3, #8] 2425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4205 .loc 1 2425 0 4206 01c0 C4F88850 str r5, [r4, #136] 2426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4207 .loc 1 2426 0 4208 01c4 E266 str r2, [r4, #108] 2428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4209 .loc 1 2428 0 4210 01c6 1A68 ldr r2, [r3] 4211 01c8 22F01002 bic r2, r2, #16 4212 01cc 1A60 str r2, [r3] 2431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4213 .loc 1 2431 0 4214 01ce FFF7FEFF bl HAL_DMA_Abort 4215 .LVL274: 4216 01d2 B4F85C50 ldrh r5, [r4, #92] 4217 .L515: 2438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4218 .loc 1 2438 0 4219 01d6 B4F85E10 ldrh r1, [r4, #94] 4220 01da 691A subs r1, r5, r1 4221 01dc 89B2 uxth r1, r1 4222 01de 2046 mov r0, r4 4223 01e0 FFF7FEFF bl HAL_UARTEx_RxEventCallback 4224 .LVL275: 4225 01e4 C3E7 b .L491 4226 .LVL276: 4227 .L499: 4228 .LBE108: 2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4229 .loc 1 2276 0 4230 01e6 002E cmp r6, #0 4231 01e8 3FF437AF beq .L501 2276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4232 .loc 1 2276 0 is_stmt 0 discriminator 1 4233 01ec C607 lsls r6, r0, #31 4234 01ee 7FF534AF bpl .L501 4235 .L502: 2278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4236 .loc 1 2278 0 is_stmt 1 4237 01f2 0426 movs r6, #4 4238 01f4 1E62 str r6, [r3, #32] 2280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4239 .loc 1 2280 0 4240 01f6 D4F88C60 ldr r6, [r4, #140] 4241 01fa 46F00206 orr r6, r6, #2 4242 01fe C4F88C60 str r6, [r4, #140] 4243 0202 2AE7 b .L501 4244 .LVL277: 4245 .L633: 2516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4246 .loc 1 2516 0 discriminator 1 ARM GAS /tmp/ccgDLloS.s page 163 4247 0204 4800 lsls r0, r1, #1 4248 0206 AED5 bpl .L520 2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4249 .loc 1 2523 0 4250 0208 2046 mov r0, r4 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4251 .loc 1 2540 0 4252 020a BDE8F041 pop {r4, r5, r6, r7, r8, lr} 4253 .LCFI54: 4254 .cfi_remember_state 4255 .cfi_restore 14 4256 .cfi_restore 8 4257 .cfi_restore 7 4258 .cfi_restore 6 4259 .cfi_restore 5 4260 .cfi_restore 4 4261 .cfi_def_cfa_offset 0 4262 .LVL278: 2523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4263 .loc 1 2523 0 4264 020e FFF7FEBF b HAL_UARTEx_TxFifoEmptyCallback 4265 .LVL279: 4266 .L630: 4267 .LCFI55: 4268 .cfi_restore_state 2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4269 .loc 1 2481 0 4270 0212 4FF48012 mov r2, #1048576 4271 .LVL280: 2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4272 .loc 1 2491 0 4273 0216 2046 mov r0, r4 4274 .LVL281: 2481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4275 .loc 1 2481 0 4276 0218 1A62 str r2, [r3, #32] 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4277 .loc 1 2540 0 4278 021a BDE8F041 pop {r4, r5, r6, r7, r8, lr} 4279 .LCFI56: 4280 .cfi_remember_state 4281 .cfi_restore 14 4282 .cfi_restore 8 4283 .cfi_restore 7 4284 .cfi_restore 6 4285 .cfi_restore 5 4286 .cfi_restore 4 4287 .cfi_def_cfa_offset 0 4288 .LVL282: 2491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4289 .loc 1 2491 0 4290 021e FFF7FEBF b HAL_UARTEx_WakeupCallback 4291 .LVL283: 4292 .L504: 4293 .LCFI57: 4294 .cfi_restore_state 2288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 164 4295 .loc 1 2288 0 4296 0222 0825 movs r5, #8 4297 0224 1D62 str r5, [r3, #32] 2290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4298 .loc 1 2290 0 4299 0226 D4F88C50 ldr r5, [r4, #140] 4300 022a 45F00805 orr r5, r5, #8 4301 022e C4F88C50 str r5, [r4, #140] 4302 0232 1AE7 b .L503 4303 .LVL284: 4304 .L512: 2356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4305 .loc 1 2356 0 4306 0234 2046 mov r0, r4 4307 0236 FFF7FEFF bl HAL_UART_ErrorCallback 4308 .LVL285: 4309 023a 98E7 b .L491 4310 .LVL286: 4311 .L627: 2307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4312 .loc 1 2307 0 4313 023c C000 lsls r0, r0, #3 4314 .LVL287: 4315 023e 7FF52FAF bpl .L507 4316 0242 28E7 b .L508 4317 .L632: 4318 .LVL288: 4319 .LBB109: 4320 .LBB110: 4095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 4097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief Wrap up transmission in non-blocking mode. 4098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart pointer to a UART_HandleTypeDef structure that contains 4099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * the configuration information for the specified UART module. 4100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 4101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 4102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) 4103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 4105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); 4321 .loc 1 4105 0 4322 0244 1A68 ldr r2, [r3] 4323 .LVL289: 4106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Tx process is ended, restore huart->gState to Ready */ 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 4324 .loc 1 4108 0 4325 0246 2025 movs r5, #32 4105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4326 .loc 1 4105 0 4327 0248 22F04002 bic r2, r2, #64 4109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Cleat TxISR function pointer */ 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 4328 .loc 1 4111 0 4329 024c 0021 movs r1, #0 4330 .LVL290: ARM GAS /tmp/ccgDLloS.s page 165 4105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4331 .loc 1 4105 0 4332 024e 1A60 str r2, [r3] 4112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 4115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxCpltCallback(huart); 4116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 4118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); 4333 .loc 1 4118 0 4334 0250 2046 mov r0, r4 4108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4335 .loc 1 4108 0 4336 0252 C4F88450 str r5, [r4, #132] 4111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4337 .loc 1 4111 0 4338 0256 6167 str r1, [r4, #116] 4339 .loc 1 4118 0 4340 0258 FFF7FEFF bl HAL_UART_TxCpltCallback 4341 .LVL291: 4342 025c 87E7 b .L491 4343 .LVL292: 4344 .L510: 4345 .LBE110: 4346 .LBE109: 2382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4347 .loc 1 2382 0 4348 025e 2046 mov r0, r4 4349 0260 FFF7FEFF bl HAL_UART_ErrorCallback 4350 .LVL293: 2384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4351 .loc 1 2384 0 4352 0264 C4F88C50 str r5, [r4, #140] 4353 0268 81E7 b .L491 4354 .LVL294: 4355 .L634: 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4356 .loc 1 2536 0 4357 026a 2046 mov r0, r4 2540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4358 .loc 1 2540 0 4359 026c BDE8F041 pop {r4, r5, r6, r7, r8, lr} 4360 .LCFI58: 4361 .cfi_remember_state 4362 .cfi_restore 14 4363 .cfi_restore 8 4364 .cfi_restore 7 4365 .cfi_restore 6 4366 .cfi_restore 5 4367 .cfi_restore 4 4368 .cfi_def_cfa_offset 0 4369 .LVL295: 2536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4370 .loc 1 2536 0 4371 0270 FFF7FEBF b HAL_UARTEx_RxFifoFullCallback 4372 .LVL296: ARM GAS /tmp/ccgDLloS.s page 166 4373 .L514: 4374 .LCFI59: 4375 .cfi_restore_state 4376 .LBB111: 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 4377 .loc 1 2448 0 4378 0274 B4F85E00 ldrh r0, [r4, #94] 4379 .LVL297: 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_rx_data > 0U)) 4380 .loc 1 2449 0 4381 0278 B4F85E10 ldrh r1, [r4, #94] 4382 .LVL298: 4383 027c 89B2 uxth r1, r1 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 4384 .loc 1 2448 0 4385 027e 80B2 uxth r0, r0 4386 .LVL299: 2449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** && (nb_rx_data > 0U)) 4387 .loc 1 2449 0 4388 0280 0029 cmp r1, #0 4389 0282 3FF474AF beq .L491 2448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 4390 .loc 1 2448 0 4391 0286 B4F85C10 ldrh r1, [r4, #92] 4392 028a 081A subs r0, r1, r0 4393 .LVL300: 4394 028c 81B2 uxth r1, r0 2450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4395 .loc 1 2450 0 4396 028e 0029 cmp r1, #0 4397 0290 3FF46DAF beq .L491 2453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4398 .loc 1 2453 0 4399 0294 1868 ldr r0, [r3] 4400 0296 20F49070 bic r0, r0, #288 4401 029a 1860 str r0, [r3] 2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4402 .loc 1 2456 0 4403 029c 9868 ldr r0, [r3, #8] 4404 029e 20F08050 bic r0, r0, #268435456 4405 02a2 20F00100 bic r0, r0, #1 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4406 .loc 1 2459 0 4407 02a6 2025 movs r5, #32 2456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4408 .loc 1 2456 0 4409 02a8 9860 str r0, [r3, #8] 2459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4410 .loc 1 2459 0 4411 02aa C4F88850 str r5, [r4, #136] 2460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4412 .loc 1 2460 0 4413 02ae E266 str r2, [r4, #108] 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4414 .loc 1 2465 0 4415 02b0 1868 ldr r0, [r3] 2463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 167 4416 .loc 1 2463 0 4417 02b2 2267 str r2, [r4, #112] 2465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4418 .loc 1 2465 0 4419 02b4 20F01002 bic r2, r0, #16 4420 02b8 1A60 str r2, [r3] 2471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4421 .loc 1 2471 0 4422 02ba 2046 mov r0, r4 4423 02bc FFF7FEFF bl HAL_UARTEx_RxEventCallback 4424 .LVL301: 4425 02c0 55E7 b .L491 4426 .L636: 4427 02c2 00BF .align 2 4428 .L635: 4429 02c4 01000010 .word 268435457 4430 02c8 00000000 .word UART_DMAAbortOnError 4431 02cc 20010004 .word 67109152 4432 .LBE111: 4433 .cfi_endproc 4434 .LFE351: 4436 .section .text.UART_RxISR_8BIT,"ax",%progbits 4437 .align 1 4438 .p2align 2,,3 4439 .syntax unified 4440 .thumb 4441 .thumb_func 4442 .fpu fpv4-sp-d16 4444 UART_RxISR_8BIT: 4445 .LFB395: 4119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 4123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief RX interrupt handler for 7 or 8 bits data word length . 4124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 4125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 4126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 4127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) 4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4446 .loc 1 4128 0 4447 .cfi_startproc 4448 @ args = 0, pretend = 0, frame = 0 4449 @ frame_needed = 0, uses_anonymous_args = 0 4450 .LVL302: 4129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask = huart->Mask; 4130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhdata; 4131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ 4133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 4451 .loc 1 4133 0 4452 0000 D0F88810 ldr r1, [r0, #136] 4453 0004 0268 ldr r2, [r0] 4454 0006 2229 cmp r1, #34 4128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask = huart->Mask; 4455 .loc 1 4128 0 4456 0008 38B5 push {r3, r4, r5, lr} ARM GAS /tmp/ccgDLloS.s page 168 4457 .LCFI60: 4458 .cfi_def_cfa_offset 16 4459 .cfi_offset 3, -16 4460 .cfi_offset 4, -12 4461 .cfi_offset 5, -8 4462 .cfi_offset 14, -4 4463 .loc 1 4133 0 4464 000a 04D0 beq .L643 4134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhdata = (uint16_t) READ_REG(huart->Instance->RDR); 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); 4137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; 4138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxXferCount == 0U) 4141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXNE interrupts */ 4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); 4144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 4146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ 4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 4153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : 4155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ 4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 4157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable IDLE interrupt */ 4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 4160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 4163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 4164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); 4167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Standard reception API called */ 4172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 4174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); 4175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 4177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 4178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 169 4183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RXNE interrupt flag */ 4186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 4465 .loc 1 4186 0 4466 000c 9369 ldr r3, [r2, #24] 4467 000e 43F00803 orr r3, r3, #8 4468 0012 9361 str r3, [r2, #24] 4469 .LVL303: 4470 .L637: 4187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4471 .loc 1 4188 0 4472 0014 38BD pop {r3, r4, r5, pc} 4473 .LVL304: 4474 .L643: 4135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); 4475 .loc 1 4135 0 4476 0016 526A ldr r2, [r2, #36] 4477 .LVL305: 4136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; 4478 .loc 1 4136 0 4479 0018 90F86040 ldrb r4, [r0, #96] @ zero_extendqisi2 4480 001c 816D ldr r1, [r0, #88] 4481 001e 2240 ands r2, r2, r4 4482 .LVL306: 4483 0020 0A70 strb r2, [r1] 4484 .LVL307: 4138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4485 .loc 1 4138 0 4486 0022 B0F85E20 ldrh r2, [r0, #94] 4137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4487 .loc 1 4137 0 4488 0026 816D ldr r1, [r0, #88] 4138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4489 .loc 1 4138 0 4490 0028 013A subs r2, r2, #1 4491 002a 92B2 uxth r2, r2 4492 002c A0F85E20 strh r2, [r0, #94] @ movhi 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4493 .loc 1 4140 0 4494 0030 B0F85E20 ldrh r2, [r0, #94] 4137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4495 .loc 1 4137 0 4496 0034 0131 adds r1, r1, #1 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4497 .loc 1 4140 0 4498 0036 92B2 uxth r2, r2 4137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4499 .loc 1 4137 0 4500 0038 8165 str r1, [r0, #88] 4140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4501 .loc 1 4140 0 4502 003a 002A cmp r2, #0 4503 003c EAD1 bne .L637 4504 .LBB114: 4505 .LBB115: ARM GAS /tmp/ccgDLloS.s page 170 4143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4506 .loc 1 4143 0 4507 003e 0368 ldr r3, [r0] 4508 0040 1968 ldr r1, [r3] 4509 0042 21F49071 bic r1, r1, #288 4510 0046 1960 str r1, [r3] 4146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4511 .loc 1 4146 0 4512 0048 9968 ldr r1, [r3, #8] 4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4513 .loc 1 4149 0 4514 004a 2025 movs r5, #32 4146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4515 .loc 1 4146 0 4516 004c 21F00101 bic r1, r1, #1 4517 0050 9960 str r1, [r3, #8] 4149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4518 .loc 1 4149 0 4519 0052 C0F88850 str r5, [r0, #136] 4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4520 .loc 1 4156 0 4521 0056 C16E ldr r1, [r0, #108] 4152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4522 .loc 1 4152 0 4523 0058 0267 str r2, [r0, #112] 4156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4524 .loc 1 4156 0 4525 005a 0129 cmp r1, #1 4526 005c 0446 mov r4, r0 4527 .LVL308: 4528 005e 04D0 beq .L644 4529 .LVL309: 4177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4530 .loc 1 4177 0 4531 0060 FFF7FEFF bl HAL_UART_RxCpltCallback 4532 .LVL310: 4533 .L641: 4180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4534 .loc 1 4180 0 4535 0064 0023 movs r3, #0 4536 0066 E366 str r3, [r4, #108] 4537 .LBE115: 4538 .LBE114: 4539 .loc 1 4188 0 4540 0068 38BD pop {r3, r4, r5, pc} 4541 .LVL311: 4542 .L644: 4543 .LBB117: 4544 .LBB116: 4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4545 .loc 1 4159 0 4546 006a 1A68 ldr r2, [r3] 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4547 .loc 1 4166 0 4548 006c B0F85C10 ldrh r1, [r0, #92] 4159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4549 .loc 1 4159 0 ARM GAS /tmp/ccgDLloS.s page 171 4550 0070 22F01002 bic r2, r2, #16 4551 0074 1A60 str r2, [r3] 4166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4552 .loc 1 4166 0 4553 0076 FFF7FEFF bl HAL_UARTEx_RxEventCallback 4554 .LVL312: 4555 007a F3E7 b .L641 4556 .LBE116: 4557 .LBE117: 4558 .cfi_endproc 4559 .LFE395: 4561 .section .text.UART_RxISR_16BIT,"ax",%progbits 4562 .align 1 4563 .p2align 2,,3 4564 .syntax unified 4565 .thumb 4566 .thumb_func 4567 .fpu fpv4-sp-d16 4569 UART_RxISR_16BIT: 4570 .LFB396: 4189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 4191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief RX interrupt handler for 9 bits data word length . 4192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once 4193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Receive_IT() 4194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 4195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 4196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 4197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) 4198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4571 .loc 1 4198 0 4572 .cfi_startproc 4573 @ args = 0, pretend = 0, frame = 0 4574 @ frame_needed = 0, uses_anonymous_args = 0 4575 .LVL313: 4199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *tmp; 4200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask = huart->Mask; 4201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhdata; 4202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ 4204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 4576 .loc 1 4204 0 4577 0000 D0F88810 ldr r1, [r0, #136] 4578 0004 0268 ldr r2, [r0] 4579 0006 2229 cmp r1, #34 4198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *tmp; 4580 .loc 1 4198 0 4581 0008 38B5 push {r3, r4, r5, lr} 4582 .LCFI61: 4583 .cfi_def_cfa_offset 16 4584 .cfi_offset 3, -16 4585 .cfi_offset 4, -12 4586 .cfi_offset 5, -8 4587 .cfi_offset 14, -4 4588 .loc 1 4204 0 4589 000a 04D0 beq .L651 4205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 172 4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhdata = (uint16_t) READ_REG(huart->Instance->RDR); 4207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *tmp = (uint16_t)(uhdata & uhMask); 4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 4210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxXferCount == 0U) 4213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXNE interrupt*/ 4215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); 4216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 4218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ 4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 4225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : 4227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ 4228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 4229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable IDLE interrupt */ 4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 4232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 4235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 4236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 4238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); 4239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Standard reception API called */ 4244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 4246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); 4247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 4250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RXNE interrupt flag */ 4258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 4590 .loc 1 4258 0 4591 000c 9369 ldr r3, [r2, #24] 4592 000e 43F00803 orr r3, r3, #8 4593 0012 9361 str r3, [r2, #24] ARM GAS /tmp/ccgDLloS.s page 173 4594 .LVL314: 4595 .L645: 4259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4596 .loc 1 4260 0 4597 0014 38BD pop {r3, r4, r5, pc} 4598 .LVL315: 4599 .L651: 4206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; 4600 .loc 1 4206 0 4601 0016 516A ldr r1, [r2, #36] 4602 .LVL316: 4208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 4603 .loc 1 4208 0 4604 0018 B0F86050 ldrh r5, [r0, #96] 4605 001c 846D ldr r4, [r0, #88] 4606 001e 2940 ands r1, r1, r5 4607 .LVL317: 4608 0020 24F8021B strh r1, [r4], #2 @ movhi 4609 .LVL318: 4210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4610 .loc 1 4210 0 4611 0024 B0F85E10 ldrh r1, [r0, #94] 4209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4612 .loc 1 4209 0 4613 0028 8465 str r4, [r0, #88] 4614 .LVL319: 4210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4615 .loc 1 4210 0 4616 002a 0139 subs r1, r1, #1 4617 002c 89B2 uxth r1, r1 4618 002e A0F85E10 strh r1, [r0, #94] @ movhi 4212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4619 .loc 1 4212 0 4620 0032 B0F85E10 ldrh r1, [r0, #94] 4621 0036 89B2 uxth r1, r1 4622 0038 0029 cmp r1, #0 4623 003a EBD1 bne .L645 4215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4624 .loc 1 4215 0 4625 003c 1368 ldr r3, [r2] 4626 003e 23F49073 bic r3, r3, #288 4627 0042 1360 str r3, [r2] 4218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4628 .loc 1 4218 0 4629 0044 9368 ldr r3, [r2, #8] 4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4630 .loc 1 4221 0 4631 0046 2025 movs r5, #32 4218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4632 .loc 1 4218 0 4633 0048 23F00103 bic r3, r3, #1 4634 004c 9360 str r3, [r2, #8] 4221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4635 .loc 1 4221 0 4636 004e C0F88850 str r5, [r0, #136] 4228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 174 4637 .loc 1 4228 0 4638 0052 C36E ldr r3, [r0, #108] 4224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4639 .loc 1 4224 0 4640 0054 0167 str r1, [r0, #112] 4228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4641 .loc 1 4228 0 4642 0056 012B cmp r3, #1 4643 0058 0446 mov r4, r0 4644 .LVL320: 4645 005a 04D0 beq .L652 4249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4646 .loc 1 4249 0 4647 005c FFF7FEFF bl HAL_UART_RxCpltCallback 4648 .LVL321: 4649 .L649: 4252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4650 .loc 1 4252 0 4651 0060 0023 movs r3, #0 4652 0062 E366 str r3, [r4, #108] 4653 .loc 1 4260 0 4654 0064 38BD pop {r3, r4, r5, pc} 4655 .LVL322: 4656 .L652: 4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4657 .loc 1 4231 0 4658 0066 1368 ldr r3, [r2] 4238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4659 .loc 1 4238 0 4660 0068 B0F85C10 ldrh r1, [r0, #92] 4231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4661 .loc 1 4231 0 4662 006c 23F01003 bic r3, r3, #16 4663 0070 1360 str r3, [r2] 4238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4664 .loc 1 4238 0 4665 0072 FFF7FEFF bl HAL_UARTEx_RxEventCallback 4666 .LVL323: 4667 0076 F3E7 b .L649 4668 .cfi_endproc 4669 .LFE396: 4671 .section .text.UART_RxISR_8BIT_FIFOEN,"ax",%progbits 4672 .align 1 4673 .p2align 2,,3 4674 .syntax unified 4675 .thumb 4676 .thumb_func 4677 .fpu fpv4-sp-d16 4679 UART_RxISR_8BIT_FIFOEN: 4680 .LFB397: 4261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 4263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief RX interrupt handler for 7 or 8 bits data word length and FIFO mode is enabled. 4264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once 4265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Receive_IT() 4266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 4267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None ARM GAS /tmp/ccgDLloS.s page 175 4268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 4269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) 4270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4681 .loc 1 4270 0 4682 .cfi_startproc 4683 @ args = 0, pretend = 0, frame = 0 4684 @ frame_needed = 0, uses_anonymous_args = 0 4685 .LVL324: 4686 0000 2DE9F84F push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 4687 .LCFI62: 4688 .cfi_def_cfa_offset 40 4689 .cfi_offset 3, -40 4690 .cfi_offset 4, -36 4691 .cfi_offset 5, -32 4692 .cfi_offset 6, -28 4693 .cfi_offset 7, -24 4694 .cfi_offset 8, -20 4695 .cfi_offset 9, -16 4696 .cfi_offset 10, -12 4697 .cfi_offset 11, -8 4698 .cfi_offset 14, -4 4271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask = huart->Mask; 4272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhdata; 4273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_rx_data; 4274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t rxdatacount; 4275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); 4699 .loc 1 4275 0 4700 0004 0368 ldr r3, [r0] 4701 0006 D969 ldr r1, [r3, #28] 4702 .LVL325: 4276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 4703 .loc 1 4276 0 4704 0008 1F68 ldr r7, [r3] 4705 .LVL326: 4277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 4706 .loc 1 4277 0 4707 000a 9D68 ldr r5, [r3, #8] 4708 .LVL327: 4278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ 4280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 4709 .loc 1 4280 0 4710 000c D0F88820 ldr r2, [r0, #136] 4711 0010 222A cmp r2, #34 4712 0012 05D0 beq .L698 4281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** nb_rx_data = huart->NbRxDataToProcess; 4283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) 4284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhdata = (uint16_t) READ_REG(huart->Instance->RDR); 4286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); 4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; 4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); 4290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If some non blocking errors occurred */ 4292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U) ARM GAS /tmp/ccgDLloS.s page 176 4293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART parity error interrupt occurred -------------------------------------*/ 4295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) 4296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); 4298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE; 4300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART frame error interrupt occurred --------------------------------------*/ 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 4304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); 4306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE; 4308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART noise error interrupt occurred --------------------------------------*/ 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 4312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); 4314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE; 4316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call UART Error Call back function if need be ----------------------------*/ 4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE) 4320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Non Blocking error : transfer could go on. 4322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Error is notified to user through user error callback */ 4323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ 4325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); 4326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ 4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 4329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 4331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxXferCount == 0U) 4335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXFT interrupt*/ 4337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 4338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) 4340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and RX FIFO Threshold interrupt */ 4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); 4342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ 4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 4348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : ARM GAS /tmp/ccgDLloS.s page 177 4350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 4352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable IDLE interrupt */ 4354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 4355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 4358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 4359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 4361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); 4362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Standard reception API called */ 4367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 4369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); 4370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 4372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 4373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* When remaining number of bytes to receive is less than the RX FIFO 4380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** threshold, next incoming frames are processed as if FIFO mode was 4381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** disabled (i.e. one interrupt per received frame). 4382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** rxdatacount = huart->RxXferCount; 4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) 4385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART RXFT interrupt*/ 4387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); 4388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Update the RxISR function pointer */ 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_8BIT; 4391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Data Register Not Empty interrupt */ 4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); 4394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RXNE interrupt flag */ 4399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 4713 .loc 1 4399 0 4714 0014 9A69 ldr r2, [r3, #24] 4715 0016 42F00802 orr r2, r2, #8 4716 001a 9A61 str r2, [r3, #24] 4717 .LVL328: 4718 .L653: 4400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 178 4401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4719 .loc 1 4401 0 4720 001c BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 4721 .LVL329: 4722 .L698: 4283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4723 .loc 1 4283 0 4724 0020 B0F86820 ldrh r2, [r0, #104] 4725 0024 002A cmp r2, #0 4726 0026 00F09580 beq .L655 4727 002a 8A06 lsls r2, r1, #26 4728 002c 0446 mov r4, r0 4729 002e 7AD5 bpl .L656 4730 0030 90F86060 ldrb r6, [r0, #96] @ zero_extendqisi2 4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4731 .loc 1 4341 0 4732 0034 DFF82891 ldr r9, .L701+4 4295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4733 .loc 1 4295 0 4734 0038 07F48077 and r7, r7, #256 4735 .LVL330: 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4736 .loc 1 4311 0 4737 003c 05F00105 and r5, r5, #1 4738 .LVL331: 4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4739 .loc 1 4330 0 4740 0040 4FF00008 mov r8, #0 4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4741 .loc 1 4313 0 4742 0044 4FF0040A mov r10, #4 4743 .LVL332: 4744 .L668: 4285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); 4745 .loc 1 4285 0 4746 0048 5B6A ldr r3, [r3, #36] 4747 .LVL333: 4286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr++; 4748 .loc 1 4286 0 4749 004a A26D ldr r2, [r4, #88] 4750 004c 3340 ands r3, r3, r6 4751 .LVL334: 4752 004e 1370 strb r3, [r2] 4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); 4753 .loc 1 4288 0 4754 0050 B4F85E30 ldrh r3, [r4, #94] 4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4755 .loc 1 4289 0 4756 0054 2168 ldr r1, [r4] 4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4757 .loc 1 4287 0 4758 0056 A26D ldr r2, [r4, #88] 4288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); 4759 .loc 1 4288 0 4760 0058 013B subs r3, r3, #1 4761 005a 9BB2 uxth r3, r3 4762 005c A4F85E30 strh r3, [r4, #94] @ movhi ARM GAS /tmp/ccgDLloS.s page 179 4289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4763 .loc 1 4289 0 4764 0060 D1F81CB0 ldr fp, [r1, #28] 4765 .LVL335: 4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4766 .loc 1 4287 0 4767 0064 0132 adds r2, r2, #1 4292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4768 .loc 1 4292 0 4769 0066 1BF0070F tst fp, #7 4287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 4770 .loc 1 4287 0 4771 006a A265 str r2, [r4, #88] 4292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4772 .loc 1 4292 0 4773 006c 1DD0 beq .L658 4295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4774 .loc 1 4295 0 4775 006e 1BF0010F tst fp, #1 4776 0072 08D0 beq .L659 4295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4777 .loc 1 4295 0 is_stmt 0 discriminator 1 4778 0074 3FB1 cbz r7, .L659 4297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4779 .loc 1 4297 0 is_stmt 1 4780 0076 0123 movs r3, #1 4781 0078 0B62 str r3, [r1, #32] 4299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4782 .loc 1 4299 0 4783 007a D4F88C30 ldr r3, [r4, #140] 4784 007e 43F00103 orr r3, r3, #1 4785 0082 C4F88C30 str r3, [r4, #140] 4786 .L659: 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4787 .loc 1 4303 0 4788 0086 1BF0020F tst fp, #2 4789 008a 0BF00403 and r3, fp, #4 4790 008e 2AD0 beq .L660 4303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4791 .loc 1 4303 0 is_stmt 0 discriminator 1 4792 0090 45B1 cbz r5, .L662 4305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4793 .loc 1 4305 0 is_stmt 1 4794 0092 0222 movs r2, #2 4795 0094 0A62 str r2, [r1, #32] 4307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4796 .loc 1 4307 0 4797 0096 D4F88C20 ldr r2, [r4, #140] 4798 009a 42F00402 orr r2, r2, #4 4799 009e C4F88C20 str r2, [r4, #140] 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4800 .loc 1 4311 0 4801 00a2 23BB cbnz r3, .L663 4802 .L662: 4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4803 .loc 1 4319 0 4804 00a4 D4F88C30 ldr r3, [r4, #140] ARM GAS /tmp/ccgDLloS.s page 180 4805 00a8 6BBB cbnz r3, .L699 4806 .L658: 4334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4807 .loc 1 4334 0 4808 00aa B4F85E30 ldrh r3, [r4, #94] 4809 00ae 9BB2 uxth r3, r3 4810 00b0 A3B9 cbnz r3, .L665 4337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4811 .loc 1 4337 0 4812 00b2 2268 ldr r2, [r4] 4813 00b4 1168 ldr r1, [r2] 4814 00b6 21F48071 bic r1, r1, #256 4815 00ba 1160 str r1, [r2] 4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4816 .loc 1 4341 0 4817 00bc 9168 ldr r1, [r2, #8] 4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4818 .loc 1 4344 0 4819 00be 2020 movs r0, #32 4341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4820 .loc 1 4341 0 4821 00c0 01EA0901 and r1, r1, r9 4822 00c4 9160 str r1, [r2, #8] 4344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4823 .loc 1 4344 0 4824 00c6 C4F88800 str r0, [r4, #136] 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4825 .loc 1 4351 0 4826 00ca E16E ldr r1, [r4, #108] 4347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4827 .loc 1 4347 0 4828 00cc 2367 str r3, [r4, #112] 4351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4829 .loc 1 4351 0 4830 00ce 0129 cmp r1, #1 4831 00d0 1FD0 beq .L700 4372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4832 .loc 1 4372 0 4833 00d2 2046 mov r0, r4 4834 00d4 FFF7FEFF bl HAL_UART_RxCpltCallback 4835 .LVL336: 4836 .L667: 4375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4837 .loc 1 4375 0 4838 00d8 C4F86C80 str r8, [r4, #108] 4839 .L665: 4283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4840 .loc 1 4283 0 4841 00dc 1BF0200F tst fp, #32 4842 00e0 21D0 beq .L656 4843 00e2 2368 ldr r3, [r4] 4844 00e4 B0E7 b .L668 4845 .L660: 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4846 .loc 1 4311 0 4847 00e6 002B cmp r3, #0 4848 00e8 DCD0 beq .L662 ARM GAS /tmp/ccgDLloS.s page 181 4311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4849 .loc 1 4311 0 is_stmt 0 discriminator 1 4850 00ea 002D cmp r5, #0 4851 00ec DAD0 beq .L662 4852 .L663: 4313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4853 .loc 1 4313 0 is_stmt 1 4854 00ee C1F820A0 str r10, [r1, #32] 4315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4855 .loc 1 4315 0 4856 00f2 D4F88C30 ldr r3, [r4, #140] 4857 00f6 43F00203 orr r3, r3, #2 4858 00fa C4F88C30 str r3, [r4, #140] 4319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4859 .loc 1 4319 0 4860 00fe D4F88C30 ldr r3, [r4, #140] 4861 0102 002B cmp r3, #0 4862 0104 D1D0 beq .L658 4863 .L699: 4328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4864 .loc 1 4328 0 4865 0106 2046 mov r0, r4 4866 0108 FFF7FEFF bl HAL_UART_ErrorCallback 4867 .LVL337: 4330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4868 .loc 1 4330 0 4869 010c C4F88C80 str r8, [r4, #140] 4870 0110 CBE7 b .L658 4871 .L700: 4354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4872 .loc 1 4354 0 4873 0112 1368 ldr r3, [r2] 4361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4874 .loc 1 4361 0 4875 0114 B4F85C10 ldrh r1, [r4, #92] 4354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4876 .loc 1 4354 0 4877 0118 23F01003 bic r3, r3, #16 4878 011c 1360 str r3, [r2] 4361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4879 .loc 1 4361 0 4880 011e 2046 mov r0, r4 4881 0120 FFF7FEFF bl HAL_UARTEx_RxEventCallback 4882 .LVL338: 4883 0124 D8E7 b .L667 4884 .LVL339: 4885 .L656: 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) 4886 .loc 1 4383 0 4887 0126 B4F85E30 ldrh r3, [r4, #94] 4888 012a 9BB2 uxth r3, r3 4889 .LVL340: 4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4890 .loc 1 4384 0 4891 012c 002B cmp r3, #0 4892 012e 3FF475AF beq .L653 4384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 182 4893 .loc 1 4384 0 is_stmt 0 discriminator 1 4894 0132 B4F86820 ldrh r2, [r4, #104] 4895 0136 9A42 cmp r2, r3 4896 0138 7FF670AF bls .L653 4387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4897 .loc 1 4387 0 is_stmt 1 4898 013c 2368 ldr r3, [r4] 4899 .LVL341: 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4900 .loc 1 4390 0 4901 013e 0749 ldr r1, .L701 4387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4902 .loc 1 4387 0 4903 0140 9A68 ldr r2, [r3, #8] 4904 0142 22F08052 bic r2, r2, #268435456 4905 0146 9A60 str r2, [r3, #8] 4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4906 .loc 1 4393 0 4907 0148 1A68 ldr r2, [r3] 4390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4908 .loc 1 4390 0 4909 014a 2167 str r1, [r4, #112] 4393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4910 .loc 1 4393 0 4911 014c 42F02002 orr r2, r2, #32 4912 0150 1A60 str r2, [r3] 4913 0152 63E7 b .L653 4914 .LVL342: 4915 .L655: 4383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) 4916 .loc 1 4383 0 4917 0154 B0F85E30 ldrh r3, [r0, #94] 4918 0158 60E7 b .L653 4919 .L702: 4920 015a 00BF .align 2 4921 .L701: 4922 015c 00000000 .word UART_RxISR_8BIT 4923 0160 FEFFFFEF .word -268435458 4924 .cfi_endproc 4925 .LFE397: 4927 .section .text.UART_RxISR_16BIT_FIFOEN,"ax",%progbits 4928 .align 1 4929 .p2align 2,,3 4930 .syntax unified 4931 .thumb 4932 .thumb_func 4933 .fpu fpv4-sp-d16 4935 UART_RxISR_16BIT_FIFOEN: 4936 .LFB398: 4402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 4404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @brief RX interrupt handler for 9 bits data word length and FIFO mode is enabled. 4405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @note Function is called under interruption only, once 4406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Receive_IT() 4407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @param huart UART handle. 4408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** * @retval None 4409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ ARM GAS /tmp/ccgDLloS.s page 183 4410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) 4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4937 .loc 1 4411 0 4938 .cfi_startproc 4939 @ args = 0, pretend = 0, frame = 0 4940 @ frame_needed = 0, uses_anonymous_args = 0 4941 .LVL343: 4412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *tmp; 4413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhMask = huart->Mask; 4414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhdata; 4415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t nb_rx_data; 4416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t rxdatacount; 4417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR); 4942 .loc 1 4417 0 4943 0000 0268 ldr r2, [r0] 4411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t *tmp; 4944 .loc 1 4411 0 4945 0002 2DE9F84F push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 4946 .LCFI63: 4947 .cfi_def_cfa_offset 40 4948 .cfi_offset 3, -40 4949 .cfi_offset 4, -36 4950 .cfi_offset 5, -32 4951 .cfi_offset 6, -28 4952 .cfi_offset 7, -24 4953 .cfi_offset 8, -20 4954 .cfi_offset 9, -16 4955 .cfi_offset 10, -12 4956 .cfi_offset 11, -8 4957 .cfi_offset 14, -4 4958 .loc 1 4417 0 4959 0006 D169 ldr r1, [r2, #28] 4960 .LVL344: 4418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 4961 .loc 1 4418 0 4962 0008 1768 ldr r7, [r2] 4963 .LVL345: 4419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 4964 .loc 1 4419 0 4965 000a 9568 ldr r5, [r2, #8] 4966 .LVL346: 4420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ 4422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 4967 .loc 1 4422 0 4968 000c D0F88830 ldr r3, [r0, #136] 4969 0010 222B cmp r3, #34 4970 0012 05D0 beq .L748 4423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** nb_rx_data = huart->NbRxDataToProcess; 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U)) 4426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uhdata = (uint16_t) READ_REG(huart->Instance->RDR); 4428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** *tmp = (uint16_t)(uhdata & uhMask); 4430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; ARM GAS /tmp/ccgDLloS.s page 184 4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); 4433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* If some non blocking errors occurred */ 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U) 4436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART parity error interrupt occurred -------------------------------------*/ 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) 4439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); 4441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE; 4443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART frame error interrupt occurred --------------------------------------*/ 4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 4447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); 4449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE; 4451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* UART noise error interrupt occurred --------------------------------------*/ 4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 4455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); 4457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE; 4459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Call UART Error Call back function if need be ----------------------------*/ 4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE) 4463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Non Blocking error : transfer could go on. 4465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** Error is notified to user through user error callback */ 4466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered error callback*/ 4468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCallback(huart); 4469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak error callback*/ 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 4472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 4474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->RxXferCount == 0U) 4478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXFT interrupt*/ 4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 4481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) 4483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** and RX FIFO Threshold interrupt */ 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); 4485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 185 4489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RxISR function pointer */ 4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 4491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check current reception Mode : 4493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ 4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 4495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable IDLE interrupt */ 4497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 4498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 4501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 4502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 4504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); 4505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 4506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Standard reception API called */ 4510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 4512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxCpltCallback(huart); 4513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #else 4514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 4515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 4516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* When remaining number of bytes to receive is less than the RX FIFO 4523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** threshold, next incoming frames are processed as if FIFO mode was 4524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** disabled (i.e. one interrupt per received frame). 4525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** */ 4526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** rxdatacount = huart->RxXferCount; 4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) 4528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Disable the UART RXFT interrupt*/ 4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); 4531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Update the RxISR function pointer */ 4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = UART_RxISR_16BIT; 4534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Enable the UART Data Register Not Empty interrupt */ 4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); 4537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** else 4540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Clear RXNE interrupt flag */ 4542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 4971 .loc 1 4542 0 4972 0014 9369 ldr r3, [r2, #24] 4973 0016 43F00803 orr r3, r3, #8 ARM GAS /tmp/ccgDLloS.s page 186 4974 001a 9361 str r3, [r2, #24] 4975 .LVL347: 4976 .L703: 4543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4977 .loc 1 4544 0 4978 001c BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 4979 .LVL348: 4980 .L748: 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4981 .loc 1 4425 0 4982 0020 B0F86830 ldrh r3, [r0, #104] 4983 0024 002B cmp r3, #0 4984 0026 00F09380 beq .L705 4985 002a 8B06 lsls r3, r1, #26 4986 002c 0446 mov r4, r0 4987 002e 78D5 bpl .L706 4413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint16_t uhdata; 4988 .loc 1 4413 0 4989 0030 B0F86060 ldrh r6, [r0, #96] 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 4990 .loc 1 4484 0 4991 0034 DFF82491 ldr r9, .L751+4 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4992 .loc 1 4438 0 4993 0038 07F48077 and r7, r7, #256 4994 .LVL349: 4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 4995 .loc 1 4454 0 4996 003c 05F00105 and r5, r5, #1 4997 .LVL350: 4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 4998 .loc 1 4473 0 4999 0040 4FF00008 mov r8, #0 4456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5000 .loc 1 4456 0 5001 0044 4FF0040A mov r10, #4 5002 .LVL351: 5003 .L718: 4427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr ; 5004 .loc 1 4427 0 5005 0048 536A ldr r3, [r2, #36] 5006 .LVL352: 4429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 5007 .loc 1 4429 0 5008 004a A16D ldr r1, [r4, #88] 5009 004c 3340 ands r3, r3, r6 5010 .LVL353: 5011 004e 21F8023B strh r3, [r1], #2 @ movhi 4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); 5012 .loc 1 4431 0 5013 0052 B4F85E30 ldrh r3, [r4, #94] 4430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount--; 5014 .loc 1 4430 0 5015 0056 A165 str r1, [r4, #88] 5016 .LVL354: 4431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** isrflags = READ_REG(huart->Instance->ISR); ARM GAS /tmp/ccgDLloS.s page 187 5017 .loc 1 4431 0 5018 0058 013B subs r3, r3, #1 5019 005a 9BB2 uxth r3, r3 5020 005c A4F85E30 strh r3, [r4, #94] @ movhi 4432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5021 .loc 1 4432 0 5022 0060 D2F81CB0 ldr fp, [r2, #28] 5023 .LVL355: 4435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5024 .loc 1 4435 0 5025 0064 1BF0070F tst fp, #7 5026 0068 1DD0 beq .L708 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5027 .loc 1 4438 0 5028 006a 1BF0010F tst fp, #1 5029 006e 08D0 beq .L709 4438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5030 .loc 1 4438 0 is_stmt 0 discriminator 1 5031 0070 3FB1 cbz r7, .L709 4440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5032 .loc 1 4440 0 is_stmt 1 5033 0072 0123 movs r3, #1 5034 0074 1362 str r3, [r2, #32] 4442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5035 .loc 1 4442 0 5036 0076 D4F88C30 ldr r3, [r4, #140] 5037 007a 43F00103 orr r3, r3, #1 5038 007e C4F88C30 str r3, [r4, #140] 5039 .L709: 4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5040 .loc 1 4446 0 5041 0082 1BF0020F tst fp, #2 5042 0086 0BF00403 and r3, fp, #4 5043 008a 2AD0 beq .L710 4446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5044 .loc 1 4446 0 is_stmt 0 discriminator 1 5045 008c 45B1 cbz r5, .L712 4448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5046 .loc 1 4448 0 is_stmt 1 5047 008e 0221 movs r1, #2 5048 .LVL356: 5049 0090 1162 str r1, [r2, #32] 4450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5050 .loc 1 4450 0 5051 0092 D4F88C10 ldr r1, [r4, #140] 5052 0096 41F00401 orr r1, r1, #4 5053 009a C4F88C10 str r1, [r4, #140] 4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5054 .loc 1 4454 0 5055 009e 23BB cbnz r3, .L713 5056 .L712: 4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5057 .loc 1 4462 0 5058 00a0 D4F88C30 ldr r3, [r4, #140] 5059 00a4 6BBB cbnz r3, .L749 5060 .LVL357: 5061 .L708: ARM GAS /tmp/ccgDLloS.s page 188 4477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5062 .loc 1 4477 0 5063 00a6 B4F85E30 ldrh r3, [r4, #94] 5064 00aa 9BB2 uxth r3, r3 5065 00ac A3B9 cbnz r3, .L715 4480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5066 .loc 1 4480 0 5067 00ae 2268 ldr r2, [r4] 5068 00b0 1168 ldr r1, [r2] 5069 00b2 21F48071 bic r1, r1, #256 5070 00b6 1160 str r1, [r2] 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5071 .loc 1 4484 0 5072 00b8 9168 ldr r1, [r2, #8] 4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5073 .loc 1 4487 0 5074 00ba 2020 movs r0, #32 4484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5075 .loc 1 4484 0 5076 00bc 01EA0901 and r1, r1, r9 5077 00c0 9160 str r1, [r2, #8] 4487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5078 .loc 1 4487 0 5079 00c2 C4F88800 str r0, [r4, #136] 4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5080 .loc 1 4494 0 5081 00c6 E16E ldr r1, [r4, #108] 4490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5082 .loc 1 4490 0 5083 00c8 2367 str r3, [r4, #112] 4494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5084 .loc 1 4494 0 5085 00ca 0129 cmp r1, #1 5086 00cc 1FD0 beq .L750 4515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5087 .loc 1 4515 0 5088 00ce 2046 mov r0, r4 5089 00d0 FFF7FEFF bl HAL_UART_RxCpltCallback 5090 .LVL358: 5091 .L717: 4518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5092 .loc 1 4518 0 5093 00d4 C4F86C80 str r8, [r4, #108] 5094 .L715: 4425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5095 .loc 1 4425 0 5096 00d8 1BF0200F tst fp, #32 5097 00dc 21D0 beq .L706 5098 00de 2268 ldr r2, [r4] 5099 00e0 B2E7 b .L718 5100 .LVL359: 5101 .L710: 4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5102 .loc 1 4454 0 5103 00e2 002B cmp r3, #0 5104 00e4 DCD0 beq .L712 4454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 189 5105 .loc 1 4454 0 is_stmt 0 discriminator 1 5106 00e6 002D cmp r5, #0 5107 00e8 DAD0 beq .L712 5108 .LVL360: 5109 .L713: 4456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5110 .loc 1 4456 0 is_stmt 1 5111 00ea C2F820A0 str r10, [r2, #32] 4458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5112 .loc 1 4458 0 5113 00ee D4F88C30 ldr r3, [r4, #140] 5114 00f2 43F00203 orr r3, r3, #2 5115 00f6 C4F88C30 str r3, [r4, #140] 4462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5116 .loc 1 4462 0 5117 00fa D4F88C30 ldr r3, [r4, #140] 5118 00fe 002B cmp r3, #0 5119 0100 D1D0 beq .L708 5120 .L749: 4471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5121 .loc 1 4471 0 5122 0102 2046 mov r0, r4 5123 0104 FFF7FEFF bl HAL_UART_ErrorCallback 5124 .LVL361: 4473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5125 .loc 1 4473 0 5126 0108 C4F88C80 str r8, [r4, #140] 5127 010c CBE7 b .L708 5128 .L750: 4497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5129 .loc 1 4497 0 5130 010e 1368 ldr r3, [r2] 4504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 5131 .loc 1 4504 0 5132 0110 B4F85C10 ldrh r1, [r4, #92] 4497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5133 .loc 1 4497 0 5134 0114 23F01003 bic r3, r3, #16 5135 0118 1360 str r3, [r2] 4504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 5136 .loc 1 4504 0 5137 011a 2046 mov r0, r4 5138 011c FFF7FEFF bl HAL_UARTEx_RxEventCallback 5139 .LVL362: 5140 0120 D8E7 b .L717 5141 .LVL363: 5142 .L706: 4526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) 5143 .loc 1 4526 0 5144 0122 B4F85E30 ldrh r3, [r4, #94] 5145 0126 9BB2 uxth r3, r3 5146 .LVL364: 4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5147 .loc 1 4527 0 5148 0128 002B cmp r3, #0 5149 012a 3FF477AF beq .L703 4527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 190 5150 .loc 1 4527 0 is_stmt 0 discriminator 1 5151 012e B4F86820 ldrh r2, [r4, #104] 5152 0132 9A42 cmp r2, r3 5153 0134 7FF672AF bls .L703 4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5154 .loc 1 4530 0 is_stmt 1 5155 0138 2368 ldr r3, [r4] 5156 .LVL365: 4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5157 .loc 1 4533 0 5158 013a 0749 ldr r1, .L751 4530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5159 .loc 1 4530 0 5160 013c 9A68 ldr r2, [r3, #8] 5161 013e 22F08052 bic r2, r2, #268435456 5162 0142 9A60 str r2, [r3, #8] 4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5163 .loc 1 4536 0 5164 0144 1A68 ldr r2, [r3] 4533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5165 .loc 1 4533 0 5166 0146 2167 str r1, [r4, #112] 4536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5167 .loc 1 4536 0 5168 0148 42F02002 orr r2, r2, #32 5169 014c 1A60 str r2, [r3] 5170 014e 65E7 b .L703 5171 .LVL366: 5172 .L705: 4526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) 5173 .loc 1 4526 0 5174 0150 B0F85E30 ldrh r3, [r0, #94] 5175 0154 62E7 b .L703 5176 .L752: 5177 0156 00BF .align 2 5178 .L751: 5179 0158 00000000 .word UART_RxISR_16BIT 5180 015c FEFFFFEF .word -268435458 5181 .cfi_endproc 5182 .LFE398: 5184 .section .text.UART_DMARxHalfCplt,"ax",%progbits 5185 .align 1 5186 .p2align 2,,3 5187 .syntax unified 5188 .thumb 5189 .thumb_func 5190 .fpu fpv4-sp-d16 5192 UART_DMARxHalfCplt: 5193 .LFB383: 3691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 5194 .loc 1 3691 0 5195 .cfi_startproc 5196 @ args = 0, pretend = 0, frame = 0 5197 @ frame_needed = 0, uses_anonymous_args = 0 5198 .LVL367: 3692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5199 .loc 1 3692 0 ARM GAS /tmp/ccgDLloS.s page 191 5200 0000 806A ldr r0, [r0, #40] 5201 .LVL368: 3691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 5202 .loc 1 3691 0 5203 0002 08B5 push {r3, lr} 5204 .LCFI64: 5205 .cfi_def_cfa_offset 8 5206 .cfi_offset 3, -8 5207 .cfi_offset 14, -4 3696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5208 .loc 1 3696 0 5209 0004 C36E ldr r3, [r0, #108] 5210 0006 012B cmp r3, #1 5211 0008 02D0 beq .L757 3714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5212 .loc 1 3714 0 5213 000a FFF7FEFF bl HAL_UART_RxHalfCpltCallback 5214 .LVL369: 3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5215 .loc 1 3717 0 5216 000e 08BD pop {r3, pc} 5217 .LVL370: 5218 .L757: 3703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5219 .loc 1 3703 0 5220 0010 B0F85C10 ldrh r1, [r0, #92] 5221 0014 4908 lsrs r1, r1, #1 5222 0016 FFF7FEFF bl HAL_UARTEx_RxEventCallback 5223 .LVL371: 3717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5224 .loc 1 3717 0 5225 001a 08BD pop {r3, pc} 5226 .cfi_endproc 5227 .LFE383: 5229 .section .text.UART_DMAReceiveCplt,"ax",%progbits 5230 .align 1 5231 .p2align 2,,3 5232 .syntax unified 5233 .thumb 5234 .thumb_func 5235 .fpu fpv4-sp-d16 5237 UART_DMAReceiveCplt: 5238 .LFB382: 3634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 5239 .loc 1 3634 0 5240 .cfi_startproc 5241 @ args = 0, pretend = 0, frame = 0 5242 @ frame_needed = 0, uses_anonymous_args = 0 5243 .LVL372: 5244 0000 08B5 push {r3, lr} 5245 .LCFI65: 5246 .cfi_def_cfa_offset 8 5247 .cfi_offset 3, -8 5248 .cfi_offset 14, -4 3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5249 .loc 1 3638 0 5250 0002 0368 ldr r3, [r0] ARM GAS /tmp/ccgDLloS.s page 192 3635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5251 .loc 1 3635 0 5252 0004 806A ldr r0, [r0, #40] 5253 .LVL373: 3638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5254 .loc 1 3638 0 5255 0006 1B68 ldr r3, [r3] 5256 0008 13F02003 ands r3, r3, #32 5257 000c 14D1 bne .L760 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5258 .loc 1 3643 0 5259 000e 0268 ldr r2, [r0] 3640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5260 .loc 1 3640 0 5261 0010 A0F85E30 strh r3, [r0, #94] @ movhi 3643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5262 .loc 1 3643 0 5263 0014 1368 ldr r3, [r2] 5264 0016 23F48073 bic r3, r3, #256 5265 001a 1360 str r3, [r2] 3644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5266 .loc 1 3644 0 5267 001c 9368 ldr r3, [r2, #8] 5268 001e 23F00103 bic r3, r3, #1 5269 0022 9360 str r3, [r2, #8] 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5270 .loc 1 3648 0 5271 0024 9368 ldr r3, [r2, #8] 3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5272 .loc 1 3651 0 5273 0026 2021 movs r1, #32 3648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5274 .loc 1 3648 0 5275 0028 23F04003 bic r3, r3, #64 5276 002c 9360 str r3, [r2, #8] 3651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5277 .loc 1 3651 0 5278 002e C0F88810 str r1, [r0, #136] 3654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5279 .loc 1 3654 0 5280 0032 C36E ldr r3, [r0, #108] 5281 0034 012B cmp r3, #1 5282 0036 0AD0 beq .L765 5283 .L760: 3662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5284 .loc 1 3662 0 5285 0038 C36E ldr r3, [r0, #108] 5286 003a 012B cmp r3, #1 5287 003c 02D0 beq .L766 3680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5288 .loc 1 3680 0 5289 003e FFF7FEFF bl HAL_UART_RxCpltCallback 5290 .LVL374: 3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5291 .loc 1 3683 0 5292 0042 08BD pop {r3, pc} 5293 .LVL375: ARM GAS /tmp/ccgDLloS.s page 193 5294 .L766: 3669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5295 .loc 1 3669 0 5296 0044 B0F85C10 ldrh r1, [r0, #92] 5297 0048 FFF7FEFF bl HAL_UARTEx_RxEventCallback 5298 .LVL376: 3683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5299 .loc 1 3683 0 5300 004c 08BD pop {r3, pc} 5301 .LVL377: 5302 .L765: 3656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5303 .loc 1 3656 0 5304 004e 1368 ldr r3, [r2] 5305 0050 23F01003 bic r3, r3, #16 5306 0054 1360 str r3, [r2] 5307 0056 EFE7 b .L760 5308 .cfi_endproc 5309 .LFE382: 5311 .section .text.HAL_UART_ReceiverTimeout_Config,"ax",%progbits 5312 .align 1 5313 .p2align 2,,3 5314 .global HAL_UART_ReceiverTimeout_Config 5315 .syntax unified 5316 .thumb 5317 .thumb_func 5318 .fpu fpv4-sp-d16 5320 HAL_UART_ReceiverTimeout_Config: 5321 .LFB361: 2718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 5322 .loc 1 2718 0 5323 .cfi_startproc 5324 @ args = 0, pretend = 0, frame = 0 5325 @ frame_needed = 0, uses_anonymous_args = 0 5326 @ link register save eliminated. 5327 .LVL378: 2719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5328 .loc 1 2719 0 5329 0000 0268 ldr r2, [r0] 5330 0002 044B ldr r3, .L769 5331 0004 9A42 cmp r2, r3 5332 0006 04D0 beq .L767 2722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5333 .loc 1 2722 0 5334 0008 5369 ldr r3, [r2, #20] 5335 000a 03F07F43 and r3, r3, #-16777216 5336 000e 1943 orrs r1, r1, r3 5337 .LVL379: 5338 0010 5161 str r1, [r2, #20] 5339 .L767: 2724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5340 .loc 1 2724 0 5341 0012 7047 bx lr 5342 .L770: 5343 .align 2 5344 .L769: 5345 0014 00800040 .word 1073774592 ARM GAS /tmp/ccgDLloS.s page 194 5346 .cfi_endproc 5347 .LFE361: 5349 .section .text.HAL_UART_EnableReceiverTimeout,"ax",%progbits 5350 .align 1 5351 .p2align 2,,3 5352 .global HAL_UART_EnableReceiverTimeout 5353 .syntax unified 5354 .thumb 5355 .thumb_func 5356 .fpu fpv4-sp-d16 5358 HAL_UART_EnableReceiverTimeout: 5359 .LFB362: 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 5360 .loc 1 2733 0 5361 .cfi_startproc 5362 @ args = 0, pretend = 0, frame = 0 5363 @ frame_needed = 0, uses_anonymous_args = 0 5364 @ link register save eliminated. 5365 .LVL380: 2734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5366 .loc 1 2734 0 5367 0000 1049 ldr r1, .L780 5368 0002 0268 ldr r2, [r0] 5369 0004 8A42 cmp r2, r1 5370 0006 1BD0 beq .L773 2736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5371 .loc 1 2736 0 5372 0008 D0F88410 ldr r1, [r0, #132] 5373 000c 2029 cmp r1, #32 5374 000e 0346 mov r3, r0 5375 0010 14D1 bne .L775 2739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5376 .loc 1 2739 0 5377 0012 90F88000 ldrb r0, [r0, #128] @ zero_extendqisi2 5378 .LVL381: 5379 0016 0128 cmp r0, #1 5380 0018 10D0 beq .L775 2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5381 .loc 1 2741 0 discriminator 2 5382 001a 2420 movs r0, #36 2733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 5383 .loc 1 2733 0 discriminator 2 5384 001c 10B4 push {r4} 5385 .LCFI66: 5386 .cfi_def_cfa_offset 4 5387 .cfi_offset 4, -4 2741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5388 .loc 1 2741 0 discriminator 2 5389 001e C3F88400 str r0, [r3, #132] 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5390 .loc 1 2744 0 discriminator 2 5391 0022 5068 ldr r0, [r2, #4] 2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5392 .loc 1 2749 0 discriminator 2 5393 0024 0024 movs r4, #0 2744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5394 .loc 1 2744 0 discriminator 2 ARM GAS /tmp/ccgDLloS.s page 195 5395 0026 40F40000 orr r0, r0, #8388608 5396 002a 5060 str r0, [r2, #4] 2751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5397 .loc 1 2751 0 discriminator 2 5398 002c 2046 mov r0, r4 2749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5399 .loc 1 2749 0 discriminator 2 5400 002e 83F88040 strb r4, [r3, #128] 2746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5401 .loc 1 2746 0 discriminator 2 5402 0032 C3F88410 str r1, [r3, #132] 2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5403 .loc 1 2762 0 discriminator 2 5404 0036 5DF8044B ldr r4, [sp], #4 5405 .LCFI67: 5406 .cfi_restore 4 5407 .cfi_def_cfa_offset 0 5408 003a 7047 bx lr 5409 .L775: 2755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5410 .loc 1 2755 0 5411 003c 0220 movs r0, #2 2762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5412 .loc 1 2762 0 5413 003e 7047 bx lr 5414 .LVL382: 5415 .L773: 2760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5416 .loc 1 2760 0 5417 0040 0120 movs r0, #1 5418 .LVL383: 5419 0042 7047 bx lr 5420 .L781: 5421 .align 2 5422 .L780: 5423 0044 00800040 .word 1073774592 5424 .cfi_endproc 5425 .LFE362: 5427 .section .text.HAL_UART_DisableReceiverTimeout,"ax",%progbits 5428 .align 1 5429 .p2align 2,,3 5430 .global HAL_UART_DisableReceiverTimeout 5431 .syntax unified 5432 .thumb 5433 .thumb_func 5434 .fpu fpv4-sp-d16 5436 HAL_UART_DisableReceiverTimeout: 5437 .LFB363: 2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 5438 .loc 1 2771 0 5439 .cfi_startproc 5440 @ args = 0, pretend = 0, frame = 0 5441 @ frame_needed = 0, uses_anonymous_args = 0 5442 @ link register save eliminated. 5443 .LVL384: 2772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5444 .loc 1 2772 0 ARM GAS /tmp/ccgDLloS.s page 196 5445 0000 1049 ldr r1, .L791 5446 0002 0268 ldr r2, [r0] 5447 0004 8A42 cmp r2, r1 5448 0006 1BD0 beq .L784 2774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5449 .loc 1 2774 0 5450 0008 D0F88410 ldr r1, [r0, #132] 5451 000c 2029 cmp r1, #32 5452 000e 0346 mov r3, r0 5453 0010 14D1 bne .L786 2777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5454 .loc 1 2777 0 5455 0012 90F88000 ldrb r0, [r0, #128] @ zero_extendqisi2 5456 .LVL385: 5457 0016 0128 cmp r0, #1 5458 0018 10D0 beq .L786 2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5459 .loc 1 2779 0 discriminator 2 5460 001a 2420 movs r0, #36 2771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if (!(IS_LPUART_INSTANCE(huart->Instance))) 5461 .loc 1 2771 0 discriminator 2 5462 001c 10B4 push {r4} 5463 .LCFI68: 5464 .cfi_def_cfa_offset 4 5465 .cfi_offset 4, -4 2779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5466 .loc 1 2779 0 discriminator 2 5467 001e C3F88400 str r0, [r3, #132] 2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5468 .loc 1 2782 0 discriminator 2 5469 0022 5068 ldr r0, [r2, #4] 2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5470 .loc 1 2787 0 discriminator 2 5471 0024 0024 movs r4, #0 2782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5472 .loc 1 2782 0 discriminator 2 5473 0026 20F40000 bic r0, r0, #8388608 5474 002a 5060 str r0, [r2, #4] 2789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5475 .loc 1 2789 0 discriminator 2 5476 002c 2046 mov r0, r4 2787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5477 .loc 1 2787 0 discriminator 2 5478 002e 83F88040 strb r4, [r3, #128] 2784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5479 .loc 1 2784 0 discriminator 2 5480 0032 C3F88410 str r1, [r3, #132] 2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5481 .loc 1 2800 0 discriminator 2 5482 0036 5DF8044B ldr r4, [sp], #4 5483 .LCFI69: 5484 .cfi_restore 4 5485 .cfi_def_cfa_offset 0 5486 003a 7047 bx lr 5487 .L786: 2793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5488 .loc 1 2793 0 ARM GAS /tmp/ccgDLloS.s page 197 5489 003c 0220 movs r0, #2 2800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5490 .loc 1 2800 0 5491 003e 7047 bx lr 5492 .LVL386: 5493 .L784: 2798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5494 .loc 1 2798 0 5495 0040 0120 movs r0, #1 5496 .LVL387: 5497 0042 7047 bx lr 5498 .L792: 5499 .align 2 5500 .L791: 5501 0044 00800040 .word 1073774592 5502 .cfi_endproc 5503 .LFE363: 5505 .section .text.HAL_MultiProcessor_EnableMuteMode,"ax",%progbits 5506 .align 1 5507 .p2align 2,,3 5508 .global HAL_MultiProcessor_EnableMuteMode 5509 .syntax unified 5510 .thumb 5511 .thumb_func 5512 .fpu fpv4-sp-d16 5514 HAL_MultiProcessor_EnableMuteMode: 5515 .LFB364: 2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 5516 .loc 1 2809 0 5517 .cfi_startproc 5518 @ args = 0, pretend = 0, frame = 0 5519 @ frame_needed = 0, uses_anonymous_args = 0 5520 .LVL388: 2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5521 .loc 1 2810 0 5522 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 5523 0004 012B cmp r3, #1 5524 0006 60D0 beq .L805 2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5525 .loc 1 2815 0 discriminator 2 5526 0008 0268 ldr r2, [r0] 2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5527 .loc 1 2812 0 discriminator 2 5528 000a 2423 movs r3, #36 2809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 5529 .loc 1 2809 0 discriminator 2 5530 000c 70B5 push {r4, r5, r6, lr} 5531 .LCFI70: 5532 .cfi_def_cfa_offset 16 5533 .cfi_offset 4, -16 5534 .cfi_offset 5, -12 5535 .cfi_offset 6, -8 5536 .cfi_offset 14, -4 2812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5537 .loc 1 2812 0 discriminator 2 5538 000e C0F88430 str r3, [r0, #132] 2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 198 5539 .loc 1 2815 0 discriminator 2 5540 0012 1368 ldr r3, [r2] 5541 0014 0446 mov r4, r0 5542 0016 43F40053 orr r3, r3, #8192 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5543 .loc 1 2817 0 discriminator 2 5544 001a 2020 movs r0, #32 5545 .LVL389: 5546 .LBB128: 5547 .LBB129: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5548 .loc 1 3308 0 discriminator 2 5549 001c 0021 movs r1, #0 5550 .LBE129: 5551 .LBE128: 2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5552 .loc 1 2810 0 discriminator 2 5553 001e 0125 movs r5, #1 5554 0020 84F88050 strb r5, [r4, #128] 2815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5555 .loc 1 2815 0 discriminator 2 5556 0024 1360 str r3, [r2] 2817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5557 .loc 1 2817 0 discriminator 2 5558 0026 C4F88400 str r0, [r4, #132] 5559 .LVL390: 5560 .LBB158: 5561 .LBB154: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5562 .loc 1 3308 0 discriminator 2 5563 002a C4F88C10 str r1, [r4, #140] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5564 .loc 1 3311 0 discriminator 2 5565 002e FFF7FEFF bl HAL_GetTick 5566 .LVL391: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5567 .loc 1 3314 0 discriminator 2 5568 0032 2368 ldr r3, [r4] 5569 0034 1A68 ldr r2, [r3] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5570 .loc 1 3311 0 discriminator 2 5571 0036 0646 mov r6, r0 5572 .LVL392: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5573 .loc 1 3314 0 discriminator 2 5574 0038 1007 lsls r0, r2, #28 5575 .LVL393: 5576 003a 0DD4 bmi .L795 5577 .L796: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5578 .loc 1 3325 0 5579 003c 1A68 ldr r2, [r3] 5580 003e 5007 lsls r0, r2, #29 5581 0040 31D4 bmi .L800 5582 .L804: 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5583 .loc 1 3338 0 ARM GAS /tmp/ccgDLloS.s page 199 5584 0042 0023 movs r3, #0 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5585 .loc 1 3336 0 5586 0044 2022 movs r2, #32 5587 0046 C4F88420 str r2, [r4, #132] 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5588 .loc 1 3340 0 5589 004a 84F88030 strb r3, [r4, #128] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5590 .loc 1 3337 0 5591 004e C4F88820 str r2, [r4, #136] 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5592 .loc 1 3342 0 5593 0052 1846 mov r0, r3 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5594 .loc 1 3338 0 5595 0054 E366 str r3, [r4, #108] 5596 .LBE154: 5597 .LBE158: 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5598 .loc 1 2820 0 5599 0056 70BD pop {r4, r5, r6, pc} 5600 .LVL394: 5601 .L795: 5602 .LBB159: 5603 .LBB155: 5604 .LBB130: 5605 .LBB131: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5606 .loc 1 3358 0 5607 0058 DD69 ldr r5, [r3, #28] 5608 005a 15F40015 ands r5, r5, #2097152 5609 005e EDD1 bne .L796 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5610 .loc 1 3363 0 5611 0060 FFF7FEFF bl HAL_GetTick 5612 .LVL395: 5613 .LBB132: 5614 .LBB133: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5615 .loc 1 3367 0 5616 0064 2368 ldr r3, [r4] 5617 .LBE133: 5618 .LBE132: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5619 .loc 1 3363 0 5620 0066 801B subs r0, r0, r6 5621 0068 B0F1007F cmp r0, #33554432 5622 .LBB135: 5623 .LBB134: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5624 .loc 1 3367 0 5625 006c 1A68 ldr r2, [r3] 5626 .LBE134: 5627 .LBE135: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5628 .loc 1 3363 0 ARM GAS /tmp/ccgDLloS.s page 200 5629 006e 2ED2 bcs .L824 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5630 .loc 1 3378 0 5631 0070 5107 lsls r1, r2, #29 5632 0072 F1D5 bpl .L795 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5633 .loc 1 3380 0 5634 0074 DA69 ldr r2, [r3, #28] 5635 0076 1205 lsls r2, r2, #20 5636 0078 EED5 bpl .L795 5637 .L825: 5638 .LBE131: 5639 .LBE130: 5640 .LBB136: 5641 .LBB137: 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5642 .loc 1 3383 0 5643 007a 4FF40062 mov r2, #2048 5644 007e 1A62 str r2, [r3, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5645 .loc 1 3387 0 5646 0080 1A68 ldr r2, [r3] 5647 0082 22F4D072 bic r2, r2, #416 5648 0086 1A60 str r2, [r3] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5649 .loc 1 3388 0 5650 0088 9968 ldr r1, [r3, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5651 .loc 1 3390 0 5652 008a 2022 movs r2, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5653 .loc 1 3388 0 5654 008c 21F00101 bic r1, r1, #1 5655 0090 9960 str r1, [r3, #8] 5656 .LBE137: 5657 .LBE136: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5658 .loc 1 3331 0 5659 0092 0320 movs r0, #3 5660 .LBB150: 5661 .LBB146: 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5662 .loc 1 3390 0 5663 0094 C4F88420 str r2, [r4, #132] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5664 .loc 1 3395 0 5665 0098 84F88050 strb r5, [r4, #128] 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 5666 .loc 1 3391 0 5667 009c C4F88820 str r2, [r4, #136] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5668 .loc 1 3392 0 5669 00a0 C4F88C20 str r2, [r4, #140] 5670 .LBE146: 5671 .LBE150: 5672 .LBE155: 5673 .LBE159: ARM GAS /tmp/ccgDLloS.s page 201 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5674 .loc 1 2820 0 5675 00a4 70BD pop {r4, r5, r6, pc} 5676 .LVL396: 5677 .L800: 5678 .LBB160: 5679 .LBB156: 5680 .LBB151: 5681 .LBB147: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5682 .loc 1 3358 0 5683 00a6 DD69 ldr r5, [r3, #28] 5684 00a8 15F48005 ands r5, r5, #4194304 5685 00ac C9D1 bne .L804 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5686 .loc 1 3363 0 5687 00ae FFF7FEFF bl HAL_GetTick 5688 .LVL397: 5689 .LBB138: 5690 .LBB139: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5691 .loc 1 3367 0 5692 00b2 2368 ldr r3, [r4] 5693 .LBE139: 5694 .LBE138: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5695 .loc 1 3363 0 5696 00b4 801B subs r0, r0, r6 5697 00b6 B0F1007F cmp r0, #33554432 5698 .LBB143: 5699 .LBB140: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5700 .loc 1 3367 0 5701 00ba 1A68 ldr r2, [r3] 5702 .LBE140: 5703 .LBE143: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5704 .loc 1 3363 0 5705 00bc 07D2 bcs .L824 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5706 .loc 1 3378 0 5707 00be 5107 lsls r1, r2, #29 5708 00c0 F1D5 bpl .L800 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5709 .loc 1 3380 0 5710 00c2 DA69 ldr r2, [r3, #28] 5711 00c4 1205 lsls r2, r2, #20 5712 00c6 EED5 bpl .L800 5713 00c8 D7E7 b .L825 5714 .LVL398: 5715 .L805: 5716 .LCFI71: 5717 .cfi_def_cfa_offset 0 5718 .cfi_restore 4 5719 .cfi_restore 5 5720 .cfi_restore 6 5721 .cfi_restore 14 ARM GAS /tmp/ccgDLloS.s page 202 5722 .LBE147: 5723 .LBE151: 5724 .LBE156: 5725 .LBE160: 2810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5726 .loc 1 2810 0 5727 00ca 0220 movs r0, #2 5728 .LVL399: 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5729 .loc 1 2820 0 5730 00cc 7047 bx lr 5731 .LVL400: 5732 .L824: 5733 .LCFI72: 5734 .cfi_def_cfa_offset 16 5735 .cfi_offset 4, -16 5736 .cfi_offset 5, -12 5737 .cfi_offset 6, -8 5738 .cfi_offset 14, -4 5739 .LBB161: 5740 .LBB157: 5741 .LBB152: 5742 .LBB148: 5743 .LBB144: 5744 .LBB141: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5745 .loc 1 3367 0 5746 00ce 22F4D072 bic r2, r2, #416 5747 00d2 1A60 str r2, [r3] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5748 .loc 1 3368 0 5749 00d4 9A68 ldr r2, [r3, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5750 .loc 1 3370 0 5751 00d6 2021 movs r1, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5752 .loc 1 3368 0 5753 00d8 22F00102 bic r2, r2, #1 5754 00dc 9A60 str r2, [r3, #8] 5755 .LBE141: 5756 .LBE144: 5757 .LBE148: 5758 .LBE152: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5759 .loc 1 3331 0 5760 00de 0320 movs r0, #3 5761 .LBB153: 5762 .LBB149: 5763 .LBB145: 5764 .LBB142: 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5765 .loc 1 3370 0 5766 00e0 C4F88410 str r1, [r4, #132] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5767 .loc 1 3373 0 5768 00e4 84F88050 strb r5, [r4, #128] 5769 .LVL401: ARM GAS /tmp/ccgDLloS.s page 203 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5770 .loc 1 3371 0 5771 00e8 C4F88810 str r1, [r4, #136] 5772 .LBE142: 5773 .LBE145: 5774 .LBE149: 5775 .LBE153: 5776 .LBE157: 5777 .LBE161: 2820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5778 .loc 1 2820 0 5779 00ec 70BD pop {r4, r5, r6, pc} 5780 .cfi_endproc 5781 .LFE364: 5783 00ee 00BF .section .text.HAL_MultiProcessor_DisableMuteMode,"ax",%progbits 5784 .align 1 5785 .p2align 2,,3 5786 .global HAL_MultiProcessor_DisableMuteMode 5787 .syntax unified 5788 .thumb 5789 .thumb_func 5790 .fpu fpv4-sp-d16 5792 HAL_MultiProcessor_DisableMuteMode: 5793 .LFB365: 2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 5794 .loc 1 2829 0 5795 .cfi_startproc 5796 @ args = 0, pretend = 0, frame = 0 5797 @ frame_needed = 0, uses_anonymous_args = 0 5798 .LVL402: 2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5799 .loc 1 2830 0 5800 0000 90F88030 ldrb r3, [r0, #128] @ zero_extendqisi2 5801 0004 012B cmp r3, #1 5802 0006 60D0 beq .L838 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5803 .loc 1 2835 0 discriminator 2 5804 0008 0268 ldr r2, [r0] 2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5805 .loc 1 2832 0 discriminator 2 5806 000a 2423 movs r3, #36 2829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 5807 .loc 1 2829 0 discriminator 2 5808 000c 70B5 push {r4, r5, r6, lr} 5809 .LCFI73: 5810 .cfi_def_cfa_offset 16 5811 .cfi_offset 4, -16 5812 .cfi_offset 5, -12 5813 .cfi_offset 6, -8 5814 .cfi_offset 14, -4 2832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5815 .loc 1 2832 0 discriminator 2 5816 000e C0F88430 str r3, [r0, #132] 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5817 .loc 1 2835 0 discriminator 2 5818 0012 1368 ldr r3, [r2] 5819 0014 0446 mov r4, r0 ARM GAS /tmp/ccgDLloS.s page 204 5820 0016 23F40053 bic r3, r3, #8192 2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5821 .loc 1 2837 0 discriminator 2 5822 001a 2020 movs r0, #32 5823 .LVL403: 5824 .LBB172: 5825 .LBB173: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5826 .loc 1 3308 0 discriminator 2 5827 001c 0021 movs r1, #0 5828 .LBE173: 5829 .LBE172: 2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5830 .loc 1 2830 0 discriminator 2 5831 001e 0125 movs r5, #1 5832 0020 84F88050 strb r5, [r4, #128] 2835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5833 .loc 1 2835 0 discriminator 2 5834 0024 1360 str r3, [r2] 2837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5835 .loc 1 2837 0 discriminator 2 5836 0026 C4F88400 str r0, [r4, #132] 5837 .LVL404: 5838 .LBB202: 5839 .LBB198: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5840 .loc 1 3308 0 discriminator 2 5841 002a C4F88C10 str r1, [r4, #140] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5842 .loc 1 3311 0 discriminator 2 5843 002e FFF7FEFF bl HAL_GetTick 5844 .LVL405: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5845 .loc 1 3314 0 discriminator 2 5846 0032 2368 ldr r3, [r4] 5847 0034 1A68 ldr r2, [r3] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5848 .loc 1 3311 0 discriminator 2 5849 0036 0646 mov r6, r0 5850 .LVL406: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5851 .loc 1 3314 0 discriminator 2 5852 0038 1007 lsls r0, r2, #28 5853 .LVL407: 5854 003a 0DD4 bmi .L828 5855 .L829: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5856 .loc 1 3325 0 5857 003c 1A68 ldr r2, [r3] 5858 003e 5007 lsls r0, r2, #29 5859 0040 31D4 bmi .L833 5860 .L837: 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5861 .loc 1 3338 0 5862 0042 0023 movs r3, #0 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5863 .loc 1 3336 0 ARM GAS /tmp/ccgDLloS.s page 205 5864 0044 2022 movs r2, #32 5865 0046 C4F88420 str r2, [r4, #132] 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5866 .loc 1 3340 0 5867 004a 84F88030 strb r3, [r4, #128] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5868 .loc 1 3337 0 5869 004e C4F88820 str r2, [r4, #136] 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5870 .loc 1 3342 0 5871 0052 1846 mov r0, r3 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5872 .loc 1 3338 0 5873 0054 E366 str r3, [r4, #108] 5874 .LBE198: 5875 .LBE202: 2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5876 .loc 1 2840 0 5877 0056 70BD pop {r4, r5, r6, pc} 5878 .LVL408: 5879 .L828: 5880 .LBB203: 5881 .LBB199: 5882 .LBB174: 5883 .LBB175: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5884 .loc 1 3358 0 5885 0058 DD69 ldr r5, [r3, #28] 5886 005a 15F40015 ands r5, r5, #2097152 5887 005e EDD1 bne .L829 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5888 .loc 1 3363 0 5889 0060 FFF7FEFF bl HAL_GetTick 5890 .LVL409: 5891 .LBB176: 5892 .LBB177: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5893 .loc 1 3367 0 5894 0064 2368 ldr r3, [r4] 5895 .LBE177: 5896 .LBE176: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5897 .loc 1 3363 0 5898 0066 801B subs r0, r0, r6 5899 0068 B0F1007F cmp r0, #33554432 5900 .LBB179: 5901 .LBB178: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5902 .loc 1 3367 0 5903 006c 1A68 ldr r2, [r3] 5904 .LBE178: 5905 .LBE179: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5906 .loc 1 3363 0 5907 006e 2ED2 bcs .L857 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5908 .loc 1 3378 0 ARM GAS /tmp/ccgDLloS.s page 206 5909 0070 5107 lsls r1, r2, #29 5910 0072 F1D5 bpl .L828 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5911 .loc 1 3380 0 5912 0074 DA69 ldr r2, [r3, #28] 5913 0076 1205 lsls r2, r2, #20 5914 0078 EED5 bpl .L828 5915 .L858: 5916 .LBE175: 5917 .LBE174: 5918 .LBB180: 5919 .LBB181: 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5920 .loc 1 3383 0 5921 007a 4FF40062 mov r2, #2048 5922 007e 1A62 str r2, [r3, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5923 .loc 1 3387 0 5924 0080 1A68 ldr r2, [r3] 5925 0082 22F4D072 bic r2, r2, #416 5926 0086 1A60 str r2, [r3] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5927 .loc 1 3388 0 5928 0088 9968 ldr r1, [r3, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5929 .loc 1 3390 0 5930 008a 2022 movs r2, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5931 .loc 1 3388 0 5932 008c 21F00101 bic r1, r1, #1 5933 0090 9960 str r1, [r3, #8] 5934 .LBE181: 5935 .LBE180: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 5936 .loc 1 3331 0 5937 0092 0320 movs r0, #3 5938 .LBB194: 5939 .LBB190: 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5940 .loc 1 3390 0 5941 0094 C4F88420 str r2, [r4, #132] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5942 .loc 1 3395 0 5943 0098 84F88050 strb r5, [r4, #128] 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 5944 .loc 1 3391 0 5945 009c C4F88820 str r2, [r4, #136] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5946 .loc 1 3392 0 5947 00a0 C4F88C20 str r2, [r4, #140] 5948 .LBE190: 5949 .LBE194: 5950 .LBE199: 5951 .LBE203: 2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 5952 .loc 1 2840 0 5953 00a4 70BD pop {r4, r5, r6, pc} ARM GAS /tmp/ccgDLloS.s page 207 5954 .LVL410: 5955 .L833: 5956 .LBB204: 5957 .LBB200: 5958 .LBB195: 5959 .LBB191: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5960 .loc 1 3358 0 5961 00a6 DD69 ldr r5, [r3, #28] 5962 00a8 15F48005 ands r5, r5, #4194304 5963 00ac C9D1 bne .L837 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5964 .loc 1 3363 0 5965 00ae FFF7FEFF bl HAL_GetTick 5966 .LVL411: 5967 .LBB182: 5968 .LBB183: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5969 .loc 1 3367 0 5970 00b2 2368 ldr r3, [r4] 5971 .LBE183: 5972 .LBE182: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5973 .loc 1 3363 0 5974 00b4 801B subs r0, r0, r6 5975 00b6 B0F1007F cmp r0, #33554432 5976 .LBB187: 5977 .LBB184: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5978 .loc 1 3367 0 5979 00ba 1A68 ldr r2, [r3] 5980 .LBE184: 5981 .LBE187: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5982 .loc 1 3363 0 5983 00bc 07D2 bcs .L857 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5984 .loc 1 3378 0 5985 00be 5107 lsls r1, r2, #29 5986 00c0 F1D5 bpl .L833 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 5987 .loc 1 3380 0 5988 00c2 DA69 ldr r2, [r3, #28] 5989 00c4 1205 lsls r2, r2, #20 5990 00c6 EED5 bpl .L833 5991 00c8 D7E7 b .L858 5992 .LVL412: 5993 .L838: 5994 .LCFI74: 5995 .cfi_def_cfa_offset 0 5996 .cfi_restore 4 5997 .cfi_restore 5 5998 .cfi_restore 6 5999 .cfi_restore 14 6000 .LBE191: 6001 .LBE195: 6002 .LBE200: ARM GAS /tmp/ccgDLloS.s page 208 6003 .LBE204: 2830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6004 .loc 1 2830 0 6005 00ca 0220 movs r0, #2 6006 .LVL413: 2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6007 .loc 1 2840 0 6008 00cc 7047 bx lr 6009 .LVL414: 6010 .L857: 6011 .LCFI75: 6012 .cfi_def_cfa_offset 16 6013 .cfi_offset 4, -16 6014 .cfi_offset 5, -12 6015 .cfi_offset 6, -8 6016 .cfi_offset 14, -4 6017 .LBB205: 6018 .LBB201: 6019 .LBB196: 6020 .LBB192: 6021 .LBB188: 6022 .LBB185: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6023 .loc 1 3367 0 6024 00ce 22F4D072 bic r2, r2, #416 6025 00d2 1A60 str r2, [r3] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6026 .loc 1 3368 0 6027 00d4 9A68 ldr r2, [r3, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 6028 .loc 1 3370 0 6029 00d6 2021 movs r1, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6030 .loc 1 3368 0 6031 00d8 22F00102 bic r2, r2, #1 6032 00dc 9A60 str r2, [r3, #8] 6033 .LBE185: 6034 .LBE188: 6035 .LBE192: 6036 .LBE196: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6037 .loc 1 3331 0 6038 00de 0320 movs r0, #3 6039 .LBB197: 6040 .LBB193: 6041 .LBB189: 6042 .LBB186: 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 6043 .loc 1 3370 0 6044 00e0 C4F88410 str r1, [r4, #132] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6045 .loc 1 3373 0 6046 00e4 84F88050 strb r5, [r4, #128] 6047 .LVL415: 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6048 .loc 1 3371 0 6049 00e8 C4F88810 str r1, [r4, #136] ARM GAS /tmp/ccgDLloS.s page 209 6050 .LBE186: 6051 .LBE189: 6052 .LBE193: 6053 .LBE197: 6054 .LBE201: 6055 .LBE205: 2840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6056 .loc 1 2840 0 6057 00ec 70BD pop {r4, r5, r6, pc} 6058 .cfi_endproc 6059 .LFE365: 6061 00ee 00BF .section .text.HAL_MultiProcessor_EnterMuteMode,"ax",%progbits 6062 .align 1 6063 .p2align 2,,3 6064 .global HAL_MultiProcessor_EnterMuteMode 6065 .syntax unified 6066 .thumb 6067 .thumb_func 6068 .fpu fpv4-sp-d16 6070 HAL_MultiProcessor_EnterMuteMode: 6071 .LFB366: 2849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); 6072 .loc 1 2849 0 6073 .cfi_startproc 6074 @ args = 0, pretend = 0, frame = 0 6075 @ frame_needed = 0, uses_anonymous_args = 0 6076 @ link register save eliminated. 6077 .LVL416: 2850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6078 .loc 1 2850 0 6079 0000 0268 ldr r2, [r0] 6080 0002 9369 ldr r3, [r2, #24] 6081 0004 43F00403 orr r3, r3, #4 6082 0008 9361 str r3, [r2, #24] 2851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6083 .loc 1 2851 0 6084 000a 7047 bx lr 6085 .cfi_endproc 6086 .LFE366: 6088 .section .text.HAL_HalfDuplex_EnableTransmitter,"ax",%progbits 6089 .align 1 6090 .p2align 2,,3 6091 .global HAL_HalfDuplex_EnableTransmitter 6092 .syntax unified 6093 .thumb 6094 .thumb_func 6095 .fpu fpv4-sp-d16 6097 HAL_HalfDuplex_EnableTransmitter: 6098 .LFB367: 2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 6099 .loc 1 2859 0 6100 .cfi_startproc 6101 @ args = 0, pretend = 0, frame = 0 6102 @ frame_needed = 0, uses_anonymous_args = 0 6103 @ link register save eliminated. 6104 .LVL417: 2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; ARM GAS /tmp/ccgDLloS.s page 210 6105 .loc 1 2860 0 6106 0000 90F88020 ldrb r2, [r0, #128] @ zero_extendqisi2 6107 0004 012A cmp r2, #1 6108 0006 16D0 beq .L862 2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6109 .loc 1 2864 0 discriminator 2 6110 0008 0268 ldr r2, [r0] 2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6111 .loc 1 2861 0 discriminator 2 6112 000a 2421 movs r1, #36 2859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 6113 .loc 1 2859 0 discriminator 2 6114 000c 30B4 push {r4, r5} 6115 .LCFI76: 6116 .cfi_def_cfa_offset 8 6117 .cfi_offset 4, -8 6118 .cfi_offset 5, -4 2861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6119 .loc 1 2861 0 discriminator 2 6120 000e C0F88410 str r1, [r0, #132] 2864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6121 .loc 1 2864 0 discriminator 2 6122 0012 1168 ldr r1, [r2] 6123 0014 21F00C01 bic r1, r1, #12 6124 0018 1160 str r1, [r2] 2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6125 .loc 1 2867 0 discriminator 2 6126 001a 1168 ldr r1, [r2] 6127 001c 0346 mov r3, r0 2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6128 .loc 1 2871 0 discriminator 2 6129 001e 0024 movs r4, #0 2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6130 .loc 1 2869 0 discriminator 2 6131 0020 2025 movs r5, #32 2867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6132 .loc 1 2867 0 discriminator 2 6133 0022 41F00801 orr r1, r1, #8 6134 0026 1160 str r1, [r2] 2873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6135 .loc 1 2873 0 discriminator 2 6136 0028 2046 mov r0, r4 6137 .LVL418: 2869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6138 .loc 1 2869 0 discriminator 2 6139 002a C3F88450 str r5, [r3, #132] 2871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6140 .loc 1 2871 0 discriminator 2 6141 002e 83F88040 strb r4, [r3, #128] 2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6142 .loc 1 2874 0 discriminator 2 6143 0032 30BC pop {r4, r5} 6144 .LCFI77: 6145 .cfi_restore 5 6146 .cfi_restore 4 6147 .cfi_def_cfa_offset 0 6148 0034 7047 bx lr ARM GAS /tmp/ccgDLloS.s page 211 6149 .LVL419: 6150 .L862: 2860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 6151 .loc 1 2860 0 6152 0036 0220 movs r0, #2 6153 .LVL420: 2874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6154 .loc 1 2874 0 6155 0038 7047 bx lr 6156 .cfi_endproc 6157 .LFE367: 6159 003a 00BF .section .text.HAL_HalfDuplex_EnableReceiver,"ax",%progbits 6160 .align 1 6161 .p2align 2,,3 6162 .global HAL_HalfDuplex_EnableReceiver 6163 .syntax unified 6164 .thumb 6165 .thumb_func 6166 .fpu fpv4-sp-d16 6168 HAL_HalfDuplex_EnableReceiver: 6169 .LFB368: 2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 6170 .loc 1 2882 0 6171 .cfi_startproc 6172 @ args = 0, pretend = 0, frame = 0 6173 @ frame_needed = 0, uses_anonymous_args = 0 6174 @ link register save eliminated. 6175 .LVL421: 2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 6176 .loc 1 2883 0 6177 0000 90F88020 ldrb r2, [r0, #128] @ zero_extendqisi2 6178 0004 012A cmp r2, #1 6179 0006 16D0 beq .L869 2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6180 .loc 1 2887 0 discriminator 2 6181 0008 0268 ldr r2, [r0] 2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6182 .loc 1 2884 0 discriminator 2 6183 000a 2421 movs r1, #36 2882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** __HAL_LOCK(huart); 6184 .loc 1 2882 0 discriminator 2 6185 000c 30B4 push {r4, r5} 6186 .LCFI78: 6187 .cfi_def_cfa_offset 8 6188 .cfi_offset 4, -8 6189 .cfi_offset 5, -4 2884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6190 .loc 1 2884 0 discriminator 2 6191 000e C0F88410 str r1, [r0, #132] 2887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6192 .loc 1 2887 0 discriminator 2 6193 0012 1168 ldr r1, [r2] 6194 0014 21F00C01 bic r1, r1, #12 6195 0018 1160 str r1, [r2] 2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6196 .loc 1 2890 0 discriminator 2 6197 001a 1168 ldr r1, [r2] ARM GAS /tmp/ccgDLloS.s page 212 6198 001c 0346 mov r3, r0 2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6199 .loc 1 2894 0 discriminator 2 6200 001e 0024 movs r4, #0 2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6201 .loc 1 2892 0 discriminator 2 6202 0020 2025 movs r5, #32 2890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6203 .loc 1 2890 0 discriminator 2 6204 0022 41F00401 orr r1, r1, #4 6205 0026 1160 str r1, [r2] 2896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6206 .loc 1 2896 0 discriminator 2 6207 0028 2046 mov r0, r4 6208 .LVL422: 2892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6209 .loc 1 2892 0 discriminator 2 6210 002a C3F88450 str r5, [r3, #132] 2894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6211 .loc 1 2894 0 discriminator 2 6212 002e 83F88040 strb r4, [r3, #128] 2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6213 .loc 1 2897 0 discriminator 2 6214 0032 30BC pop {r4, r5} 6215 .LCFI79: 6216 .cfi_restore 5 6217 .cfi_restore 4 6218 .cfi_def_cfa_offset 0 6219 0034 7047 bx lr 6220 .LVL423: 6221 .L869: 2883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 6222 .loc 1 2883 0 6223 0036 0220 movs r0, #2 6224 .LVL424: 2897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6225 .loc 1 2897 0 6226 0038 7047 bx lr 6227 .cfi_endproc 6228 .LFE368: 6230 003a 00BF .section .text.HAL_LIN_SendBreak,"ax",%progbits 6231 .align 1 6232 .p2align 2,,3 6233 .global HAL_LIN_SendBreak 6234 .syntax unified 6235 .thumb 6236 .thumb_func 6237 .fpu fpv4-sp-d16 6239 HAL_LIN_SendBreak: 6240 .LFB369: 2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ 6241 .loc 1 2906 0 6242 .cfi_startproc 6243 @ args = 0, pretend = 0, frame = 0 6244 @ frame_needed = 0, uses_anonymous_args = 0 6245 @ link register save eliminated. 6246 .LVL425: ARM GAS /tmp/ccgDLloS.s page 213 2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6247 .loc 1 2910 0 6248 0000 90F88020 ldrb r2, [r0, #128] @ zero_extendqisi2 6249 0004 012A cmp r2, #1 6250 0006 13D0 beq .L876 6251 0008 0346 mov r3, r0 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6252 .loc 1 2912 0 discriminator 2 6253 000a 2422 movs r2, #36 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6254 .loc 1 2915 0 discriminator 2 6255 000c 0068 ldr r0, [r0] 6256 .LVL426: 2906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the parameters */ 6257 .loc 1 2906 0 discriminator 2 6258 000e 10B4 push {r4} 6259 .LCFI80: 6260 .cfi_def_cfa_offset 4 6261 .cfi_offset 4, -4 2912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6262 .loc 1 2912 0 discriminator 2 6263 0010 C3F88420 str r2, [r3, #132] 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6264 .loc 1 2915 0 discriminator 2 6265 0014 8269 ldr r2, [r0, #24] 2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6266 .loc 1 2917 0 discriminator 2 6267 0016 2024 movs r4, #32 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6268 .loc 1 2919 0 discriminator 2 6269 0018 0021 movs r1, #0 2915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6270 .loc 1 2915 0 discriminator 2 6271 001a 42F00202 orr r2, r2, #2 6272 001e 8261 str r2, [r0, #24] 2921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6273 .loc 1 2921 0 discriminator 2 6274 0020 0846 mov r0, r1 2917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6275 .loc 1 2917 0 discriminator 2 6276 0022 C3F88440 str r4, [r3, #132] 2919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6277 .loc 1 2919 0 discriminator 2 6278 0026 83F88010 strb r1, [r3, #128] 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6279 .loc 1 2922 0 discriminator 2 6280 002a 5DF8044B ldr r4, [sp], #4 6281 .LCFI81: 6282 .cfi_restore 4 6283 .cfi_def_cfa_offset 0 6284 002e 7047 bx lr 6285 .LVL427: 6286 .L876: 2910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6287 .loc 1 2910 0 6288 0030 0220 movs r0, #2 6289 .LVL428: ARM GAS /tmp/ccgDLloS.s page 214 2922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6290 .loc 1 2922 0 6291 0032 7047 bx lr 6292 .cfi_endproc 6293 .LFE369: 6295 .section .text.HAL_UART_GetState,"ax",%progbits 6296 .align 1 6297 .p2align 2,,3 6298 .global HAL_UART_GetState 6299 .syntax unified 6300 .thumb 6301 .thumb_func 6302 .fpu fpv4-sp-d16 6304 HAL_UART_GetState: 6305 .LFB370: 2951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t temp1; 6306 .loc 1 2951 0 6307 .cfi_startproc 6308 @ args = 0, pretend = 0, frame = 0 6309 @ frame_needed = 0, uses_anonymous_args = 0 6310 @ link register save eliminated. 6311 .LVL429: 2954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** temp2 = huart->RxState; 6312 .loc 1 2954 0 6313 0000 D0F88420 ldr r2, [r0, #132] 6314 .LVL430: 2955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6315 .loc 1 2955 0 6316 0004 D0F88800 ldr r0, [r0, #136] 6317 .LVL431: 2958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6318 .loc 1 2958 0 6319 0008 1043 orrs r0, r0, r2 6320 .LVL432: 6321 000a 7047 bx lr 6322 .cfi_endproc 6323 .LFE370: 6325 .section .text.HAL_UART_GetError,"ax",%progbits 6326 .align 1 6327 .p2align 2,,3 6328 .global HAL_UART_GetError 6329 .syntax unified 6330 .thumb 6331 .thumb_func 6332 .fpu fpv4-sp-d16 6334 HAL_UART_GetError: 6335 .LFB371: 2967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** return huart->ErrorCode; 6336 .loc 1 2967 0 6337 .cfi_startproc 6338 @ args = 0, pretend = 0, frame = 0 6339 @ frame_needed = 0, uses_anonymous_args = 0 6340 @ link register save eliminated. 6341 .LVL433: 2968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6342 .loc 1 2968 0 6343 0000 D0F88C00 ldr r0, [r0, #140] ARM GAS /tmp/ccgDLloS.s page 215 6344 .LVL434: 2969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /** 6345 .loc 1 2969 0 6346 0004 7047 bx lr 6347 .cfi_endproc 6348 .LFE371: 6350 .global __aeabi_uldivmod 6351 .global __aeabi_ldivmod 6352 0006 00BF .section .text.UART_SetConfig,"ax",%progbits 6353 .align 1 6354 .p2align 2,,3 6355 .global UART_SetConfig 6356 .syntax unified 6357 .thumb 6358 .thumb_func 6359 .fpu fpv4-sp-d16 6361 UART_SetConfig: 6362 .LFB372: 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tmpreg; 6363 .loc 1 3013 0 6364 .cfi_startproc 6365 @ args = 0, pretend = 0, frame = 0 6366 @ frame_needed = 0, uses_anonymous_args = 0 6367 .LVL435: 3025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6368 .loc 1 3025 0 6369 0000 0368 ldr r3, [r0] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 6370 .loc 1 3048 0 6371 0002 8268 ldr r2, [r0, #8] 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6372 .loc 1 3049 0 6373 0004 AB49 ldr r1, .L963 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tmpreg; 6374 .loc 1 3013 0 6375 0006 2DE9F041 push {r4, r5, r6, r7, r8, lr} 6376 .LCFI82: 6377 .cfi_def_cfa_offset 24 6378 .cfi_offset 4, -24 6379 .cfi_offset 5, -20 6380 .cfi_offset 6, -16 6381 .cfi_offset 7, -12 6382 .cfi_offset 8, -8 6383 .cfi_offset 14, -4 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 6384 .loc 1 3048 0 6385 000a 0569 ldr r5, [r0, #16] 6386 000c 4669 ldr r6, [r0, #20] 3013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tmpreg; 6387 .loc 1 3013 0 6388 000e 0446 mov r4, r0 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 6389 .loc 1 3048 0 6390 0010 2A43 orrs r2, r2, r5 6391 0012 C069 ldr r0, [r0, #28] 6392 .LVL436: 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 216 6393 .loc 1 3049 0 6394 0014 1D68 ldr r5, [r3] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 6395 .loc 1 3048 0 6396 0016 3243 orrs r2, r2, r6 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6397 .loc 1 3049 0 6398 0018 2940 ands r1, r1, r5 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 6399 .loc 1 3048 0 6400 001a 0243 orrs r2, r2, r0 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6401 .loc 1 3049 0 6402 001c 0A43 orrs r2, r2, r1 6403 001e 1A60 str r2, [r3] 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6404 .loc 1 3054 0 6405 0020 5A68 ldr r2, [r3, #4] 6406 0022 E568 ldr r5, [r4, #12] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6407 .loc 1 3064 0 6408 0024 A449 ldr r1, .L963+4 3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6409 .loc 1 3062 0 6410 0026 A669 ldr r6, [r4, #24] 6411 .LVL437: 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6412 .loc 1 3054 0 6413 0028 22F44052 bic r2, r2, #12288 6414 002c 2A43 orrs r2, r2, r5 6415 002e 5A60 str r2, [r3, #4] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6416 .loc 1 3064 0 6417 0030 8B42 cmp r3, r1 6418 0032 656A ldr r5, [r4, #36] 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6419 .loc 1 3068 0 6420 0034 9968 ldr r1, [r3, #8] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6421 .loc 1 3064 0 6422 0036 3FD0 beq .L884 6423 .LVL438: 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6424 .loc 1 3066 0 6425 0038 226A ldr r2, [r4, #32] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6426 .loc 1 3076 0 6427 003a A04F ldr r7, .L963+8 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6428 .loc 1 3068 0 6429 003c 21F06E41 bic r1, r1, #-301989888 6430 0040 21F43061 bic r1, r1, #2816 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6431 .loc 1 3066 0 6432 0044 3243 orrs r2, r2, r6 6433 .LVL439: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 217 6434 .loc 1 3068 0 6435 0046 0A43 orrs r2, r2, r1 6436 .LVL440: 6437 0048 9A60 str r2, [r3, #8] 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6438 .loc 1 3073 0 6439 004a DA6A ldr r2, [r3, #44] 6440 004c 22F00F02 bic r2, r2, #15 6441 0050 2A43 orrs r2, r2, r5 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6442 .loc 1 3076 0 6443 0052 BB42 cmp r3, r7 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6444 .loc 1 3073 0 6445 0054 DA62 str r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6446 .loc 1 3076 0 6447 0056 00F0D980 beq .L885 6448 .LVL441: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6449 .loc 1 3076 0 is_stmt 0 discriminator 2 6450 005a 994A ldr r2, .L963+12 6451 005c 9342 cmp r3, r2 6452 005e 09D0 beq .L957 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6453 .loc 1 3076 0 discriminator 14 6454 0060 984A ldr r2, .L963+16 6455 0062 9342 cmp r3, r2 6456 0064 00F0DA80 beq .L958 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6457 .loc 1 3076 0 discriminator 26 6458 0068 974A ldr r2, .L963+20 6459 006a 9342 cmp r3, r2 6460 006c 00F0BB80 beq .L959 6461 .L902: 3194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6462 .loc 1 3194 0 is_stmt 1 6463 0070 0120 movs r0, #1 6464 0072 9EE0 b .L895 6465 .L957: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6466 .loc 1 3076 0 discriminator 13 6467 0074 954B ldr r3, .L963+24 6468 0076 964A ldr r2, .L963+28 6469 0078 D3F88830 ldr r3, [r3, #136] 6470 007c 03F00C03 and r3, r3, #12 6471 0080 D35C ldrb r3, [r2, r3] @ zero_extendqisi2 6472 .LVL442: 6473 .L887: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6474 .loc 1 3132 0 6475 0082 B0F5004F cmp r0, #32768 6476 0086 63D0 beq .L960 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6477 .loc 1 3175 0 6478 0088 082B cmp r3, #8 6479 008a F1D8 bhi .L902 ARM GAS /tmp/ccgDLloS.s page 218 6480 008c 01A2 adr r2, .L919 6481 008e 52F823F0 ldr pc, [r2, r3, lsl #2] 6482 0092 00BF .p2align 2 6483 .L919: 6484 0094 E1010000 .word .L897+1 6485 0098 81010000 .word .L920+1 6486 009c B1020000 .word .L921+1 6487 00a0 71000000 .word .L902+1 6488 00a4 C9010000 .word .L899+1 6489 00a8 71000000 .word .L902+1 6490 00ac 71000000 .word .L902+1 6491 00b0 71000000 .word .L902+1 6492 00b4 3D020000 .word .L930+1 6493 .LVL443: 6494 .p2align 1 6495 .L884: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6496 .loc 1 3068 0 6497 00b8 21F06E41 bic r1, r1, #-301989888 6498 00bc 21F43061 bic r1, r1, #2816 6499 00c0 3143 orrs r1, r1, r6 6500 00c2 9960 str r1, [r3, #8] 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6501 .loc 1 3073 0 6502 00c4 DA6A ldr r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6503 .loc 1 3076 0 6504 00c6 8148 ldr r0, .L963+24 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6505 .loc 1 3073 0 6506 00c8 22F00F02 bic r2, r2, #15 6507 00cc 2A43 orrs r2, r2, r5 6508 00ce DA62 str r2, [r3, #44] 6509 .LVL444: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6510 .loc 1 3076 0 6511 00d0 D0F88830 ldr r3, [r0, #136] 6512 00d4 03F44063 and r3, r3, #3072 6513 00d8 B3F5806F cmp r3, #1024 6514 00dc 00F0B380 beq .L910 6515 00e0 2ED9 bls .L961 6516 00e2 B3F5006F cmp r3, #2048 6517 00e6 00F0AC80 beq .L931 6518 00ea B3F5406F cmp r3, #3072 6519 00ee BFD1 bne .L902 3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6520 .loc 1 3094 0 6521 00f0 4FF40040 mov r0, #32768 6522 .L912: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 6523 .loc 1 3109 0 6524 00f4 6668 ldr r6, [r4, #4] 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6525 .loc 1 3106 0 6526 00f6 774B ldr r3, .L963+32 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 6527 .loc 1 3109 0 ARM GAS /tmp/ccgDLloS.s page 219 6528 00f8 06EB4601 add r1, r6, r6, lsl #1 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6529 .loc 1 3106 0 6530 00fc 33F81520 ldrh r2, [r3, r5, lsl #1] 6531 0100 B0FBF2F3 udiv r3, r0, r2 6532 .LVL445: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 6533 .loc 1 3109 0 6534 0104 9942 cmp r1, r3 6535 0106 B3D8 bhi .L902 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 6536 .loc 1 3109 0 is_stmt 0 discriminator 1 6537 0108 B3EB063F cmp r3, r6, lsl #12 6538 010c B0D8 bhi .L902 3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) 6539 .loc 1 3118 0 is_stmt 1 6540 010e 0023 movs r3, #0 6541 .LVL446: 6542 0110 0021 movs r1, #0 6543 0112 FFF7FEFF bl __aeabi_uldivmod 6544 .LVL447: 6545 0116 0B02 lsls r3, r1, #8 6546 0118 43EA1063 orr r3, r3, r0, lsr #24 6547 011c 0202 lsls r2, r0, #8 6548 011e 7008 lsrs r0, r6, #1 6549 0120 1718 adds r7, r2, r0 6550 0122 43F10008 adc r8, r3, #0 6551 0126 3246 mov r2, r6 6552 0128 0023 movs r3, #0 6553 012a 3846 mov r0, r7 6554 012c 4146 mov r1, r8 6555 012e FFF7FEFF bl __aeabi_uldivmod 6556 .LVL448: 3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6557 .loc 1 3119 0 6558 0132 694A ldr r2, .L963+36 6559 0134 A0F54071 sub r1, r0, #768 6560 0138 9142 cmp r1, r2 3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) 6561 .loc 1 3118 0 6562 013a 0346 mov r3, r0 6563 .LVL449: 3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6564 .loc 1 3119 0 6565 013c 98D8 bhi .L902 6566 013e 35E0 b .L954 6567 .LVL450: 6568 .L961: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6569 .loc 1 3076 0 6570 0140 002B cmp r3, #0 6571 0142 95D1 bne .L902 3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6572 .loc 1 3085 0 6573 0144 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 6574 .LVL451: 6575 .L909: ARM GAS /tmp/ccgDLloS.s page 220 3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6576 .loc 1 3103 0 6577 0148 0028 cmp r0, #0 6578 014a 41D0 beq .L955 6579 014c 656A ldr r5, [r4, #36] 6580 014e D1E7 b .L912 6581 .LVL452: 6582 .L960: 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6583 .loc 1 3134 0 6584 0150 082B cmp r3, #8 6585 0152 8DD8 bhi .L902 6586 0154 01A2 adr r2, .L914 6587 0156 52F823F0 ldr pc, [r2, r3, lsl #2] 6588 015a 00BF .p2align 2 6589 .L914: 6590 015c 9B020000 .word .L896+1 6591 0160 4D020000 .word .L915+1 6592 0164 A7020000 .word .L916+1 6593 0168 71000000 .word .L902+1 6594 016c A1020000 .word .L898+1 6595 0170 71000000 .word .L902+1 6596 0174 71000000 .word .L902+1 6597 0178 71000000 .word .L902+1 6598 017c AB020000 .word .L929+1 6599 .p2align 1 6600 .L920: 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6601 .loc 1 3181 0 6602 0180 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 6603 .LVL453: 6604 .L922: 3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6605 .loc 1 3198 0 6606 0184 20B3 cbz r0, .L955 6607 .L962: 6608 0186 656A ldr r5, [r4, #36] 6609 .LVL454: 6610 .L901: 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 6611 .loc 1 3201 0 6612 0188 6268 ldr r2, [r4, #4] 6613 018a 524B ldr r3, .L963+32 6614 018c 33F81530 ldrh r3, [r3, r5, lsl #1] 6615 0190 B0FBF3F3 udiv r3, r0, r3 6616 0194 03EB5203 add r3, r3, r2, lsr #1 6617 0198 B3FBF2F3 udiv r3, r3, r2 6618 019c 9BB2 uxth r3, r3 6619 .LVL455: 3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6620 .loc 1 3202 0 6621 019e A3F11001 sub r1, r3, #16 6622 01a2 4FF6EF72 movw r2, #65519 6623 01a6 9142 cmp r1, r2 6624 01a8 3FF662AF bhi .L902 6625 .L954: 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } ARM GAS /tmp/ccgDLloS.s page 221 6626 .loc 1 3204 0 6627 01ac 2268 ldr r2, [r4] 6628 01ae 0020 movs r0, #0 6629 01b0 D360 str r3, [r2, #12] 6630 .LVL456: 6631 .L895: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6632 .loc 1 3215 0 6633 01b2 4FF00112 mov r2, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 6634 .loc 1 3218 0 6635 01b6 0023 movs r3, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6636 .loc 1 3215 0 6637 01b8 A266 str r2, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6638 .loc 1 3219 0 6639 01ba C4E91C33 strd r3, r3, [r4, #112] 3222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6640 .loc 1 3222 0 6641 01be BDE8F081 pop {r4, r5, r6, r7, r8, pc} 6642 .LVL457: 6643 .L903: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6644 .loc 1 3132 0 6645 01c2 B0F5004F cmp r0, #32768 6646 01c6 6BD0 beq .L898 6647 .LVL458: 6648 .L899: 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6649 .loc 1 3187 0 6650 01c8 FFF7FEFF bl HAL_RCC_GetSysClockFreq 6651 .LVL459: 3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6652 .loc 1 3198 0 6653 01cc 0028 cmp r0, #0 6654 01ce DAD1 bne .L962 6655 .LVL460: 6656 .L955: 6657 01d0 0020 movs r0, #0 6658 01d2 EEE7 b .L895 6659 .L956: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6660 .loc 1 3076 0 discriminator 37 6661 01d4 002B cmp r3, #0 6662 01d6 7FF44BAF bne .L902 6663 .LVL461: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6664 .loc 1 3132 0 6665 01da B0F5004F cmp r0, #32768 6666 01de 5CD0 beq .L896 6667 .LVL462: 6668 .L897: 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6669 .loc 1 3178 0 6670 01e0 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 6671 .LVL463: ARM GAS /tmp/ccgDLloS.s page 222 3179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2: 6672 .loc 1 3179 0 6673 01e4 CEE7 b .L922 6674 .LVL464: 6675 .L959: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6676 .loc 1 3076 0 discriminator 37 6677 01e6 394B ldr r3, .L963+24 6678 01e8 D3F88830 ldr r3, [r3, #136] 6679 01ec 03F0C003 and r3, r3, #192 6680 01f0 402B cmp r3, #64 6681 01f2 E6D0 beq .L903 6682 01f4 EED9 bls .L956 6683 01f6 802B cmp r3, #128 6684 01f8 49D0 beq .L893 6685 01fa C02B cmp r3, #192 6686 01fc 7FF438AF bne .L902 6687 .LVL465: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6688 .loc 1 3132 0 6689 0200 B0F5004F cmp r0, #32768 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6690 .loc 1 3149 0 6691 0204 4FF40040 mov r0, #32768 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6692 .loc 1 3132 0 6693 0208 BED1 bne .L901 6694 020a 24E0 b .L900 6695 .LVL466: 6696 .L885: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6697 .loc 1 3076 0 6698 020c 2F4B ldr r3, .L963+24 6699 020e 334A ldr r2, .L963+40 6700 0210 D3F88830 ldr r3, [r3, #136] 6701 0214 03F00303 and r3, r3, #3 6702 0218 D35C ldrb r3, [r2, r3] @ zero_extendqisi2 6703 .LVL467: 6704 021a 32E7 b .L887 6705 .LVL468: 6706 .L958: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6707 .loc 1 3076 0 is_stmt 0 discriminator 25 6708 021c 2B4B ldr r3, .L963+24 6709 021e D3F88830 ldr r3, [r3, #136] 6710 0222 03F03003 and r3, r3, #48 6711 0226 102B cmp r3, #16 6712 0228 CBD0 beq .L903 6713 022a D3D9 bls .L956 6714 022c 202B cmp r3, #32 6715 022e 2ED0 beq .L893 6716 0230 302B cmp r3, #48 6717 0232 7FF41DAF bne .L902 6718 .LVL469: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6719 .loc 1 3132 0 is_stmt 1 6720 0236 B0F5004F cmp r0, #32768 ARM GAS /tmp/ccgDLloS.s page 223 6721 023a 0CD0 beq .L900 6722 .LVL470: 6723 .L930: 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6724 .loc 1 3190 0 6725 023c 4FF40040 mov r0, #32768 6726 0240 A2E7 b .L901 6727 .L931: 3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6728 .loc 1 3088 0 6729 0242 2748 ldr r0, .L963+44 6730 0244 56E7 b .L912 6731 .L910: 3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6732 .loc 1 3091 0 6733 0246 FFF7FEFF bl HAL_RCC_GetSysClockFreq 6734 .LVL471: 3092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: 6735 .loc 1 3092 0 6736 024a 7DE7 b .L909 6737 .LVL472: 6738 .L915: 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6739 .loc 1 3140 0 6740 024c FFF7FEFF bl HAL_RCC_GetPCLK2Freq 6741 .LVL473: 6742 .L917: 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6743 .loc 1 3158 0 6744 0250 0028 cmp r0, #0 6745 0252 BDD0 beq .L955 6746 0254 656A ldr r5, [r4, #36] 6747 .LVL474: 6748 .L900: 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 6749 .loc 1 3160 0 6750 0256 6268 ldr r2, [r4, #4] 6751 0258 1E49 ldr r1, .L963+32 6752 025a 5308 lsrs r3, r2, #1 6753 025c 31F81510 ldrh r1, [r1, r5, lsl #1] 6754 0260 B0FBF1F0 udiv r0, r0, r1 6755 0264 03EB4003 add r3, r3, r0, lsl #1 6756 0268 B3FBF2F3 udiv r3, r3, r2 6757 026c 9AB2 uxth r2, r3 6758 .LVL475: 3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6759 .loc 1 3161 0 6760 026e A2F11000 sub r0, r2, #16 6761 0272 4FF6EF71 movw r1, #65519 6762 0276 8842 cmp r0, r1 6763 0278 3FF6FAAE bhi .L902 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); 6764 .loc 1 3163 0 6765 027c 23F00F03 bic r3, r3, #15 6766 0280 9BB2 uxth r3, r3 6767 .LVL476: 3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; ARM GAS /tmp/ccgDLloS.s page 224 6768 .loc 1 3164 0 6769 0282 C2F34202 ubfx r2, r2, #1, #3 6770 .LVL477: 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6771 .loc 1 3165 0 6772 0286 2168 ldr r1, [r4] 6773 0288 1343 orrs r3, r3, r2 6774 .LVL478: 6775 028a CB60 str r3, [r1, #12] 6776 028c A0E7 b .L955 6777 .LVL479: 6778 .L893: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6779 .loc 1 3132 0 6780 028e B0F5004F cmp r0, #32768 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6781 .loc 1 3143 0 6782 0292 1348 ldr r0, .L963+44 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6783 .loc 1 3132 0 6784 0294 7FF478AF bne .L901 6785 0298 DDE7 b .L900 6786 .LVL480: 6787 .L896: 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6788 .loc 1 3137 0 6789 029a FFF7FEFF bl HAL_RCC_GetPCLK1Freq 6790 .LVL481: 3138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2: 6791 .loc 1 3138 0 6792 029e D7E7 b .L917 6793 .LVL482: 6794 .L898: 3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6795 .loc 1 3146 0 6796 02a0 FFF7FEFF bl HAL_RCC_GetSysClockFreq 6797 .LVL483: 3147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE: 6798 .loc 1 3147 0 6799 02a4 D4E7 b .L917 6800 .LVL484: 6801 .L916: 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6802 .loc 1 3143 0 6803 02a6 0E48 ldr r0, .L963+44 6804 02a8 D5E7 b .L900 6805 .L929: 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6806 .loc 1 3149 0 6807 02aa 4FF40040 mov r0, #32768 6808 02ae D2E7 b .L900 6809 .L921: 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 6810 .loc 1 3184 0 6811 02b0 0B48 ldr r0, .L963+44 6812 02b2 69E7 b .L901 6813 .L964: ARM GAS /tmp/ccgDLloS.s page 225 6814 .align 2 6815 .L963: 6816 02b4 F369FFCF .word -805344781 6817 02b8 00800040 .word 1073774592 6818 02bc 00380140 .word 1073821696 6819 02c0 00440040 .word 1073759232 6820 02c4 00480040 .word 1073760256 6821 02c8 004C0040 .word 1073761280 6822 02cc 00100240 .word 1073876992 6823 02d0 00000000 .word .LANCHOR0 6824 02d4 00000000 .word .LANCHOR1 6825 02d8 FFFC0F00 .word 1047807 6826 02dc 00000000 .word .LANCHOR2 6827 02e0 0024F400 .word 16000000 6828 .cfi_endproc 6829 .LFE372: 6831 .section .text.UART_AdvFeatureConfig,"ax",%progbits 6832 .align 1 6833 .p2align 2,,3 6834 .global UART_AdvFeatureConfig 6835 .syntax unified 6836 .thumb 6837 .thumb_func 6838 .fpu fpv4-sp-d16 6840 UART_AdvFeatureConfig: 6841 .LFB373: 3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check whether the set of advanced features to configure is properly set */ 6842 .loc 1 3230 0 6843 .cfi_startproc 6844 @ args = 0, pretend = 0, frame = 0 6845 @ frame_needed = 0, uses_anonymous_args = 0 6846 @ link register save eliminated. 6847 .LVL485: 3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6848 .loc 1 3235 0 6849 0000 836A ldr r3, [r0, #40] 6850 0002 DA07 lsls r2, r3, #31 3230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check whether the set of advanced features to configure is properly set */ 6851 .loc 1 3230 0 6852 0004 10B4 push {r4} 6853 .LCFI83: 6854 .cfi_def_cfa_offset 4 6855 .cfi_offset 4, -4 3235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6856 .loc 1 3235 0 6857 0006 06D5 bpl .L966 3238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6858 .loc 1 3238 0 6859 0008 0168 ldr r1, [r0] 6860 000a C46A ldr r4, [r0, #44] 6861 000c 4A68 ldr r2, [r1, #4] 6862 000e 22F40032 bic r2, r2, #131072 6863 0012 2243 orrs r2, r2, r4 6864 0014 4A60 str r2, [r1, #4] 6865 .L966: 3242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6866 .loc 1 3242 0 ARM GAS /tmp/ccgDLloS.s page 226 6867 0016 9C07 lsls r4, r3, #30 6868 0018 06D5 bpl .L967 3245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6869 .loc 1 3245 0 6870 001a 0168 ldr r1, [r0] 6871 001c 046B ldr r4, [r0, #48] 6872 001e 4A68 ldr r2, [r1, #4] 6873 0020 22F48032 bic r2, r2, #65536 6874 0024 2243 orrs r2, r2, r4 6875 0026 4A60 str r2, [r1, #4] 6876 .L967: 3249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6877 .loc 1 3249 0 6878 0028 5907 lsls r1, r3, #29 6879 002a 06D5 bpl .L968 3252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6880 .loc 1 3252 0 6881 002c 0168 ldr r1, [r0] 6882 002e 446B ldr r4, [r0, #52] 6883 0030 4A68 ldr r2, [r1, #4] 6884 0032 22F48022 bic r2, r2, #262144 6885 0036 2243 orrs r2, r2, r4 6886 0038 4A60 str r2, [r1, #4] 6887 .L968: 3256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6888 .loc 1 3256 0 6889 003a 1A07 lsls r2, r3, #28 6890 003c 06D5 bpl .L969 3259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6891 .loc 1 3259 0 6892 003e 0168 ldr r1, [r0] 6893 0040 846B ldr r4, [r0, #56] 6894 0042 4A68 ldr r2, [r1, #4] 6895 0044 22F40042 bic r2, r2, #32768 6896 0048 2243 orrs r2, r2, r4 6897 004a 4A60 str r2, [r1, #4] 6898 .L969: 3263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6899 .loc 1 3263 0 6900 004c DC06 lsls r4, r3, #27 6901 004e 06D5 bpl .L970 3266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6902 .loc 1 3266 0 6903 0050 0168 ldr r1, [r0] 6904 0052 C46B ldr r4, [r0, #60] 6905 0054 8A68 ldr r2, [r1, #8] 6906 0056 22F48052 bic r2, r2, #4096 6907 005a 2243 orrs r2, r2, r4 6908 005c 8A60 str r2, [r1, #8] 6909 .L970: 3270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6910 .loc 1 3270 0 6911 005e 9906 lsls r1, r3, #26 6912 0060 06D5 bpl .L971 3273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6913 .loc 1 3273 0 6914 0062 0168 ldr r1, [r0] ARM GAS /tmp/ccgDLloS.s page 227 6915 0064 046C ldr r4, [r0, #64] 6916 0066 8A68 ldr r2, [r1, #8] 6917 0068 22F40052 bic r2, r2, #8192 6918 006c 2243 orrs r2, r2, r4 6919 006e 8A60 str r2, [r1, #8] 6920 .L971: 3277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6921 .loc 1 3277 0 6922 0070 5A06 lsls r2, r3, #25 6923 0072 09D5 bpl .L973 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* set auto Baudrate detection parameters if detection is enabled */ 6924 .loc 1 3281 0 6925 0074 0168 ldr r1, [r0] 6926 0076 446C ldr r4, [r0, #68] 6927 0078 4A68 ldr r2, [r1, #4] 6928 007a 22F48012 bic r2, r2, #1048576 6929 007e 2243 orrs r2, r2, r4 3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6930 .loc 1 3283 0 6931 0080 B4F5801F cmp r4, #1048576 3281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* set auto Baudrate detection parameters if detection is enabled */ 6932 .loc 1 3281 0 6933 0084 4A60 str r2, [r1, #4] 3283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6934 .loc 1 3283 0 6935 0086 0BD0 beq .L998 6936 .L973: 3291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6937 .loc 1 3291 0 6938 0088 1B06 lsls r3, r3, #24 6939 008a 06D5 bpl .L965 3294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6940 .loc 1 3294 0 6941 008c 0268 ldr r2, [r0] 6942 008e C16C ldr r1, [r0, #76] 6943 0090 5368 ldr r3, [r2, #4] 6944 0092 23F40023 bic r3, r3, #524288 6945 0096 0B43 orrs r3, r3, r1 6946 0098 5360 str r3, [r2, #4] 6947 .L965: 3296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 6948 .loc 1 3296 0 6949 009a 5DF8044B ldr r4, [sp], #4 6950 .LCFI84: 6951 .cfi_remember_state 6952 .cfi_restore 4 6953 .cfi_def_cfa_offset 0 6954 009e 7047 bx lr 6955 .L998: 6956 .LCFI85: 6957 .cfi_restore_state 3286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 6958 .loc 1 3286 0 6959 00a0 4A68 ldr r2, [r1, #4] 6960 00a2 846C ldr r4, [r0, #72] 6961 00a4 22F4C002 bic r2, r2, #6291456 6962 00a8 2243 orrs r2, r2, r4 ARM GAS /tmp/ccgDLloS.s page 228 6963 00aa 4A60 str r2, [r1, #4] 6964 00ac ECE7 b .L973 6965 .cfi_endproc 6966 .LFE373: 6968 00ae 00BF .section .text.HAL_UART_Init,"ax",%progbits 6969 .align 1 6970 .p2align 2,,3 6971 .global HAL_UART_Init 6972 .syntax unified 6973 .thumb 6974 .thumb_func 6975 .fpu fpv4-sp-d16 6977 HAL_UART_Init: 6978 .LFB329: 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 6979 .loc 1 308 0 6980 .cfi_startproc 6981 @ args = 0, pretend = 0, frame = 0 6982 @ frame_needed = 0, uses_anonymous_args = 0 6983 .LVL486: 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6984 .loc 1 310 0 6985 0000 0028 cmp r0, #0 6986 0002 50D0 beq .L1053 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 6987 .loc 1 326 0 6988 0004 D0F88430 ldr r3, [r0, #132] 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 6989 .loc 1 308 0 6990 0008 2DE9F041 push {r4, r5, r6, r7, r8, lr} 6991 .LCFI86: 6992 .cfi_def_cfa_offset 24 6993 .cfi_offset 4, -24 6994 .cfi_offset 5, -20 6995 .cfi_offset 6, -16 6996 .cfi_offset 7, -12 6997 .cfi_offset 8, -8 6998 .cfi_offset 14, -4 6999 000c 0446 mov r4, r0 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7000 .loc 1 326 0 7001 000e 002B cmp r3, #0 7002 0010 44D0 beq .L1110 7003 .LVL487: 7004 .L1001: 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7005 .loc 1 349 0 7006 0012 2368 ldr r3, [r4] 7007 .LBB218: 7008 .LBB219: 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 7009 .loc 1 3048 0 7010 0014 2769 ldr r7, [r4, #16] 7011 0016 6669 ldr r6, [r4, #20] 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7012 .loc 1 3049 0 7013 0018 BD49 ldr r1, .L1117 ARM GAS /tmp/ccgDLloS.s page 229 7014 .LBE219: 7015 .LBE218: 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7016 .loc 1 347 0 7017 001a 2422 movs r2, #36 7018 001c C4F88420 str r2, [r4, #132] 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7019 .loc 1 349 0 7020 0020 1868 ldr r0, [r3] 7021 .LBB226: 7022 .LBB220: 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 7023 .loc 1 3048 0 7024 0022 A268 ldr r2, [r4, #8] 7025 .LBE220: 7026 .LBE226: 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7027 .loc 1 349 0 7028 0024 20F00100 bic r0, r0, #1 7029 0028 1860 str r0, [r3] 7030 .LVL488: 7031 .LBB227: 7032 .LBB221: 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7033 .loc 1 3049 0 7034 002a 1D68 ldr r5, [r3] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 7035 .loc 1 3048 0 7036 002c E069 ldr r0, [r4, #28] 7037 .LVL489: 7038 002e 3A43 orrs r2, r2, r7 7039 0030 3243 orrs r2, r2, r6 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7040 .loc 1 3049 0 7041 0032 2940 ands r1, r1, r5 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 7042 .loc 1 3048 0 7043 0034 0243 orrs r2, r2, r0 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7044 .loc 1 3049 0 7045 0036 0A43 orrs r2, r2, r1 7046 0038 1A60 str r2, [r3] 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7047 .loc 1 3054 0 7048 003a 5A68 ldr r2, [r3, #4] 7049 003c E168 ldr r1, [r4, #12] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7050 .loc 1 3064 0 7051 003e B54E ldr r6, .L1117+4 3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7052 .loc 1 3062 0 7053 0040 A769 ldr r7, [r4, #24] 7054 .LVL490: 7055 0042 656A ldr r5, [r4, #36] 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7056 .loc 1 3054 0 7057 0044 22F44052 bic r2, r2, #12288 ARM GAS /tmp/ccgDLloS.s page 230 7058 0048 0A43 orrs r2, r2, r1 7059 004a 5A60 str r2, [r3, #4] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7060 .loc 1 3064 0 7061 004c B342 cmp r3, r6 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7062 .loc 1 3068 0 7063 004e 9968 ldr r1, [r3, #8] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7064 .loc 1 3064 0 7065 0050 2BD0 beq .L1002 7066 .LVL491: 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7067 .loc 1 3066 0 7068 0052 226A ldr r2, [r4, #32] 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7069 .loc 1 3068 0 7070 0054 21F06E41 bic r1, r1, #-301989888 7071 0058 21F43061 bic r1, r1, #2816 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7072 .loc 1 3066 0 7073 005c 3A43 orrs r2, r2, r7 7074 .LVL492: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7075 .loc 1 3068 0 7076 005e 0A43 orrs r2, r2, r1 7077 .LVL493: 7078 0060 9A60 str r2, [r3, #8] 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7079 .loc 1 3073 0 7080 0062 DA6A ldr r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7081 .loc 1 3076 0 7082 0064 06F53846 add r6, r6, #47104 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7083 .loc 1 3073 0 7084 0068 22F00F02 bic r2, r2, #15 7085 006c 2A43 orrs r2, r2, r5 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7086 .loc 1 3076 0 7087 006e B342 cmp r3, r6 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7088 .loc 1 3073 0 7089 0070 DA62 str r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7090 .loc 1 3076 0 7091 0072 3AD0 beq .L1003 7092 .LVL494: 7093 0074 A84A ldr r2, .L1117+8 7094 0076 9342 cmp r3, r2 7095 0078 5AD0 beq .L1111 7096 007a A84A ldr r2, .L1117+12 7097 007c 9342 cmp r3, r2 7098 007e 00F03281 beq .L1112 7099 0082 A74A ldr r2, .L1117+16 7100 0084 9342 cmp r3, r2 7101 0086 00F0E980 beq .L1113 ARM GAS /tmp/ccgDLloS.s page 231 7102 .L1007: 7103 .LVL495: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7104 .loc 1 3215 0 7105 008a 4FF00112 mov r2, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 7106 .loc 1 3218 0 7107 008e 0023 movs r3, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7108 .loc 1 3215 0 7109 0090 A266 str r2, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7110 .loc 1 3219 0 7111 0092 C4E91C33 strd r3, r3, [r4, #112] 7112 .LVL496: 7113 .LBE221: 7114 .LBE227: 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7115 .loc 1 354 0 7116 0096 0120 movs r0, #1 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7117 .loc 1 372 0 7118 0098 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7119 .LVL497: 7120 .L1110: 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7121 .loc 1 329 0 7122 009c 80F88030 strb r3, [r0, #128] 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 7123 .loc 1 343 0 7124 00a0 FFF7FEFF bl HAL_UART_MspInit 7125 .LVL498: 7126 00a4 B5E7 b .L1001 7127 .LVL499: 7128 .L1053: 7129 .LCFI87: 7130 .cfi_def_cfa_offset 0 7131 .cfi_restore 4 7132 .cfi_restore 5 7133 .cfi_restore 6 7134 .cfi_restore 7 7135 .cfi_restore 8 7136 .cfi_restore 14 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7137 .loc 1 312 0 7138 00a6 0120 movs r0, #1 7139 .LVL500: 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7140 .loc 1 372 0 7141 00a8 7047 bx lr 7142 .LVL501: 7143 .L1002: 7144 .LCFI88: 7145 .cfi_def_cfa_offset 24 7146 .cfi_offset 4, -24 7147 .cfi_offset 5, -20 7148 .cfi_offset 6, -16 ARM GAS /tmp/ccgDLloS.s page 232 7149 .cfi_offset 7, -12 7150 .cfi_offset 8, -8 7151 .cfi_offset 14, -4 7152 .LBB228: 7153 .LBB222: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7154 .loc 1 3068 0 7155 00aa 21F06E41 bic r1, r1, #-301989888 7156 00ae 21F43061 bic r1, r1, #2816 7157 00b2 3943 orrs r1, r1, r7 7158 00b4 9960 str r1, [r3, #8] 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7159 .loc 1 3073 0 7160 00b6 DA6A ldr r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7161 .loc 1 3076 0 7162 00b8 9A48 ldr r0, .L1117+20 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7163 .loc 1 3073 0 7164 00ba 22F00F02 bic r2, r2, #15 7165 00be 2A43 orrs r2, r2, r5 7166 00c0 DA62 str r2, [r3, #44] 7167 .LVL502: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7168 .loc 1 3076 0 7169 00c2 D0F88830 ldr r3, [r0, #136] 7170 00c6 03F44063 and r3, r3, #3072 7171 00ca B3F5806F cmp r3, #1024 7172 00ce 00F09181 beq .L1026 7173 00d2 40F25781 bls .L1114 7174 00d6 B3F5006F cmp r3, #2048 7175 00da 00F0A181 beq .L1060 7176 00de B3F5406F cmp r3, #3072 7177 00e2 D2D1 bne .L1007 3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7178 .loc 1 3094 0 7179 00e4 4FF40040 mov r0, #32768 7180 00e8 54E1 b .L1028 7181 .LVL503: 7182 .L1003: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7183 .loc 1 3076 0 7184 00ea 8E4B ldr r3, .L1117+20 7185 00ec 8E4A ldr r2, .L1117+24 7186 00ee D3F88830 ldr r3, [r3, #136] 7187 00f2 03F00303 and r3, r3, #3 7188 00f6 D35C ldrb r3, [r2, r3] @ zero_extendqisi2 7189 .LVL504: 7190 .L1005: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7191 .loc 1 3132 0 7192 00f8 B0F5004F cmp r0, #32768 7193 00fc 00F01A81 beq .L1115 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7194 .loc 1 3175 0 7195 0100 082B cmp r3, #8 7196 0102 C2D8 bhi .L1007 ARM GAS /tmp/ccgDLloS.s page 233 7197 0104 01A2 adr r2, .L1036 7198 0106 52F823F0 ldr pc, [r2, r3, lsl #2] 7199 010a 00BF .p2align 2 7200 .L1036: 7201 010c 57020000 .word .L1023+1 7202 0110 41010000 .word .L1037+1 7203 0114 01040000 .word .L1038+1 7204 0118 8B000000 .word .L1007+1 7205 011c 51020000 .word .L1021+1 7206 0120 8B000000 .word .L1007+1 7207 0124 8B000000 .word .L1007+1 7208 0128 8B000000 .word .L1007+1 7209 012c 09030000 .word .L1059+1 7210 .LVL505: 7211 .p2align 1 7212 .L1111: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7213 .loc 1 3076 0 7214 0130 7C4B ldr r3, .L1117+20 7215 0132 7E4A ldr r2, .L1117+28 7216 0134 D3F88830 ldr r3, [r3, #136] 7217 0138 03F00C03 and r3, r3, #12 7218 013c D35C ldrb r3, [r2, r3] @ zero_extendqisi2 7219 .LVL506: 7220 013e DBE7 b .L1005 7221 .L1037: 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7222 .loc 1 3181 0 7223 0140 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 7224 .LVL507: 7225 .L1039: 3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7226 .loc 1 3198 0 7227 0144 0028 cmp r0, #0 7228 0146 00F0C780 beq .L1027 7229 014a 656A ldr r5, [r4, #36] 7230 .LVL508: 7231 .L1019: 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 7232 .loc 1 3201 0 7233 014c 6268 ldr r2, [r4, #4] 7234 014e 784B ldr r3, .L1117+32 7235 0150 33F81530 ldrh r3, [r3, r5, lsl #1] 7236 0154 B0FBF3F3 udiv r3, r0, r3 7237 0158 03EB5203 add r3, r3, r2, lsr #1 7238 015c B3FBF2F3 udiv r3, r3, r2 7239 0160 9BB2 uxth r3, r3 7240 .LVL509: 3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7241 .loc 1 3202 0 7242 0162 A3F11001 sub r1, r3, #16 7243 0166 4FF6EF72 movw r2, #65519 7244 016a 9142 cmp r1, r2 7245 016c 8DD8 bhi .L1007 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7246 .loc 1 3204 0 7247 016e 2068 ldr r0, [r4] ARM GAS /tmp/ccgDLloS.s page 234 7248 .LVL510: 7249 .L1106: 7250 0170 C360 str r3, [r0, #12] 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 7251 .loc 1 3218 0 7252 0172 0022 movs r2, #0 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7253 .loc 1 3219 0 7254 0174 C4E91C22 strd r2, r2, [r4, #112] 7255 .LVL511: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7256 .loc 1 3215 0 7257 0178 4FF00111 mov r1, #65537 7258 017c A166 str r1, [r4, #104] 7259 .L1030: 7260 .LBE222: 7261 .LBE228: 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7262 .loc 1 357 0 7263 017e A36A ldr r3, [r4, #40] 7264 0180 002B cmp r3, #0 7265 0182 40F0A580 bne .L1116 7266 .L1040: 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 7267 .loc 1 365 0 7268 0186 2368 ldr r3, [r4] 7269 0188 5A68 ldr r2, [r3, #4] 7270 018a 22F49042 bic r2, r2, #18432 7271 018e 5A60 str r2, [r3, #4] 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7272 .loc 1 366 0 7273 0190 9A68 ldr r2, [r3, #8] 7274 0192 22F02A02 bic r2, r2, #42 7275 0196 9A60 str r2, [r3, #8] 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7276 .loc 1 368 0 7277 0198 1A68 ldr r2, [r3] 7278 .LBB229: 7279 .LBB230: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7280 .loc 1 3308 0 7281 019a 0021 movs r1, #0 7282 .LBE230: 7283 .LBE229: 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7284 .loc 1 368 0 7285 019c 42F00102 orr r2, r2, #1 7286 01a0 1A60 str r2, [r3] 7287 .LVL512: 7288 .LBB256: 7289 .LBB253: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7290 .loc 1 3308 0 7291 01a2 C4F88C10 str r1, [r4, #140] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7292 .loc 1 3311 0 7293 01a6 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccgDLloS.s page 235 7294 .LVL513: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7295 .loc 1 3314 0 7296 01aa 2368 ldr r3, [r4] 7297 01ac 1A68 ldr r2, [r3] 7298 01ae 1107 lsls r1, r2, #28 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7299 .loc 1 3311 0 7300 01b0 0646 mov r6, r0 7301 .LVL514: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7302 .loc 1 3314 0 7303 01b2 0ED4 bmi .L1041 7304 .LVL515: 7305 .L1042: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7306 .loc 1 3325 0 7307 01b4 1A68 ldr r2, [r3] 7308 01b6 5007 lsls r0, r2, #29 7309 01b8 33D4 bmi .L1046 7310 .L1050: 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7311 .loc 1 3338 0 7312 01ba 0023 movs r3, #0 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 7313 .loc 1 3336 0 7314 01bc 2022 movs r2, #32 7315 01be C4F88420 str r2, [r4, #132] 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7316 .loc 1 3340 0 7317 01c2 84F88030 strb r3, [r4, #128] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 7318 .loc 1 3337 0 7319 01c6 C4F88820 str r2, [r4, #136] 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7320 .loc 1 3342 0 7321 01ca 1846 mov r0, r3 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7322 .loc 1 3338 0 7323 01cc E366 str r3, [r4, #108] 7324 .L1099: 7325 .LBE253: 7326 .LBE256: 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7327 .loc 1 372 0 7328 01ce BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7329 .LVL516: 7330 .L1041: 7331 .LBB257: 7332 .LBB254: 7333 .LBB231: 7334 .LBB232: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7335 .loc 1 3358 0 7336 01d2 DD69 ldr r5, [r3, #28] 7337 01d4 15F40015 ands r5, r5, #2097152 7338 01d8 ECD1 bne .L1042 ARM GAS /tmp/ccgDLloS.s page 236 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7339 .loc 1 3363 0 7340 01da FFF7FEFF bl HAL_GetTick 7341 .LVL517: 7342 .LBB233: 7343 .LBB234: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7344 .loc 1 3367 0 7345 01de 2368 ldr r3, [r4] 7346 .LBE234: 7347 .LBE233: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7348 .loc 1 3363 0 7349 01e0 801B subs r0, r0, r6 7350 01e2 B0F1007F cmp r0, #33554432 7351 .LBB236: 7352 .LBB235: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7353 .loc 1 3367 0 7354 01e6 1A68 ldr r2, [r3] 7355 .LBE235: 7356 .LBE236: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7357 .loc 1 3363 0 7358 01e8 80F0BC80 bcs .L1107 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7359 .loc 1 3378 0 7360 01ec 5207 lsls r2, r2, #29 7361 01ee F0D5 bpl .L1041 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7362 .loc 1 3380 0 7363 01f0 DA69 ldr r2, [r3, #28] 7364 01f2 1705 lsls r7, r2, #20 7365 01f4 EDD5 bpl .L1041 7366 .L1108: 7367 .LBE232: 7368 .LBE231: 7369 .LBB237: 7370 .LBB238: 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7371 .loc 1 3383 0 7372 01f6 4FF40062 mov r2, #2048 7373 01fa 1A62 str r2, [r3, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7374 .loc 1 3387 0 7375 01fc 1A68 ldr r2, [r3] 7376 01fe 22F4D072 bic r2, r2, #416 7377 0202 1A60 str r2, [r3] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7378 .loc 1 3388 0 7379 0204 9968 ldr r1, [r3, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 7380 .loc 1 3390 0 7381 0206 2022 movs r2, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7382 .loc 1 3388 0 7383 0208 21F00101 bic r1, r1, #1 ARM GAS /tmp/ccgDLloS.s page 237 7384 020c 9960 str r1, [r3, #8] 7385 .LBE238: 7386 .LBE237: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7387 .loc 1 3331 0 7388 020e 0320 movs r0, #3 7389 .LBB250: 7390 .LBB247: 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 7391 .loc 1 3390 0 7392 0210 C4F88420 str r2, [r4, #132] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7393 .loc 1 3395 0 7394 0214 84F88050 strb r5, [r4, #128] 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 7395 .loc 1 3391 0 7396 0218 C4F88820 str r2, [r4, #136] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7397 .loc 1 3392 0 7398 021c C4F88C20 str r2, [r4, #140] 7399 0220 D5E7 b .L1099 7400 .L1046: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7401 .loc 1 3358 0 7402 0222 DD69 ldr r5, [r3, #28] 7403 0224 15F48005 ands r5, r5, #4194304 7404 0228 C7D1 bne .L1050 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7405 .loc 1 3363 0 7406 022a FFF7FEFF bl HAL_GetTick 7407 .LVL518: 7408 .LBB239: 7409 .LBB240: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7410 .loc 1 3367 0 7411 022e 2368 ldr r3, [r4] 7412 .LBE240: 7413 .LBE239: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7414 .loc 1 3363 0 7415 0230 801B subs r0, r0, r6 7416 0232 B0F1007F cmp r0, #33554432 7417 .LBB244: 7418 .LBB241: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7419 .loc 1 3367 0 7420 0236 1A68 ldr r2, [r3] 7421 .LBE241: 7422 .LBE244: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7423 .loc 1 3363 0 7424 0238 80F09480 bcs .L1107 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7425 .loc 1 3378 0 7426 023c 5107 lsls r1, r2, #29 7427 023e F0D5 bpl .L1046 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 238 7428 .loc 1 3380 0 7429 0240 DA69 ldr r2, [r3, #28] 7430 0242 1205 lsls r2, r2, #20 7431 0244 EDD5 bpl .L1046 7432 0246 D6E7 b .L1108 7433 .LVL519: 7434 .L1008: 7435 .LBE247: 7436 .LBE250: 7437 .LBE254: 7438 .LBE257: 7439 .LBB258: 7440 .LBB223: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7441 .loc 1 3132 0 7442 0248 B0F5004F cmp r0, #32768 7443 024c 00F0E080 beq .L1020 7444 .LVL520: 7445 .L1021: 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7446 .loc 1 3187 0 7447 0250 FFF7FEFF bl HAL_RCC_GetSysClockFreq 7448 .LVL521: 7449 0254 76E7 b .L1039 7450 .LVL522: 7451 .L1023: 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7452 .loc 1 3178 0 7453 0256 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 7454 .LVL523: 7455 025a 73E7 b .L1039 7456 .LVL524: 7457 .L1113: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7458 .loc 1 3076 0 7459 025c 314B ldr r3, .L1117+20 7460 025e D3F88830 ldr r3, [r3, #136] 7461 0262 03F0C003 and r3, r3, #192 7462 0266 402B cmp r3, #64 7463 0268 EED0 beq .L1008 7464 026a 26D9 bls .L1109 7465 026c 802B cmp r3, #128 7466 026e 00F0C980 beq .L1011 7467 0272 C02B cmp r3, #192 7468 0274 7FF409AF bne .L1007 7469 .LVL525: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7470 .loc 1 3132 0 7471 0278 B0F5004F cmp r0, #32768 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7472 .loc 1 3149 0 7473 027c 4FF40040 mov r0, #32768 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7474 .loc 1 3132 0 7475 0280 7FF464AF bne .L1019 7476 .LVL526: 7477 .L1018: ARM GAS /tmp/ccgDLloS.s page 239 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 7478 .loc 1 3160 0 7479 0284 6268 ldr r2, [r4, #4] 7480 0286 2A49 ldr r1, .L1117+32 7481 0288 5308 lsrs r3, r2, #1 7482 028a 31F81510 ldrh r1, [r1, r5, lsl #1] 7483 028e B0FBF1F0 udiv r0, r0, r1 7484 0292 03EB4003 add r3, r3, r0, lsl #1 7485 0296 B3FBF2F3 udiv r3, r3, r2 7486 029a 9AB2 uxth r2, r3 7487 .LVL527: 3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7488 .loc 1 3161 0 7489 029c A2F11000 sub r0, r2, #16 7490 02a0 4FF6EF71 movw r1, #65519 7491 02a4 8842 cmp r0, r1 7492 02a6 3FF6F0AE bhi .L1007 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); 7493 .loc 1 3163 0 7494 02aa 23F00F03 bic r3, r3, #15 7495 02ae 9BB2 uxth r3, r3 7496 .LVL528: 3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; 7497 .loc 1 3164 0 7498 02b0 C2F34202 ubfx r2, r2, #1, #3 7499 .LVL529: 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7500 .loc 1 3165 0 7501 02b4 2068 ldr r0, [r4] 7502 .LVL530: 7503 02b6 1343 orrs r3, r3, r2 7504 02b8 5AE7 b .L1106 7505 .L1109: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7506 .loc 1 3076 0 7507 02ba 002B cmp r3, #0 7508 02bc 7FF4E5AE bne .L1007 7509 .LVL531: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7510 .loc 1 3132 0 7511 02c0 B0F5004F cmp r0, #32768 7512 02c4 C7D1 bne .L1023 7513 .LVL532: 7514 .L1022: 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7515 .loc 1 3137 0 7516 02c6 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 7517 .LVL533: 7518 .L1035: 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7519 .loc 1 3158 0 7520 02ca 28B1 cbz r0, .L1027 7521 02cc 656A ldr r5, [r4, #36] 7522 02ce D9E7 b .L1018 7523 .LVL534: 7524 .L1116: 7525 .LBE223: ARM GAS /tmp/ccgDLloS.s page 240 7526 .LBE258: 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7527 .loc 1 359 0 7528 02d0 2046 mov r0, r4 7529 02d2 FFF7FEFF bl UART_AdvFeatureConfig 7530 .LVL535: 7531 02d6 56E7 b .L1040 7532 .LVL536: 7533 .L1027: 7534 .LBB259: 7535 .LBB224: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7536 .loc 1 3215 0 7537 02d8 4FF00112 mov r2, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 7538 .loc 1 3218 0 7539 02dc 0023 movs r3, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7540 .loc 1 3215 0 7541 02de A266 str r2, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7542 .loc 1 3219 0 7543 02e0 C4E91C33 strd r3, r3, [r4, #112] 7544 .LVL537: 7545 02e4 4BE7 b .L1030 7546 .LVL538: 7547 .L1112: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7548 .loc 1 3076 0 7549 02e6 0F4B ldr r3, .L1117+20 7550 02e8 D3F88830 ldr r3, [r3, #136] 7551 02ec 03F03003 and r3, r3, #48 7552 02f0 102B cmp r3, #16 7553 02f2 A9D0 beq .L1008 7554 02f4 E1D9 bls .L1109 7555 02f6 202B cmp r3, #32 7556 02f8 00F08480 beq .L1011 7557 02fc 302B cmp r3, #48 7558 02fe 7FF4C4AE bne .L1007 7559 .LVL539: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7560 .loc 1 3132 0 7561 0302 B0F5004F cmp r0, #32768 7562 0306 BDD0 beq .L1018 7563 .LVL540: 7564 .L1059: 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7565 .loc 1 3190 0 7566 0308 4FF40040 mov r0, #32768 7567 030c 1EE7 b .L1019 7568 .L1118: 7569 030e 00BF .align 2 7570 .L1117: 7571 0310 F369FFCF .word -805344781 7572 0314 00800040 .word 1073774592 7573 0318 00440040 .word 1073759232 7574 031c 00480040 .word 1073760256 ARM GAS /tmp/ccgDLloS.s page 241 7575 0320 004C0040 .word 1073761280 7576 0324 00100240 .word 1073876992 7577 0328 00000000 .word .LANCHOR2 7578 032c 00000000 .word .LANCHOR0 7579 0330 00000000 .word .LANCHOR1 7580 .LVL541: 7581 .L1115: 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7582 .loc 1 3134 0 7583 0334 082B cmp r3, #8 7584 0336 3FF6A8AE bhi .L1007 7585 033a 01A2 adr r2, .L1032 7586 033c 52F823F0 ldr pc, [r2, r3, lsl #2] 7587 .p2align 2 7588 .L1032: 7589 0340 C7020000 .word .L1022+1 7590 0344 FB030000 .word .L1033+1 7591 0348 17040000 .word .L1034+1 7592 034c 8B000000 .word .L1007+1 7593 0350 11040000 .word .L1020+1 7594 0354 8B000000 .word .L1007+1 7595 0358 8B000000 .word .L1007+1 7596 035c 8B000000 .word .L1007+1 7597 0360 1B040000 .word .L1058+1 7598 .LVL542: 7599 .p2align 1 7600 .L1107: 7601 .LBE224: 7602 .LBE259: 7603 .LBB260: 7604 .LBB255: 7605 .LBB251: 7606 .LBB248: 7607 .LBB245: 7608 .LBB242: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7609 .loc 1 3367 0 7610 0364 22F4D072 bic r2, r2, #416 7611 0368 1A60 str r2, [r3] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7612 .loc 1 3368 0 7613 036a 9A68 ldr r2, [r3, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 7614 .loc 1 3370 0 7615 036c 2021 movs r1, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7616 .loc 1 3368 0 7617 036e 22F00102 bic r2, r2, #1 7618 0372 9A60 str r2, [r3, #8] 7619 .LBE242: 7620 .LBE245: 7621 .LBE248: 7622 .LBE251: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7623 .loc 1 3331 0 7624 0374 0320 movs r0, #3 7625 .LBB252: ARM GAS /tmp/ccgDLloS.s page 242 7626 .LBB249: 7627 .LBB246: 7628 .LBB243: 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 7629 .loc 1 3370 0 7630 0376 C4F88410 str r1, [r4, #132] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7631 .loc 1 3373 0 7632 037a 84F88050 strb r5, [r4, #128] 7633 .LVL543: 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7634 .loc 1 3371 0 7635 037e C4F88810 str r1, [r4, #136] 7636 0382 24E7 b .L1099 7637 .LVL544: 7638 .L1114: 7639 .LBE243: 7640 .LBE246: 7641 .LBE249: 7642 .LBE252: 7643 .LBE255: 7644 .LBE260: 7645 .LBB261: 7646 .LBB225: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7647 .loc 1 3076 0 7648 0384 002B cmp r3, #0 7649 0386 7FF480AE bne .L1007 3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7650 .loc 1 3085 0 7651 038a FFF7FEFF bl HAL_RCC_GetPCLK1Freq 7652 .LVL545: 7653 .L1025: 3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7654 .loc 1 3103 0 7655 038e 0028 cmp r0, #0 7656 0390 A2D0 beq .L1027 7657 0392 656A ldr r5, [r4, #36] 7658 .LVL546: 7659 .L1028: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 7660 .loc 1 3109 0 7661 0394 6668 ldr r6, [r4, #4] 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7662 .loc 1 3106 0 7663 0396 234B ldr r3, .L1119 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 7664 .loc 1 3109 0 7665 0398 06EB4601 add r1, r6, r6, lsl #1 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7666 .loc 1 3106 0 7667 039c 33F81520 ldrh r2, [r3, r5, lsl #1] 7668 03a0 B0FBF2F3 udiv r3, r0, r2 7669 .LVL547: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 7670 .loc 1 3109 0 7671 03a4 8B42 cmp r3, r1 ARM GAS /tmp/ccgDLloS.s page 243 7672 03a6 FFF470AE bcc .L1007 7673 03aa B3EB063F cmp r3, r6, lsl #12 7674 03ae 3FF66CAE bhi .L1007 3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) 7675 .loc 1 3118 0 7676 03b2 0025 movs r5, #0 7677 03b4 0023 movs r3, #0 7678 .LVL548: 7679 03b6 2946 mov r1, r5 7680 03b8 FFF7FEFF bl __aeabi_uldivmod 7681 .LVL549: 7682 03bc 0B02 lsls r3, r1, #8 7683 03be 43EA1063 orr r3, r3, r0, lsr #24 7684 03c2 0202 lsls r2, r0, #8 7685 03c4 7008 lsrs r0, r6, #1 7686 03c6 1718 adds r7, r2, r0 7687 03c8 43F10008 adc r8, r3, #0 7688 03cc 3246 mov r2, r6 7689 03ce 2B46 mov r3, r5 7690 03d0 3846 mov r0, r7 7691 03d2 4146 mov r1, r8 7692 03d4 FFF7FEFF bl __aeabi_uldivmod 7693 .LVL550: 3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7694 .loc 1 3119 0 7695 03d8 134B ldr r3, .L1119+4 7696 03da A0F54072 sub r2, r0, #768 7697 03de 9A42 cmp r2, r3 7698 03e0 3FF653AE bhi .L1007 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7699 .loc 1 3121 0 7700 03e4 2268 ldr r2, [r4] 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7701 .loc 1 3215 0 7702 03e6 4FF00113 mov r3, #65537 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7703 .loc 1 3121 0 7704 03ea D060 str r0, [r2, #12] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7705 .loc 1 3219 0 7706 03ec C4E91C55 strd r5, r5, [r4, #112] 7707 .LVL551: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7708 .loc 1 3215 0 7709 03f0 A366 str r3, [r4, #104] 7710 03f2 C4E6 b .L1030 7711 .LVL552: 7712 .L1026: 3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7713 .loc 1 3091 0 7714 03f4 FFF7FEFF bl HAL_RCC_GetSysClockFreq 7715 .LVL553: 7716 03f8 C9E7 b .L1025 7717 .LVL554: 7718 .L1033: 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7719 .loc 1 3140 0 ARM GAS /tmp/ccgDLloS.s page 244 7720 03fa FFF7FEFF bl HAL_RCC_GetPCLK2Freq 7721 .LVL555: 7722 03fe 64E7 b .L1035 7723 .LVL556: 7724 .L1038: 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7725 .loc 1 3184 0 7726 0400 0A48 ldr r0, .L1119+8 7727 0402 A3E6 b .L1019 7728 .LVL557: 7729 .L1011: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7730 .loc 1 3132 0 7731 0404 B0F5004F cmp r0, #32768 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7732 .loc 1 3143 0 7733 0408 0848 ldr r0, .L1119+8 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7734 .loc 1 3132 0 7735 040a 7FF49FAE bne .L1019 7736 040e 39E7 b .L1018 7737 .LVL558: 7738 .L1020: 3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7739 .loc 1 3146 0 7740 0410 FFF7FEFF bl HAL_RCC_GetSysClockFreq 7741 .LVL559: 7742 0414 59E7 b .L1035 7743 .LVL560: 7744 .L1034: 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7745 .loc 1 3143 0 7746 0416 0548 ldr r0, .L1119+8 7747 0418 34E7 b .L1018 7748 .L1058: 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7749 .loc 1 3149 0 7750 041a 4FF40040 mov r0, #32768 7751 041e 31E7 b .L1018 7752 .LVL561: 7753 .L1060: 3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7754 .loc 1 3088 0 7755 0420 0248 ldr r0, .L1119+8 7756 0422 B7E7 b .L1028 7757 .L1120: 7758 .align 2 7759 .L1119: 7760 0424 00000000 .word .LANCHOR1 7761 0428 FFFC0F00 .word 1047807 7762 042c 0024F400 .word 16000000 7763 .LBE225: 7764 .LBE261: 7765 .cfi_endproc 7766 .LFE329: 7768 .section .text.HAL_HalfDuplex_Init,"ax",%progbits 7769 .align 1 ARM GAS /tmp/ccgDLloS.s page 245 7770 .p2align 2,,3 7771 .global HAL_HalfDuplex_Init 7772 .syntax unified 7773 .thumb 7774 .thumb_func 7775 .fpu fpv4-sp-d16 7777 HAL_HalfDuplex_Init: 7778 .LFB330: 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 7779 .loc 1 381 0 7780 .cfi_startproc 7781 @ args = 0, pretend = 0, frame = 0 7782 @ frame_needed = 0, uses_anonymous_args = 0 7783 .LVL562: 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7784 .loc 1 383 0 7785 0000 0028 cmp r0, #0 7786 0002 50D0 beq .L1175 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7787 .loc 1 391 0 7788 0004 D0F88430 ldr r3, [r0, #132] 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 7789 .loc 1 381 0 7790 0008 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7791 .LCFI89: 7792 .cfi_def_cfa_offset 24 7793 .cfi_offset 4, -24 7794 .cfi_offset 5, -20 7795 .cfi_offset 6, -16 7796 .cfi_offset 7, -12 7797 .cfi_offset 8, -8 7798 .cfi_offset 14, -4 7799 000c 0446 mov r4, r0 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7800 .loc 1 391 0 7801 000e 002B cmp r3, #0 7802 0010 44D0 beq .L1232 7803 .LVL563: 7804 .L1123: 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7805 .loc 1 414 0 7806 0012 2368 ldr r3, [r4] 7807 .LBB274: 7808 .LBB275: 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 7809 .loc 1 3048 0 7810 0014 2769 ldr r7, [r4, #16] 7811 0016 6669 ldr r6, [r4, #20] 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7812 .loc 1 3049 0 7813 0018 BF49 ldr r1, .L1239 7814 .LBE275: 7815 .LBE274: 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7816 .loc 1 412 0 7817 001a 2422 movs r2, #36 7818 001c C4F88420 str r2, [r4, #132] ARM GAS /tmp/ccgDLloS.s page 246 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7819 .loc 1 414 0 7820 0020 1868 ldr r0, [r3] 7821 .LBB282: 7822 .LBB276: 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 7823 .loc 1 3048 0 7824 0022 A268 ldr r2, [r4, #8] 7825 .LBE276: 7826 .LBE282: 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7827 .loc 1 414 0 7828 0024 20F00100 bic r0, r0, #1 7829 0028 1860 str r0, [r3] 7830 .LVL564: 7831 .LBB283: 7832 .LBB277: 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7833 .loc 1 3049 0 7834 002a 1D68 ldr r5, [r3] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 7835 .loc 1 3048 0 7836 002c E069 ldr r0, [r4, #28] 7837 .LVL565: 7838 002e 3A43 orrs r2, r2, r7 7839 0030 3243 orrs r2, r2, r6 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7840 .loc 1 3049 0 7841 0032 2940 ands r1, r1, r5 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 7842 .loc 1 3048 0 7843 0034 0243 orrs r2, r2, r0 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7844 .loc 1 3049 0 7845 0036 0A43 orrs r2, r2, r1 7846 0038 1A60 str r2, [r3] 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7847 .loc 1 3054 0 7848 003a 5A68 ldr r2, [r3, #4] 7849 003c E168 ldr r1, [r4, #12] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7850 .loc 1 3064 0 7851 003e B74E ldr r6, .L1239+4 3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7852 .loc 1 3062 0 7853 0040 A769 ldr r7, [r4, #24] 7854 .LVL566: 7855 0042 656A ldr r5, [r4, #36] 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7856 .loc 1 3054 0 7857 0044 22F44052 bic r2, r2, #12288 7858 0048 0A43 orrs r2, r2, r1 7859 004a 5A60 str r2, [r3, #4] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7860 .loc 1 3064 0 7861 004c B342 cmp r3, r6 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 247 7862 .loc 1 3068 0 7863 004e 9968 ldr r1, [r3, #8] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7864 .loc 1 3064 0 7865 0050 2BD0 beq .L1124 7866 .LVL567: 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7867 .loc 1 3066 0 7868 0052 226A ldr r2, [r4, #32] 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7869 .loc 1 3068 0 7870 0054 21F06E41 bic r1, r1, #-301989888 7871 0058 21F43061 bic r1, r1, #2816 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7872 .loc 1 3066 0 7873 005c 3A43 orrs r2, r2, r7 7874 .LVL568: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7875 .loc 1 3068 0 7876 005e 0A43 orrs r2, r2, r1 7877 .LVL569: 7878 0060 9A60 str r2, [r3, #8] 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7879 .loc 1 3073 0 7880 0062 DA6A ldr r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7881 .loc 1 3076 0 7882 0064 06F53846 add r6, r6, #47104 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7883 .loc 1 3073 0 7884 0068 22F00F02 bic r2, r2, #15 7885 006c 2A43 orrs r2, r2, r5 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7886 .loc 1 3076 0 7887 006e B342 cmp r3, r6 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7888 .loc 1 3073 0 7889 0070 DA62 str r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7890 .loc 1 3076 0 7891 0072 3AD0 beq .L1125 7892 .LVL570: 7893 0074 AA4A ldr r2, .L1239+8 7894 0076 9342 cmp r3, r2 7895 0078 5AD0 beq .L1233 7896 007a AA4A ldr r2, .L1239+12 7897 007c 9342 cmp r3, r2 7898 007e 00F03681 beq .L1234 7899 0082 A94A ldr r2, .L1239+16 7900 0084 9342 cmp r3, r2 7901 0086 00F0ED80 beq .L1235 7902 .L1129: 7903 .LVL571: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7904 .loc 1 3215 0 7905 008a 4FF00112 mov r2, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; ARM GAS /tmp/ccgDLloS.s page 248 7906 .loc 1 3218 0 7907 008e 0023 movs r3, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7908 .loc 1 3215 0 7909 0090 A266 str r2, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7910 .loc 1 3219 0 7911 0092 C4E91C33 strd r3, r3, [r4, #112] 7912 .LVL572: 7913 .LBE277: 7914 .LBE283: 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7915 .loc 1 419 0 7916 0096 0120 movs r0, #1 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7917 .loc 1 440 0 7918 0098 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7919 .LVL573: 7920 .L1232: 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7921 .loc 1 394 0 7922 009c 80F88030 strb r3, [r0, #128] 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 7923 .loc 1 408 0 7924 00a0 FFF7FEFF bl HAL_UART_MspInit 7925 .LVL574: 7926 00a4 B5E7 b .L1123 7927 .LVL575: 7928 .L1175: 7929 .LCFI90: 7930 .cfi_def_cfa_offset 0 7931 .cfi_restore 4 7932 .cfi_restore 5 7933 .cfi_restore 6 7934 .cfi_restore 7 7935 .cfi_restore 8 7936 .cfi_restore 14 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 7937 .loc 1 385 0 7938 00a6 0120 movs r0, #1 7939 .LVL576: 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7940 .loc 1 440 0 7941 00a8 7047 bx lr 7942 .LVL577: 7943 .L1124: 7944 .LCFI91: 7945 .cfi_def_cfa_offset 24 7946 .cfi_offset 4, -24 7947 .cfi_offset 5, -20 7948 .cfi_offset 6, -16 7949 .cfi_offset 7, -12 7950 .cfi_offset 8, -8 7951 .cfi_offset 14, -4 7952 .LBB284: 7953 .LBB278: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 249 7954 .loc 1 3068 0 7955 00aa 21F06E41 bic r1, r1, #-301989888 7956 00ae 21F43061 bic r1, r1, #2816 7957 00b2 3943 orrs r1, r1, r7 7958 00b4 9960 str r1, [r3, #8] 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7959 .loc 1 3073 0 7960 00b6 DA6A ldr r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7961 .loc 1 3076 0 7962 00b8 9C48 ldr r0, .L1239+20 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7963 .loc 1 3073 0 7964 00ba 22F00F02 bic r2, r2, #15 7965 00be 2A43 orrs r2, r2, r5 7966 00c0 DA62 str r2, [r3, #44] 7967 .LVL578: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7968 .loc 1 3076 0 7969 00c2 D0F88830 ldr r3, [r0, #136] 7970 00c6 03F44063 and r3, r3, #3072 7971 00ca B3F5806F cmp r3, #1024 7972 00ce 00F09581 beq .L1148 7973 00d2 40F25B81 bls .L1236 7974 00d6 B3F5006F cmp r3, #2048 7975 00da 00F0A581 beq .L1182 7976 00de B3F5406F cmp r3, #3072 7977 00e2 D2D1 bne .L1129 3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 7978 .loc 1 3094 0 7979 00e4 4FF40040 mov r0, #32768 7980 00e8 58E1 b .L1150 7981 .LVL579: 7982 .L1125: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 7983 .loc 1 3076 0 7984 00ea 904B ldr r3, .L1239+20 7985 00ec 904A ldr r2, .L1239+24 7986 00ee D3F88830 ldr r3, [r3, #136] 7987 00f2 03F00303 and r3, r3, #3 7988 00f6 D35C ldrb r3, [r2, r3] @ zero_extendqisi2 7989 .LVL580: 7990 .L1127: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7991 .loc 1 3132 0 7992 00f8 B0F5004F cmp r0, #32768 7993 00fc 00F01E81 beq .L1237 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 7994 .loc 1 3175 0 7995 0100 082B cmp r3, #8 7996 0102 C2D8 bhi .L1129 7997 0104 01A2 adr r2, .L1158 7998 0106 52F823F0 ldr pc, [r2, r3, lsl #2] 7999 010a 00BF .p2align 2 8000 .L1158: 8001 010c 5F020000 .word .L1145+1 8002 0110 41010000 .word .L1159+1 ARM GAS /tmp/ccgDLloS.s page 250 8003 0114 09040000 .word .L1160+1 8004 0118 8B000000 .word .L1129+1 8005 011c 59020000 .word .L1143+1 8006 0120 8B000000 .word .L1129+1 8007 0124 8B000000 .word .L1129+1 8008 0128 8B000000 .word .L1129+1 8009 012c 11030000 .word .L1181+1 8010 .LVL581: 8011 .p2align 1 8012 .L1233: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8013 .loc 1 3076 0 8014 0130 7E4B ldr r3, .L1239+20 8015 0132 804A ldr r2, .L1239+28 8016 0134 D3F88830 ldr r3, [r3, #136] 8017 0138 03F00C03 and r3, r3, #12 8018 013c D35C ldrb r3, [r2, r3] @ zero_extendqisi2 8019 .LVL582: 8020 013e DBE7 b .L1127 8021 .L1159: 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8022 .loc 1 3181 0 8023 0140 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 8024 .LVL583: 8025 .L1161: 3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8026 .loc 1 3198 0 8027 0144 0028 cmp r0, #0 8028 0146 00F0CB80 beq .L1149 8029 014a 656A ldr r5, [r4, #36] 8030 .LVL584: 8031 .L1141: 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 8032 .loc 1 3201 0 8033 014c 6268 ldr r2, [r4, #4] 8034 014e 7A4B ldr r3, .L1239+32 8035 0150 33F81530 ldrh r3, [r3, r5, lsl #1] 8036 0154 B0FBF3F3 udiv r3, r0, r3 8037 0158 03EB5203 add r3, r3, r2, lsr #1 8038 015c B3FBF2F3 udiv r3, r3, r2 8039 0160 9BB2 uxth r3, r3 8040 .LVL585: 3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8041 .loc 1 3202 0 8042 0162 A3F11001 sub r1, r3, #16 8043 0166 4FF6EF72 movw r2, #65519 8044 016a 9142 cmp r1, r2 8045 016c 8DD8 bhi .L1129 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8046 .loc 1 3204 0 8047 016e 2068 ldr r0, [r4] 8048 .LVL586: 8049 .L1228: 8050 0170 C360 str r3, [r0, #12] 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 8051 .loc 1 3218 0 8052 0172 0022 movs r2, #0 ARM GAS /tmp/ccgDLloS.s page 251 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8053 .loc 1 3219 0 8054 0174 C4E91C22 strd r2, r2, [r4, #112] 8055 .LVL587: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8056 .loc 1 3215 0 8057 0178 4FF00111 mov r1, #65537 8058 017c A166 str r1, [r4, #104] 8059 .L1152: 8060 .LBE278: 8061 .LBE284: 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8062 .loc 1 422 0 8063 017e A36A ldr r3, [r4, #40] 8064 0180 002B cmp r3, #0 8065 0182 40F0A980 bne .L1238 8066 .L1162: 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); 8067 .loc 1 430 0 8068 0186 2368 ldr r3, [r4] 8069 0188 5A68 ldr r2, [r3, #4] 8070 018a 22F49042 bic r2, r2, #18432 8071 018e 5A60 str r2, [r3, #4] 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8072 .loc 1 431 0 8073 0190 9A68 ldr r2, [r3, #8] 8074 0192 22F02202 bic r2, r2, #34 8075 0196 9A60 str r2, [r3, #8] 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8076 .loc 1 434 0 8077 0198 9A68 ldr r2, [r3, #8] 8078 019a 42F00802 orr r2, r2, #8 8079 019e 9A60 str r2, [r3, #8] 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8080 .loc 1 436 0 8081 01a0 1A68 ldr r2, [r3] 8082 .LBB285: 8083 .LBB286: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8084 .loc 1 3308 0 8085 01a2 0021 movs r1, #0 8086 .LBE286: 8087 .LBE285: 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8088 .loc 1 436 0 8089 01a4 42F00102 orr r2, r2, #1 8090 01a8 1A60 str r2, [r3] 8091 .LVL588: 8092 .LBB312: 8093 .LBB309: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8094 .loc 1 3308 0 8095 01aa C4F88C10 str r1, [r4, #140] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8096 .loc 1 3311 0 8097 01ae FFF7FEFF bl HAL_GetTick 8098 .LVL589: ARM GAS /tmp/ccgDLloS.s page 252 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8099 .loc 1 3314 0 8100 01b2 2368 ldr r3, [r4] 8101 01b4 1A68 ldr r2, [r3] 8102 01b6 1107 lsls r1, r2, #28 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8103 .loc 1 3311 0 8104 01b8 0646 mov r6, r0 8105 .LVL590: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8106 .loc 1 3314 0 8107 01ba 0ED4 bmi .L1163 8108 .LVL591: 8109 .L1164: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8110 .loc 1 3325 0 8111 01bc 1A68 ldr r2, [r3] 8112 01be 5007 lsls r0, r2, #29 8113 01c0 33D4 bmi .L1168 8114 .L1172: 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8115 .loc 1 3338 0 8116 01c2 0023 movs r3, #0 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 8117 .loc 1 3336 0 8118 01c4 2022 movs r2, #32 8119 01c6 C4F88420 str r2, [r4, #132] 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8120 .loc 1 3340 0 8121 01ca 84F88030 strb r3, [r4, #128] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8122 .loc 1 3337 0 8123 01ce C4F88820 str r2, [r4, #136] 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8124 .loc 1 3342 0 8125 01d2 1846 mov r0, r3 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8126 .loc 1 3338 0 8127 01d4 E366 str r3, [r4, #108] 8128 .L1221: 8129 .LBE309: 8130 .LBE312: 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8131 .loc 1 440 0 8132 01d6 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 8133 .LVL592: 8134 .L1163: 8135 .LBB313: 8136 .LBB310: 8137 .LBB287: 8138 .LBB288: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8139 .loc 1 3358 0 8140 01da DD69 ldr r5, [r3, #28] 8141 01dc 15F40015 ands r5, r5, #2097152 8142 01e0 ECD1 bne .L1164 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 253 8143 .loc 1 3363 0 8144 01e2 FFF7FEFF bl HAL_GetTick 8145 .LVL593: 8146 .LBB289: 8147 .LBB290: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8148 .loc 1 3367 0 8149 01e6 2368 ldr r3, [r4] 8150 .LBE290: 8151 .LBE289: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8152 .loc 1 3363 0 8153 01e8 801B subs r0, r0, r6 8154 01ea B0F1007F cmp r0, #33554432 8155 .LBB292: 8156 .LBB291: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8157 .loc 1 3367 0 8158 01ee 1A68 ldr r2, [r3] 8159 .LBE291: 8160 .LBE292: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8161 .loc 1 3363 0 8162 01f0 80F0BC80 bcs .L1229 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8163 .loc 1 3378 0 8164 01f4 5207 lsls r2, r2, #29 8165 01f6 F0D5 bpl .L1163 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8166 .loc 1 3380 0 8167 01f8 DA69 ldr r2, [r3, #28] 8168 01fa 1705 lsls r7, r2, #20 8169 01fc EDD5 bpl .L1163 8170 .L1230: 8171 .LBE288: 8172 .LBE287: 8173 .LBB293: 8174 .LBB294: 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8175 .loc 1 3383 0 8176 01fe 4FF40062 mov r2, #2048 8177 0202 1A62 str r2, [r3, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8178 .loc 1 3387 0 8179 0204 1A68 ldr r2, [r3] 8180 0206 22F4D072 bic r2, r2, #416 8181 020a 1A60 str r2, [r3] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8182 .loc 1 3388 0 8183 020c 9968 ldr r1, [r3, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 8184 .loc 1 3390 0 8185 020e 2022 movs r2, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8186 .loc 1 3388 0 8187 0210 21F00101 bic r1, r1, #1 8188 0214 9960 str r1, [r3, #8] ARM GAS /tmp/ccgDLloS.s page 254 8189 .LBE294: 8190 .LBE293: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8191 .loc 1 3331 0 8192 0216 0320 movs r0, #3 8193 .LBB306: 8194 .LBB303: 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 8195 .loc 1 3390 0 8196 0218 C4F88420 str r2, [r4, #132] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8197 .loc 1 3395 0 8198 021c 84F88050 strb r5, [r4, #128] 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 8199 .loc 1 3391 0 8200 0220 C4F88820 str r2, [r4, #136] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8201 .loc 1 3392 0 8202 0224 C4F88C20 str r2, [r4, #140] 8203 0228 D5E7 b .L1221 8204 .L1168: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8205 .loc 1 3358 0 8206 022a DD69 ldr r5, [r3, #28] 8207 022c 15F48005 ands r5, r5, #4194304 8208 0230 C7D1 bne .L1172 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8209 .loc 1 3363 0 8210 0232 FFF7FEFF bl HAL_GetTick 8211 .LVL594: 8212 .LBB295: 8213 .LBB296: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8214 .loc 1 3367 0 8215 0236 2368 ldr r3, [r4] 8216 .LBE296: 8217 .LBE295: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8218 .loc 1 3363 0 8219 0238 801B subs r0, r0, r6 8220 023a B0F1007F cmp r0, #33554432 8221 .LBB300: 8222 .LBB297: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8223 .loc 1 3367 0 8224 023e 1A68 ldr r2, [r3] 8225 .LBE297: 8226 .LBE300: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8227 .loc 1 3363 0 8228 0240 80F09480 bcs .L1229 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8229 .loc 1 3378 0 8230 0244 5107 lsls r1, r2, #29 8231 0246 F0D5 bpl .L1168 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8232 .loc 1 3380 0 ARM GAS /tmp/ccgDLloS.s page 255 8233 0248 DA69 ldr r2, [r3, #28] 8234 024a 1205 lsls r2, r2, #20 8235 024c EDD5 bpl .L1168 8236 024e D6E7 b .L1230 8237 .LVL595: 8238 .L1130: 8239 .LBE303: 8240 .LBE306: 8241 .LBE310: 8242 .LBE313: 8243 .LBB314: 8244 .LBB279: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8245 .loc 1 3132 0 8246 0250 B0F5004F cmp r0, #32768 8247 0254 00F0E080 beq .L1142 8248 .LVL596: 8249 .L1143: 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8250 .loc 1 3187 0 8251 0258 FFF7FEFF bl HAL_RCC_GetSysClockFreq 8252 .LVL597: 8253 025c 72E7 b .L1161 8254 .LVL598: 8255 .L1145: 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8256 .loc 1 3178 0 8257 025e FFF7FEFF bl HAL_RCC_GetPCLK1Freq 8258 .LVL599: 8259 0262 6FE7 b .L1161 8260 .LVL600: 8261 .L1235: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8262 .loc 1 3076 0 8263 0264 314B ldr r3, .L1239+20 8264 0266 D3F88830 ldr r3, [r3, #136] 8265 026a 03F0C003 and r3, r3, #192 8266 026e 402B cmp r3, #64 8267 0270 EED0 beq .L1130 8268 0272 26D9 bls .L1231 8269 0274 802B cmp r3, #128 8270 0276 00F0C980 beq .L1133 8271 027a C02B cmp r3, #192 8272 027c 7FF405AF bne .L1129 8273 .LVL601: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8274 .loc 1 3132 0 8275 0280 B0F5004F cmp r0, #32768 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8276 .loc 1 3149 0 8277 0284 4FF40040 mov r0, #32768 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8278 .loc 1 3132 0 8279 0288 7FF460AF bne .L1141 8280 .LVL602: 8281 .L1140: 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) ARM GAS /tmp/ccgDLloS.s page 256 8282 .loc 1 3160 0 8283 028c 6268 ldr r2, [r4, #4] 8284 028e 2A49 ldr r1, .L1239+32 8285 0290 5308 lsrs r3, r2, #1 8286 0292 31F81510 ldrh r1, [r1, r5, lsl #1] 8287 0296 B0FBF1F0 udiv r0, r0, r1 8288 029a 03EB4003 add r3, r3, r0, lsl #1 8289 029e B3FBF2F3 udiv r3, r3, r2 8290 02a2 9AB2 uxth r2, r3 8291 .LVL603: 3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8292 .loc 1 3161 0 8293 02a4 A2F11000 sub r0, r2, #16 8294 02a8 4FF6EF71 movw r1, #65519 8295 02ac 8842 cmp r0, r1 8296 02ae 3FF6ECAE bhi .L1129 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); 8297 .loc 1 3163 0 8298 02b2 23F00F03 bic r3, r3, #15 8299 02b6 9BB2 uxth r3, r3 8300 .LVL604: 3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; 8301 .loc 1 3164 0 8302 02b8 C2F34202 ubfx r2, r2, #1, #3 8303 .LVL605: 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8304 .loc 1 3165 0 8305 02bc 2068 ldr r0, [r4] 8306 .LVL606: 8307 02be 1343 orrs r3, r3, r2 8308 02c0 56E7 b .L1228 8309 .L1231: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8310 .loc 1 3076 0 8311 02c2 002B cmp r3, #0 8312 02c4 7FF4E1AE bne .L1129 8313 .LVL607: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8314 .loc 1 3132 0 8315 02c8 B0F5004F cmp r0, #32768 8316 02cc C7D1 bne .L1145 8317 .LVL608: 8318 .L1144: 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8319 .loc 1 3137 0 8320 02ce FFF7FEFF bl HAL_RCC_GetPCLK1Freq 8321 .LVL609: 8322 .L1157: 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8323 .loc 1 3158 0 8324 02d2 28B1 cbz r0, .L1149 8325 02d4 656A ldr r5, [r4, #36] 8326 02d6 D9E7 b .L1140 8327 .LVL610: 8328 .L1238: 8329 .LBE279: 8330 .LBE314: ARM GAS /tmp/ccgDLloS.s page 257 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8331 .loc 1 424 0 8332 02d8 2046 mov r0, r4 8333 02da FFF7FEFF bl UART_AdvFeatureConfig 8334 .LVL611: 8335 02de 52E7 b .L1162 8336 .LVL612: 8337 .L1149: 8338 .LBB315: 8339 .LBB280: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8340 .loc 1 3215 0 8341 02e0 4FF00112 mov r2, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 8342 .loc 1 3218 0 8343 02e4 0023 movs r3, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8344 .loc 1 3215 0 8345 02e6 A266 str r2, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8346 .loc 1 3219 0 8347 02e8 C4E91C33 strd r3, r3, [r4, #112] 8348 .LVL613: 8349 02ec 47E7 b .L1152 8350 .LVL614: 8351 .L1234: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8352 .loc 1 3076 0 8353 02ee 0F4B ldr r3, .L1239+20 8354 02f0 D3F88830 ldr r3, [r3, #136] 8355 02f4 03F03003 and r3, r3, #48 8356 02f8 102B cmp r3, #16 8357 02fa A9D0 beq .L1130 8358 02fc E1D9 bls .L1231 8359 02fe 202B cmp r3, #32 8360 0300 00F08480 beq .L1133 8361 0304 302B cmp r3, #48 8362 0306 7FF4C0AE bne .L1129 8363 .LVL615: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8364 .loc 1 3132 0 8365 030a B0F5004F cmp r0, #32768 8366 030e BDD0 beq .L1140 8367 .LVL616: 8368 .L1181: 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8369 .loc 1 3190 0 8370 0310 4FF40040 mov r0, #32768 8371 0314 1AE7 b .L1141 8372 .L1240: 8373 0316 00BF .align 2 8374 .L1239: 8375 0318 F369FFCF .word -805344781 8376 031c 00800040 .word 1073774592 8377 0320 00440040 .word 1073759232 8378 0324 00480040 .word 1073760256 8379 0328 004C0040 .word 1073761280 ARM GAS /tmp/ccgDLloS.s page 258 8380 032c 00100240 .word 1073876992 8381 0330 00000000 .word .LANCHOR2 8382 0334 00000000 .word .LANCHOR0 8383 0338 00000000 .word .LANCHOR1 8384 .LVL617: 8385 .L1237: 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8386 .loc 1 3134 0 8387 033c 082B cmp r3, #8 8388 033e 3FF6A4AE bhi .L1129 8389 0342 01A2 adr r2, .L1154 8390 0344 52F823F0 ldr pc, [r2, r3, lsl #2] 8391 .p2align 2 8392 .L1154: 8393 0348 CF020000 .word .L1144+1 8394 034c 03040000 .word .L1155+1 8395 0350 1F040000 .word .L1156+1 8396 0354 8B000000 .word .L1129+1 8397 0358 19040000 .word .L1142+1 8398 035c 8B000000 .word .L1129+1 8399 0360 8B000000 .word .L1129+1 8400 0364 8B000000 .word .L1129+1 8401 0368 23040000 .word .L1180+1 8402 .LVL618: 8403 .p2align 1 8404 .L1229: 8405 .LBE280: 8406 .LBE315: 8407 .LBB316: 8408 .LBB311: 8409 .LBB307: 8410 .LBB304: 8411 .LBB301: 8412 .LBB298: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8413 .loc 1 3367 0 8414 036c 22F4D072 bic r2, r2, #416 8415 0370 1A60 str r2, [r3] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8416 .loc 1 3368 0 8417 0372 9A68 ldr r2, [r3, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 8418 .loc 1 3370 0 8419 0374 2021 movs r1, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8420 .loc 1 3368 0 8421 0376 22F00102 bic r2, r2, #1 8422 037a 9A60 str r2, [r3, #8] 8423 .LBE298: 8424 .LBE301: 8425 .LBE304: 8426 .LBE307: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8427 .loc 1 3331 0 8428 037c 0320 movs r0, #3 8429 .LBB308: 8430 .LBB305: ARM GAS /tmp/ccgDLloS.s page 259 8431 .LBB302: 8432 .LBB299: 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 8433 .loc 1 3370 0 8434 037e C4F88410 str r1, [r4, #132] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8435 .loc 1 3373 0 8436 0382 84F88050 strb r5, [r4, #128] 8437 .LVL619: 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8438 .loc 1 3371 0 8439 0386 C4F88810 str r1, [r4, #136] 8440 038a 24E7 b .L1221 8441 .LVL620: 8442 .L1236: 8443 .LBE299: 8444 .LBE302: 8445 .LBE305: 8446 .LBE308: 8447 .LBE311: 8448 .LBE316: 8449 .LBB317: 8450 .LBB281: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8451 .loc 1 3076 0 8452 038c 002B cmp r3, #0 8453 038e 7FF47CAE bne .L1129 3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8454 .loc 1 3085 0 8455 0392 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 8456 .LVL621: 8457 .L1147: 3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8458 .loc 1 3103 0 8459 0396 0028 cmp r0, #0 8460 0398 A2D0 beq .L1149 8461 039a 656A ldr r5, [r4, #36] 8462 .LVL622: 8463 .L1150: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 8464 .loc 1 3109 0 8465 039c 6668 ldr r6, [r4, #4] 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8466 .loc 1 3106 0 8467 039e 234B ldr r3, .L1241 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 8468 .loc 1 3109 0 8469 03a0 06EB4601 add r1, r6, r6, lsl #1 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8470 .loc 1 3106 0 8471 03a4 33F81520 ldrh r2, [r3, r5, lsl #1] 8472 03a8 B0FBF2F3 udiv r3, r0, r2 8473 .LVL623: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 8474 .loc 1 3109 0 8475 03ac 8B42 cmp r3, r1 8476 03ae FFF46CAE bcc .L1129 ARM GAS /tmp/ccgDLloS.s page 260 8477 03b2 B3EB063F cmp r3, r6, lsl #12 8478 03b6 3FF668AE bhi .L1129 3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) 8479 .loc 1 3118 0 8480 03ba 0025 movs r5, #0 8481 03bc 0023 movs r3, #0 8482 .LVL624: 8483 03be 2946 mov r1, r5 8484 03c0 FFF7FEFF bl __aeabi_uldivmod 8485 .LVL625: 8486 03c4 0B02 lsls r3, r1, #8 8487 03c6 43EA1063 orr r3, r3, r0, lsr #24 8488 03ca 0202 lsls r2, r0, #8 8489 03cc 7008 lsrs r0, r6, #1 8490 03ce 1718 adds r7, r2, r0 8491 03d0 43F10008 adc r8, r3, #0 8492 03d4 3246 mov r2, r6 8493 03d6 2B46 mov r3, r5 8494 03d8 3846 mov r0, r7 8495 03da 4146 mov r1, r8 8496 03dc FFF7FEFF bl __aeabi_uldivmod 8497 .LVL626: 3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8498 .loc 1 3119 0 8499 03e0 134B ldr r3, .L1241+4 8500 03e2 A0F54072 sub r2, r0, #768 8501 03e6 9A42 cmp r2, r3 8502 03e8 3FF64FAE bhi .L1129 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8503 .loc 1 3121 0 8504 03ec 2268 ldr r2, [r4] 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8505 .loc 1 3215 0 8506 03ee 4FF00113 mov r3, #65537 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8507 .loc 1 3121 0 8508 03f2 D060 str r0, [r2, #12] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8509 .loc 1 3219 0 8510 03f4 C4E91C55 strd r5, r5, [r4, #112] 8511 .LVL627: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8512 .loc 1 3215 0 8513 03f8 A366 str r3, [r4, #104] 8514 03fa C0E6 b .L1152 8515 .LVL628: 8516 .L1148: 3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8517 .loc 1 3091 0 8518 03fc FFF7FEFF bl HAL_RCC_GetSysClockFreq 8519 .LVL629: 8520 0400 C9E7 b .L1147 8521 .LVL630: 8522 .L1155: 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8523 .loc 1 3140 0 8524 0402 FFF7FEFF bl HAL_RCC_GetPCLK2Freq ARM GAS /tmp/ccgDLloS.s page 261 8525 .LVL631: 8526 0406 64E7 b .L1157 8527 .LVL632: 8528 .L1160: 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8529 .loc 1 3184 0 8530 0408 0A48 ldr r0, .L1241+8 8531 040a 9FE6 b .L1141 8532 .LVL633: 8533 .L1133: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8534 .loc 1 3132 0 8535 040c B0F5004F cmp r0, #32768 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8536 .loc 1 3143 0 8537 0410 0848 ldr r0, .L1241+8 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8538 .loc 1 3132 0 8539 0412 7FF49BAE bne .L1141 8540 0416 39E7 b .L1140 8541 .LVL634: 8542 .L1142: 3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8543 .loc 1 3146 0 8544 0418 FFF7FEFF bl HAL_RCC_GetSysClockFreq 8545 .LVL635: 8546 041c 59E7 b .L1157 8547 .LVL636: 8548 .L1156: 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8549 .loc 1 3143 0 8550 041e 0548 ldr r0, .L1241+8 8551 0420 34E7 b .L1140 8552 .L1180: 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8553 .loc 1 3149 0 8554 0422 4FF40040 mov r0, #32768 8555 0426 31E7 b .L1140 8556 .LVL637: 8557 .L1182: 3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8558 .loc 1 3088 0 8559 0428 0248 ldr r0, .L1241+8 8560 042a B7E7 b .L1150 8561 .L1242: 8562 .align 2 8563 .L1241: 8564 042c 00000000 .word .LANCHOR1 8565 0430 FFFC0F00 .word 1047807 8566 0434 0024F400 .word 16000000 8567 .LBE281: 8568 .LBE317: 8569 .cfi_endproc 8570 .LFE330: 8572 .section .text.HAL_LIN_Init,"ax",%progbits 8573 .align 1 8574 .p2align 2,,3 ARM GAS /tmp/ccgDLloS.s page 262 8575 .global HAL_LIN_Init 8576 .syntax unified 8577 .thumb 8578 .thumb_func 8579 .fpu fpv4-sp-d16 8581 HAL_LIN_Init: 8582 .LFB331: 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 8583 .loc 1 454 0 8584 .cfi_startproc 8585 @ args = 0, pretend = 0, frame = 0 8586 @ frame_needed = 0, uses_anonymous_args = 0 8587 .LVL638: 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8588 .loc 1 456 0 8589 0000 0028 cmp r0, #0 8590 0002 00F08280 beq .L1297 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 8591 .loc 1 454 0 8592 0006 2DE9F048 push {r4, r5, r6, r7, fp, lr} 8593 .LCFI92: 8594 .cfi_def_cfa_offset 24 8595 .cfi_offset 4, -24 8596 .cfi_offset 5, -20 8597 .cfi_offset 6, -16 8598 .cfi_offset 7, -12 8599 .cfi_offset 11, -8 8600 .cfi_offset 14, -4 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8601 .loc 1 467 0 8602 000a C669 ldr r6, [r0, #28] 8603 000c B6F5004F cmp r6, #32768 8604 0010 0446 mov r4, r0 8605 0012 77D0 beq .L1299 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8606 .loc 1 472 0 8607 0014 8768 ldr r7, [r0, #8] 8608 0016 002F cmp r7, #0 8609 0018 74D1 bne .L1299 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8610 .loc 1 477 0 8611 001a D0F88430 ldr r3, [r0, #132] 8612 001e 0D46 mov r5, r1 8613 0020 002B cmp r3, #0 8614 0022 74D0 beq .L1356 8615 .LVL639: 8616 .L1245: 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8617 .loc 1 500 0 8618 0024 2368 ldr r3, [r4] 8619 .LBB330: 8620 .LBB331: 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8621 .loc 1 3049 0 8622 0026 BA49 ldr r1, .L1362 8623 .LBE331: 8624 .LBE330: ARM GAS /tmp/ccgDLloS.s page 263 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8625 .loc 1 498 0 8626 0028 2420 movs r0, #36 8627 002a C4F88400 str r0, [r4, #132] 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8628 .loc 1 500 0 8629 002e 1868 ldr r0, [r3] 8630 0030 20F00100 bic r0, r0, #1 8631 .LBB339: 8632 .LBB332: 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8633 .loc 1 3049 0 8634 0034 D4E9042C ldrd r2, ip, [r4, #16] 8635 .LBE332: 8636 .LBE339: 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8637 .loc 1 500 0 8638 0038 1860 str r0, [r3] 8639 .LVL640: 8640 .LBB340: 8641 .LBB333: 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8642 .loc 1 3049 0 8643 003a 1868 ldr r0, [r3] 8644 003c 42EA0C02 orr r2, r2, ip 8645 0040 0140 ands r1, r1, r0 8646 0042 0A43 orrs r2, r2, r1 8647 0044 3A43 orrs r2, r2, r7 8648 0046 3243 orrs r2, r2, r6 8649 0048 1A60 str r2, [r3] 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8650 .loc 1 3054 0 8651 004a 5A68 ldr r2, [r3, #4] 8652 004c E068 ldr r0, [r4, #12] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8653 .loc 1 3064 0 8654 004e B14F ldr r7, .L1362+4 8655 .LVL641: 3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8656 .loc 1 3062 0 8657 0050 D4F818C0 ldr ip, [r4, #24] 8658 .LVL642: 8659 0054 616A ldr r1, [r4, #36] 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8660 .loc 1 3054 0 8661 0056 22F44052 bic r2, r2, #12288 8662 005a 0243 orrs r2, r2, r0 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8663 .loc 1 3064 0 8664 005c BB42 cmp r3, r7 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8665 .loc 1 3054 0 8666 005e 5A60 str r2, [r3, #4] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8667 .loc 1 3064 0 8668 0060 5CD0 beq .L1246 8669 .LVL643: ARM GAS /tmp/ccgDLloS.s page 264 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8670 .loc 1 3068 0 8671 0062 9868 ldr r0, [r3, #8] 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8672 .loc 1 3066 0 8673 0064 226A ldr r2, [r4, #32] 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8674 .loc 1 3068 0 8675 0066 20F06E40 bic r0, r0, #-301989888 8676 006a 20F43060 bic r0, r0, #2816 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8677 .loc 1 3066 0 8678 006e 4CEA0202 orr r2, ip, r2 8679 .LVL644: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8680 .loc 1 3068 0 8681 0072 0243 orrs r2, r2, r0 8682 .LVL645: 8683 0074 9A60 str r2, [r3, #8] 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8684 .loc 1 3073 0 8685 0076 DA6A ldr r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8686 .loc 1 3076 0 8687 0078 07F53847 add r7, r7, #47104 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8688 .loc 1 3073 0 8689 007c 22F00F02 bic r2, r2, #15 8690 0080 0A43 orrs r2, r2, r1 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8691 .loc 1 3076 0 8692 0082 BB42 cmp r3, r7 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8693 .loc 1 3073 0 8694 0084 DA62 str r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8695 .loc 1 3076 0 8696 0086 00F07081 beq .L1247 8697 .LVL646: 8698 008a A34A ldr r2, .L1362+8 8699 008c 9342 cmp r3, r2 8700 008e 00F0C680 beq .L1357 8701 0092 A24A ldr r2, .L1362+12 8702 0094 9342 cmp r3, r2 8703 0096 00F02281 beq .L1358 8704 009a A14A ldr r2, .L1362+16 8705 009c 9342 cmp r3, r2 8706 009e 40F0D280 bne .L1251 8707 00a2 A04B ldr r3, .L1362+20 8708 00a4 D3F88830 ldr r3, [r3, #136] 8709 00a8 03F0C003 and r3, r3, #192 8710 00ac 402B cmp r3, #64 8711 00ae 00F04B81 beq .L1252 8712 00b2 40F23F81 bls .L1355 8713 00b6 802B cmp r3, #128 8714 00b8 00F0B881 beq .L1255 8715 00bc C02B cmp r3, #192 ARM GAS /tmp/ccgDLloS.s page 265 8716 00be 40F0C280 bne .L1251 8717 .LVL647: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8718 .loc 1 3132 0 8719 00c2 B6F5004F cmp r6, #32768 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8720 .loc 1 3149 0 8721 00c6 4FF40040 mov r0, #32768 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8722 .loc 1 3132 0 8723 00ca 00F05B81 beq .L1262 8724 .LVL648: 8725 .L1263: 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 8726 .loc 1 3201 0 8727 00ce 6268 ldr r2, [r4, #4] 8728 00d0 954B ldr r3, .L1362+24 8729 00d2 33F81130 ldrh r3, [r3, r1, lsl #1] 8730 00d6 B0FBF3F3 udiv r3, r0, r3 8731 00da 03EB5203 add r3, r3, r2, lsr #1 8732 00de B3FBF2F3 udiv r3, r3, r2 8733 00e2 9BB2 uxth r3, r3 8734 .LVL649: 3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8735 .loc 1 3202 0 8736 00e4 A3F11001 sub r1, r3, #16 8737 00e8 4FF6EF72 movw r2, #65519 8738 00ec 9142 cmp r1, r2 8739 00ee 00F2AA80 bhi .L1251 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8740 .loc 1 3204 0 8741 00f2 2068 ldr r0, [r4] 8742 .LVL650: 8743 .L1352: 8744 00f4 C360 str r3, [r0, #12] 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8745 .loc 1 3215 0 8746 00f6 4FF00111 mov r1, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 8747 .loc 1 3218 0 8748 00fa 0022 movs r2, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8749 .loc 1 3215 0 8750 00fc A166 str r1, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8751 .loc 1 3219 0 8752 00fe C4E91C22 strd r2, r2, [r4, #112] 8753 .LVL651: 8754 0102 59E0 b .L1274 8755 .LVL652: 8756 .L1299: 8757 .LBE333: 8758 .LBE340: 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8759 .loc 1 458 0 8760 0104 0120 movs r0, #1 8761 .LVL653: ARM GAS /tmp/ccgDLloS.s page 266 8762 .L1345: 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8763 .loc 1 529 0 8764 0106 BDE8F088 pop {r4, r5, r6, r7, fp, pc} 8765 .LVL654: 8766 .L1297: 8767 .LCFI93: 8768 .cfi_def_cfa_offset 0 8769 .cfi_restore 4 8770 .cfi_restore 5 8771 .cfi_restore 6 8772 .cfi_restore 7 8773 .cfi_restore 11 8774 .cfi_restore 14 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8775 .loc 1 458 0 8776 010a 0120 movs r0, #1 8777 .LVL655: 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8778 .loc 1 529 0 8779 010c 7047 bx lr 8780 .LVL656: 8781 .L1356: 8782 .LCFI94: 8783 .cfi_def_cfa_offset 24 8784 .cfi_offset 4, -24 8785 .cfi_offset 5, -20 8786 .cfi_offset 6, -16 8787 .cfi_offset 7, -12 8788 .cfi_offset 11, -8 8789 .cfi_offset 14, -4 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8790 .loc 1 480 0 8791 010e 80F88070 strb r7, [r0, #128] 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 8792 .loc 1 494 0 8793 0112 FFF7FEFF bl HAL_UART_MspInit 8794 .LVL657: 8795 0116 A768 ldr r7, [r4, #8] 8796 0118 E669 ldr r6, [r4, #28] 8797 011a 83E7 b .L1245 8798 .LVL658: 8799 .L1246: 8800 .LBB341: 8801 .LBB334: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8802 .loc 1 3068 0 8803 011c 9A68 ldr r2, [r3, #8] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8804 .loc 1 3076 0 8805 011e 8148 ldr r0, .L1362+20 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8806 .loc 1 3068 0 8807 0120 22F06E42 bic r2, r2, #-301989888 8808 0124 22F43062 bic r2, r2, #2816 8809 0128 42EA0C02 orr r2, r2, ip 8810 012c 9A60 str r2, [r3, #8] ARM GAS /tmp/ccgDLloS.s page 267 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8811 .loc 1 3073 0 8812 012e DA6A ldr r2, [r3, #44] 8813 0130 22F00F02 bic r2, r2, #15 8814 0134 0A43 orrs r2, r2, r1 8815 0136 DA62 str r2, [r3, #44] 8816 .LVL659: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8817 .loc 1 3076 0 8818 0138 D0F88830 ldr r3, [r0, #136] 8819 013c 03F44063 and r3, r3, #3072 8820 0140 B3F5806F cmp r3, #1024 8821 0144 00F06D81 beq .L1270 8822 0148 40F2C180 bls .L1359 8823 014c B3F5006F cmp r3, #2048 8824 0150 00F06A81 beq .L1306 8825 0154 B3F5406F cmp r3, #3072 8826 0158 75D1 bne .L1251 3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 8827 .loc 1 3094 0 8828 015a 4FF40040 mov r0, #32768 8829 .L1272: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 8830 .loc 1 3109 0 8831 015e 6668 ldr r6, [r4, #4] 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8832 .loc 1 3106 0 8833 0160 714B ldr r3, .L1362+24 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 8834 .loc 1 3109 0 8835 0162 06EB4607 add r7, r6, r6, lsl #1 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8836 .loc 1 3106 0 8837 0166 33F81120 ldrh r2, [r3, r1, lsl #1] 8838 016a B0FBF2F3 udiv r3, r0, r2 8839 .LVL660: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 8840 .loc 1 3109 0 8841 016e BB42 cmp r3, r7 8842 0170 69D3 bcc .L1251 8843 0172 B3EB063F cmp r3, r6, lsl #12 8844 0176 66D8 bhi .L1251 3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) 8845 .loc 1 3118 0 8846 0178 0027 movs r7, #0 8847 017a 0023 movs r3, #0 8848 .LVL661: 8849 017c 3946 mov r1, r7 8850 017e FFF7FEFF bl __aeabi_uldivmod 8851 .LVL662: 8852 0182 0B02 lsls r3, r1, #8 8853 0184 43EA1063 orr r3, r3, r0, lsr #24 8854 0188 0202 lsls r2, r0, #8 8855 018a 7008 lsrs r0, r6, #1 8856 018c 12EB000B adds fp, r2, r0 8857 0190 43F1000C adc ip, r3, #0 8858 0194 3246 mov r2, r6 ARM GAS /tmp/ccgDLloS.s page 268 8859 0196 3B46 mov r3, r7 8860 0198 5846 mov r0, fp 8861 019a 6146 mov r1, ip 8862 019c FFF7FEFF bl __aeabi_uldivmod 8863 .LVL663: 3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8864 .loc 1 3119 0 8865 01a0 624B ldr r3, .L1362+28 8866 01a2 A0F54072 sub r2, r0, #768 8867 01a6 9A42 cmp r2, r3 8868 01a8 4DD8 bhi .L1251 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8869 .loc 1 3121 0 8870 01aa 2268 ldr r2, [r4] 8871 01ac D060 str r0, [r2, #12] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8872 .loc 1 3219 0 8873 01ae C4E91C77 strd r7, r7, [r4, #112] 8874 .LVL664: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8875 .loc 1 3215 0 8876 01b2 4FF00113 mov r3, #65537 8877 01b6 A366 str r3, [r4, #104] 8878 .L1274: 8879 .LBE334: 8880 .LBE341: 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8881 .loc 1 508 0 8882 01b8 A36A ldr r3, [r4, #40] 8883 01ba 002B cmp r3, #0 8884 01bc 40F0CA80 bne .L1360 8885 .L1284: 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); 8886 .loc 1 516 0 8887 01c0 2368 ldr r3, [r4] 8888 01c2 5A68 ldr r2, [r3, #4] 8889 01c4 22F40062 bic r2, r2, #2048 8890 01c8 5A60 str r2, [r3, #4] 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8891 .loc 1 517 0 8892 01ca 9A68 ldr r2, [r3, #8] 8893 01cc 22F02A02 bic r2, r2, #42 8894 01d0 9A60 str r2, [r3, #8] 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8895 .loc 1 520 0 8896 01d2 5A68 ldr r2, [r3, #4] 8897 01d4 42F48042 orr r2, r2, #16384 8898 01d8 5A60 str r2, [r3, #4] 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8899 .loc 1 523 0 8900 01da 5968 ldr r1, [r3, #4] 8901 01dc 21F02001 bic r1, r1, #32 8902 01e0 0D43 orrs r5, r5, r1 8903 .LVL665: 8904 01e2 5D60 str r5, [r3, #4] 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8905 .loc 1 525 0 ARM GAS /tmp/ccgDLloS.s page 269 8906 01e4 1A68 ldr r2, [r3] 8907 .LBB342: 8908 .LBB343: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8909 .loc 1 3308 0 8910 01e6 0021 movs r1, #0 8911 .LBE343: 8912 .LBE342: 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8913 .loc 1 525 0 8914 01e8 42F00102 orr r2, r2, #1 8915 01ec 1A60 str r2, [r3] 8916 .LVL666: 8917 .LBB369: 8918 .LBB366: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8919 .loc 1 3308 0 8920 01ee C4F88C10 str r1, [r4, #140] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8921 .loc 1 3311 0 8922 01f2 FFF7FEFF bl HAL_GetTick 8923 .LVL667: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8924 .loc 1 3314 0 8925 01f6 2368 ldr r3, [r4] 8926 01f8 1A68 ldr r2, [r3] 8927 01fa 1107 lsls r1, r2, #28 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8928 .loc 1 3311 0 8929 01fc 0646 mov r6, r0 8930 .LVL668: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8931 .loc 1 3314 0 8932 01fe 2BD4 bmi .L1285 8933 .LVL669: 8934 .L1286: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8935 .loc 1 3325 0 8936 0200 1A68 ldr r2, [r3] 8937 0202 5007 lsls r0, r2, #29 8938 0204 50D4 bmi .L1290 8939 .L1294: 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8940 .loc 1 3338 0 8941 0206 0023 movs r3, #0 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 8942 .loc 1 3336 0 8943 0208 2022 movs r2, #32 8944 020a C4F88420 str r2, [r4, #132] 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8945 .loc 1 3340 0 8946 020e 84F88030 strb r3, [r4, #128] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8947 .loc 1 3337 0 8948 0212 C4F88820 str r2, [r4, #136] 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 8949 .loc 1 3342 0 ARM GAS /tmp/ccgDLloS.s page 270 8950 0216 1846 mov r0, r3 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8951 .loc 1 3338 0 8952 0218 E366 str r3, [r4, #108] 8953 .LBE366: 8954 .LBE369: 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8955 .loc 1 529 0 8956 021a BDE8F088 pop {r4, r5, r6, r7, fp, pc} 8957 .LVL670: 8958 .L1357: 8959 .LBB370: 8960 .LBB335: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8961 .loc 1 3076 0 8962 021e 414B ldr r3, .L1362+20 8963 0220 434A ldr r2, .L1362+32 8964 0222 D3F88830 ldr r3, [r3, #136] 8965 0226 03F00C03 and r3, r3, #12 8966 022a D35C ldrb r3, [r2, r3] @ zero_extendqisi2 8967 .LVL671: 8968 .L1249: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8969 .loc 1 3132 0 8970 022c B6F5004F cmp r6, #32768 8971 0230 00F0C380 beq .L1361 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 8972 .loc 1 3175 0 8973 0234 082B cmp r3, #8 8974 0236 06D8 bhi .L1251 8975 0238 DFE803F0 tbb [pc, r3] 8976 .L1280: 8977 023c 81 .byte (.L1267-.L1280)/2 8978 023d 64 .byte (.L1281-.L1280)/2 8979 023e 84 .byte (.L1282-.L1280)/2 8980 023f 05 .byte (.L1251-.L1280)/2 8981 0240 89 .byte (.L1265-.L1280)/2 8982 0241 05 .byte (.L1251-.L1280)/2 8983 0242 05 .byte (.L1251-.L1280)/2 8984 0243 05 .byte (.L1251-.L1280)/2 8985 0244 61 .byte (.L1305-.L1280)/2 8986 .LVL672: 8987 0245 00 .p2align 1 8988 .L1251: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8989 .loc 1 3215 0 8990 0246 4FF00112 mov r2, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 8991 .loc 1 3218 0 8992 024a 0023 movs r3, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8993 .loc 1 3215 0 8994 024c A266 str r2, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 8995 .loc 1 3219 0 8996 024e C4E91C33 strd r3, r3, [r4, #112] 8997 .LVL673: ARM GAS /tmp/ccgDLloS.s page 271 8998 .LBE335: 8999 .LBE370: 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9000 .loc 1 505 0 9001 0252 0120 movs r0, #1 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9002 .loc 1 529 0 9003 0254 BDE8F088 pop {r4, r5, r6, r7, fp, pc} 9004 .LVL674: 9005 .L1285: 9006 .LBB371: 9007 .LBB367: 9008 .LBB344: 9009 .LBB345: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9010 .loc 1 3358 0 9011 0258 DD69 ldr r5, [r3, #28] 9012 025a 15F40015 ands r5, r5, #2097152 9013 025e CFD1 bne .L1286 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9014 .loc 1 3363 0 9015 0260 FFF7FEFF bl HAL_GetTick 9016 .LVL675: 9017 .LBB346: 9018 .LBB347: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9019 .loc 1 3367 0 9020 0264 2368 ldr r3, [r4] 9021 .LBE347: 9022 .LBE346: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9023 .loc 1 3363 0 9024 0266 801B subs r0, r0, r6 9025 0268 B0F1007F cmp r0, #33554432 9026 .LBB349: 9027 .LBB348: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9028 .loc 1 3367 0 9029 026c 1A68 ldr r2, [r3] 9030 .LBE348: 9031 .LBE349: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9032 .loc 1 3363 0 9033 026e 80F0C880 bcs .L1353 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9034 .loc 1 3378 0 9035 0272 5207 lsls r2, r2, #29 9036 0274 F0D5 bpl .L1285 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9037 .loc 1 3380 0 9038 0276 DA69 ldr r2, [r3, #28] 9039 0278 1705 lsls r7, r2, #20 9040 027a EDD5 bpl .L1285 9041 .L1354: 9042 .LBE345: 9043 .LBE344: 9044 .LBB350: ARM GAS /tmp/ccgDLloS.s page 272 9045 .LBB351: 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9046 .loc 1 3383 0 9047 027c 4FF40062 mov r2, #2048 9048 0280 1A62 str r2, [r3, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9049 .loc 1 3387 0 9050 0282 1A68 ldr r2, [r3] 9051 0284 22F4D072 bic r2, r2, #416 9052 0288 1A60 str r2, [r3] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9053 .loc 1 3388 0 9054 028a 9968 ldr r1, [r3, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 9055 .loc 1 3390 0 9056 028c 2022 movs r2, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9057 .loc 1 3388 0 9058 028e 21F00101 bic r1, r1, #1 9059 0292 9960 str r1, [r3, #8] 9060 .LBE351: 9061 .LBE350: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9062 .loc 1 3331 0 9063 0294 0320 movs r0, #3 9064 .LBB363: 9065 .LBB360: 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 9066 .loc 1 3390 0 9067 0296 C4F88420 str r2, [r4, #132] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9068 .loc 1 3395 0 9069 029a 84F88050 strb r5, [r4, #128] 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 9070 .loc 1 3391 0 9071 029e C4F88820 str r2, [r4, #136] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9072 .loc 1 3392 0 9073 02a2 C4F88C20 str r2, [r4, #140] 9074 02a6 2EE7 b .L1345 9075 .L1290: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9076 .loc 1 3358 0 9077 02a8 DD69 ldr r5, [r3, #28] 9078 02aa 15F48005 ands r5, r5, #4194304 9079 02ae AAD1 bne .L1294 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9080 .loc 1 3363 0 9081 02b0 FFF7FEFF bl HAL_GetTick 9082 .LVL676: 9083 .LBB352: 9084 .LBB353: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9085 .loc 1 3367 0 9086 02b4 2368 ldr r3, [r4] 9087 .LBE353: 9088 .LBE352: ARM GAS /tmp/ccgDLloS.s page 273 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9089 .loc 1 3363 0 9090 02b6 801B subs r0, r0, r6 9091 02b8 B0F1007F cmp r0, #33554432 9092 .LBB357: 9093 .LBB354: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9094 .loc 1 3367 0 9095 02bc 1A68 ldr r2, [r3] 9096 .LBE354: 9097 .LBE357: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9098 .loc 1 3363 0 9099 02be 80F0A080 bcs .L1353 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9100 .loc 1 3378 0 9101 02c2 5107 lsls r1, r2, #29 9102 02c4 F0D5 bpl .L1290 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9103 .loc 1 3380 0 9104 02c6 DA69 ldr r2, [r3, #28] 9105 02c8 1205 lsls r2, r2, #20 9106 02ca EDD5 bpl .L1290 9107 02cc D6E7 b .L1354 9108 .LVL677: 9109 .L1359: 9110 .LBE360: 9111 .LBE363: 9112 .LBE367: 9113 .LBE371: 9114 .LBB372: 9115 .LBB336: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9116 .loc 1 3076 0 9117 02ce 002B cmp r3, #0 9118 02d0 B9D1 bne .L1251 3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9119 .loc 1 3085 0 9120 02d2 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 9121 .LVL678: 9122 .L1269: 3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9123 .loc 1 3103 0 9124 02d6 0028 cmp r0, #0 9125 02d8 40D0 beq .L1271 9126 02da 616A ldr r1, [r4, #36] 9127 02dc 3FE7 b .L1272 9128 .LVL679: 9129 .L1358: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9130 .loc 1 3076 0 9131 02de 114B ldr r3, .L1362+20 9132 02e0 D3F88830 ldr r3, [r3, #136] 9133 02e4 03F03003 and r3, r3, #48 9134 02e8 102B cmp r3, #16 9135 02ea 2DD0 beq .L1252 9136 02ec 22D9 bls .L1355 ARM GAS /tmp/ccgDLloS.s page 274 9137 02ee 202B cmp r3, #32 9138 02f0 00F09C80 beq .L1255 9139 02f4 302B cmp r3, #48 9140 02f6 A6D1 bne .L1251 9141 .LVL680: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9142 .loc 1 3132 0 9143 02f8 B6F5004F cmp r6, #32768 9144 02fc 7CD0 beq .L1304 9145 .LVL681: 9146 .L1305: 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9147 .loc 1 3190 0 9148 02fe 4FF40040 mov r0, #32768 9149 0302 E4E6 b .L1263 9150 .LVL682: 9151 .L1281: 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9152 .loc 1 3181 0 9153 0304 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 9154 .LVL683: 9155 .L1283: 3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9156 .loc 1 3198 0 9157 0308 40B3 cbz r0, .L1271 9158 030a 616A ldr r1, [r4, #36] 9159 030c DFE6 b .L1263 9160 .L1363: 9161 030e 00BF .align 2 9162 .L1362: 9163 0310 F369FFCF .word -805344781 9164 0314 00800040 .word 1073774592 9165 0318 00440040 .word 1073759232 9166 031c 00480040 .word 1073760256 9167 0320 004C0040 .word 1073761280 9168 0324 00100240 .word 1073876992 9169 0328 00000000 .word .LANCHOR1 9170 032c FFFC0F00 .word 1047807 9171 0330 00000000 .word .LANCHOR0 9172 .LVL684: 9173 .L1355: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9174 .loc 1 3076 0 9175 0334 002B cmp r3, #0 9176 0336 86D1 bne .L1251 9177 .LVL685: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9178 .loc 1 3132 0 9179 0338 B6F5004F cmp r6, #32768 9180 033c 59D0 beq .L1266 9181 .LVL686: 9182 .L1267: 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9183 .loc 1 3178 0 9184 033e FFF7FEFF bl HAL_RCC_GetPCLK1Freq 9185 .LVL687: 9186 0342 E1E7 b .L1283 ARM GAS /tmp/ccgDLloS.s page 275 9187 .LVL688: 9188 .L1282: 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9189 .loc 1 3184 0 9190 0344 3C48 ldr r0, .L1364 9191 0346 C2E6 b .L1263 9192 .LVL689: 9193 .L1252: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9194 .loc 1 3132 0 9195 0348 B6F5004F cmp r6, #32768 9196 034c 15D0 beq .L1264 9197 .LVL690: 9198 .L1265: 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9199 .loc 1 3187 0 9200 034e FFF7FEFF bl HAL_RCC_GetSysClockFreq 9201 .LVL691: 9202 0352 D9E7 b .L1283 9203 .LVL692: 9204 .L1360: 9205 .LBE336: 9206 .LBE372: 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9207 .loc 1 510 0 9208 0354 2046 mov r0, r4 9209 0356 FFF7FEFF bl UART_AdvFeatureConfig 9210 .LVL693: 9211 035a 31E7 b .L1284 9212 .LVL694: 9213 .L1271: 9214 .LBB373: 9215 .LBB337: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9216 .loc 1 3215 0 9217 035c 4FF00112 mov r2, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 9218 .loc 1 3218 0 9219 0360 0023 movs r3, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9220 .loc 1 3215 0 9221 0362 A266 str r2, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9222 .loc 1 3219 0 9223 0364 C4E91C33 strd r3, r3, [r4, #112] 9224 .LVL695: 9225 0368 26E7 b .L1274 9226 .LVL696: 9227 .L1247: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9228 .loc 1 3076 0 9229 036a 344B ldr r3, .L1364+4 9230 036c 344A ldr r2, .L1364+8 9231 036e D3F88830 ldr r3, [r3, #136] 9232 0372 03F00303 and r3, r3, #3 9233 0376 D35C ldrb r3, [r2, r3] @ zero_extendqisi2 9234 .LVL697: ARM GAS /tmp/ccgDLloS.s page 276 9235 0378 58E7 b .L1249 9236 .LVL698: 9237 .L1264: 3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9238 .loc 1 3146 0 9239 037a FFF7FEFF bl HAL_RCC_GetSysClockFreq 9240 .LVL699: 9241 .L1279: 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9242 .loc 1 3158 0 9243 037e 0028 cmp r0, #0 9244 0380 ECD0 beq .L1271 9245 0382 616A ldr r1, [r4, #36] 9246 .LVL700: 9247 .L1262: 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 9248 .loc 1 3160 0 9249 0384 6268 ldr r2, [r4, #4] 9250 0386 2F4E ldr r6, .L1364+12 9251 0388 5308 lsrs r3, r2, #1 9252 038a 36F81160 ldrh r6, [r6, r1, lsl #1] 9253 038e B0FBF6F0 udiv r0, r0, r6 9254 0392 03EB4003 add r3, r3, r0, lsl #1 9255 0396 B3FBF2F3 udiv r3, r3, r2 9256 039a 9AB2 uxth r2, r3 9257 .LVL701: 3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9258 .loc 1 3161 0 9259 039c A2F11000 sub r0, r2, #16 9260 03a0 4FF6EF71 movw r1, #65519 9261 03a4 8842 cmp r0, r1 9262 03a6 3FF64EAF bhi .L1251 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); 9263 .loc 1 3163 0 9264 03aa 23F00F03 bic r3, r3, #15 9265 03ae 9BB2 uxth r3, r3 9266 .LVL702: 3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; 9267 .loc 1 3164 0 9268 03b0 C2F34202 ubfx r2, r2, #1, #3 9269 .LVL703: 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9270 .loc 1 3165 0 9271 03b4 2068 ldr r0, [r4] 9272 .LVL704: 9273 03b6 1343 orrs r3, r3, r2 9274 03b8 9CE6 b .L1352 9275 .LVL705: 9276 .L1361: 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9277 .loc 1 3134 0 9278 03ba 082B cmp r3, #8 9279 03bc 3FF643AF bhi .L1251 9280 03c0 01A2 adr r2, .L1276 9281 03c2 52F823F0 ldr pc, [r2, r3, lsl #2] 9282 03c6 00BF .p2align 2 9283 .L1276: ARM GAS /tmp/ccgDLloS.s page 277 9284 03c8 F3030000 .word .L1266+1 9285 03cc ED030000 .word .L1277+1 9286 03d0 FF030000 .word .L1278+1 9287 03d4 47020000 .word .L1251+1 9288 03d8 7B030000 .word .L1264+1 9289 03dc 47020000 .word .L1251+1 9290 03e0 47020000 .word .L1251+1 9291 03e4 47020000 .word .L1251+1 9292 03e8 F9030000 .word .L1304+1 9293 .p2align 1 9294 .L1277: 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9295 .loc 1 3140 0 9296 03ec FFF7FEFF bl HAL_RCC_GetPCLK2Freq 9297 .LVL706: 9298 03f0 C5E7 b .L1279 9299 .LVL707: 9300 .L1266: 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9301 .loc 1 3137 0 9302 03f2 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 9303 .LVL708: 9304 03f6 C2E7 b .L1279 9305 .LVL709: 9306 .L1304: 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9307 .loc 1 3149 0 9308 03f8 4FF40040 mov r0, #32768 9309 03fc C2E7 b .L1262 9310 .LVL710: 9311 .L1278: 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9312 .loc 1 3143 0 9313 03fe 0E48 ldr r0, .L1364 9314 0400 C0E7 b .L1262 9315 .LVL711: 9316 .L1353: 9317 .LBE337: 9318 .LBE373: 9319 .LBB374: 9320 .LBB368: 9321 .LBB364: 9322 .LBB361: 9323 .LBB358: 9324 .LBB355: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9325 .loc 1 3367 0 9326 0402 22F4D072 bic r2, r2, #416 9327 0406 1A60 str r2, [r3] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9328 .loc 1 3368 0 9329 0408 9A68 ldr r2, [r3, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 9330 .loc 1 3370 0 9331 040a 2021 movs r1, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9332 .loc 1 3368 0 ARM GAS /tmp/ccgDLloS.s page 278 9333 040c 22F00102 bic r2, r2, #1 9334 0410 9A60 str r2, [r3, #8] 9335 .LBE355: 9336 .LBE358: 9337 .LBE361: 9338 .LBE364: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9339 .loc 1 3331 0 9340 0412 0320 movs r0, #3 9341 .LBB365: 9342 .LBB362: 9343 .LBB359: 9344 .LBB356: 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 9345 .loc 1 3370 0 9346 0414 C4F88410 str r1, [r4, #132] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9347 .loc 1 3373 0 9348 0418 84F88050 strb r5, [r4, #128] 9349 .LVL712: 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9350 .loc 1 3371 0 9351 041c C4F88810 str r1, [r4, #136] 9352 0420 71E6 b .L1345 9353 .LVL713: 9354 .L1270: 9355 .LBE356: 9356 .LBE359: 9357 .LBE362: 9358 .LBE365: 9359 .LBE368: 9360 .LBE374: 9361 .LBB375: 9362 .LBB338: 3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9363 .loc 1 3091 0 9364 0422 FFF7FEFF bl HAL_RCC_GetSysClockFreq 9365 .LVL714: 9366 0426 56E7 b .L1269 9367 .LVL715: 9368 .L1306: 3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9369 .loc 1 3088 0 9370 0428 0348 ldr r0, .L1364 9371 042a 98E6 b .L1272 9372 .L1255: 9373 .LVL716: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9374 .loc 1 3132 0 9375 042c B6F5004F cmp r6, #32768 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9376 .loc 1 3143 0 9377 0430 0148 ldr r0, .L1364 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9378 .loc 1 3132 0 9379 0432 7FF44CAE bne .L1263 9380 0436 A5E7 b .L1262 ARM GAS /tmp/ccgDLloS.s page 279 9381 .L1365: 9382 .align 2 9383 .L1364: 9384 0438 0024F400 .word 16000000 9385 043c 00100240 .word 1073876992 9386 0440 00000000 .word .LANCHOR2 9387 0444 00000000 .word .LANCHOR1 9388 .LBE338: 9389 .LBE375: 9390 .cfi_endproc 9391 .LFE331: 9393 .section .text.HAL_MultiProcessor_Init,"ax",%progbits 9394 .align 1 9395 .p2align 2,,3 9396 .global HAL_MultiProcessor_Init 9397 .syntax unified 9398 .thumb 9399 .thumb_func 9400 .fpu fpv4-sp-d16 9402 HAL_MultiProcessor_Init: 9403 .LFB332: 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 9404 .loc 1 551 0 9405 .cfi_startproc 9406 @ args = 0, pretend = 0, frame = 0 9407 @ frame_needed = 0, uses_anonymous_args = 0 9408 .LVL717: 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9409 .loc 1 553 0 9410 0000 0028 cmp r0, #0 9411 0002 58D0 beq .L1421 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Check the UART handle allocation */ 9412 .loc 1 551 0 9413 0004 2DE9F849 push {r3, r4, r5, r6, r7, r8, fp, lr} 9414 .LCFI95: 9415 .cfi_def_cfa_offset 32 9416 .cfi_offset 3, -32 9417 .cfi_offset 4, -28 9418 .cfi_offset 5, -24 9419 .cfi_offset 6, -20 9420 .cfi_offset 7, -16 9421 .cfi_offset 8, -12 9422 .cfi_offset 11, -8 9423 .cfi_offset 14, -4 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9424 .loc 1 561 0 9425 0008 D0F88430 ldr r3, [r0, #132] 9426 000c 0446 mov r4, r0 9427 000e 1546 mov r5, r2 9428 0010 0E46 mov r6, r1 9429 0012 002B cmp r3, #0 9430 0014 4AD0 beq .L1478 9431 .LVL718: 9432 .L1368: 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9433 .loc 1 584 0 9434 0016 2368 ldr r3, [r4] ARM GAS /tmp/ccgDLloS.s page 280 9435 .LBB388: 9436 .LBB389: 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 9437 .loc 1 3048 0 9438 0018 D4F810E0 ldr lr, [r4, #16] 9439 001c A068 ldr r0, [r4, #8] 9440 001e D4F814C0 ldr ip, [r4, #20] 9441 .LBE389: 9442 .LBE388: 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9443 .loc 1 582 0 9444 0022 2422 movs r2, #36 9445 0024 C4F88420 str r2, [r4, #132] 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9446 .loc 1 584 0 9447 0028 1968 ldr r1, [r3] 9448 .LBB396: 9449 .LBB390: 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9450 .loc 1 3049 0 9451 002a BB4A ldr r2, .L1485 9452 .LBE390: 9453 .LBE396: 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9454 .loc 1 584 0 9455 002c 21F00101 bic r1, r1, #1 9456 0030 1960 str r1, [r3] 9457 .LVL719: 9458 .LBB397: 9459 .LBB391: 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9460 .loc 1 3049 0 9461 0032 1F68 ldr r7, [r3] 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 9462 .loc 1 3048 0 9463 0034 E169 ldr r1, [r4, #28] 9464 .LVL720: 9465 0036 40EA0E00 orr r0, r0, lr 9466 003a 40EA0C00 orr r0, r0, ip 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9467 .loc 1 3049 0 9468 003e 3A40 ands r2, r2, r7 3048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 9469 .loc 1 3048 0 9470 0040 0843 orrs r0, r0, r1 3049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9471 .loc 1 3049 0 9472 0042 1043 orrs r0, r0, r2 9473 0044 1860 str r0, [r3] 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9474 .loc 1 3054 0 9475 0046 5A68 ldr r2, [r3, #4] 9476 0048 E768 ldr r7, [r4, #12] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9477 .loc 1 3064 0 9478 004a B448 ldr r0, .L1485+4 3062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 281 9479 .loc 1 3062 0 9480 004c D4F818E0 ldr lr, [r4, #24] 9481 .LVL721: 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9482 .loc 1 3054 0 9483 0050 22F44052 bic r2, r2, #12288 9484 0054 3A43 orrs r2, r2, r7 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9485 .loc 1 3064 0 9486 0056 8342 cmp r3, r0 3054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9487 .loc 1 3054 0 9488 0058 5A60 str r2, [r3, #4] 9489 005a 676A ldr r7, [r4, #36] 3064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9490 .loc 1 3064 0 9491 005c 2DD0 beq .L1369 9492 .LVL722: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9493 .loc 1 3068 0 9494 005e 9868 ldr r0, [r3, #8] 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9495 .loc 1 3066 0 9496 0060 226A ldr r2, [r4, #32] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9497 .loc 1 3076 0 9498 0062 DFF8D8C2 ldr ip, .L1485+36 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9499 .loc 1 3068 0 9500 0066 20F06E40 bic r0, r0, #-301989888 9501 006a 20F43060 bic r0, r0, #2816 3066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9502 .loc 1 3066 0 9503 006e 4EEA0202 orr r2, lr, r2 9504 .LVL723: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9505 .loc 1 3068 0 9506 0072 0243 orrs r2, r2, r0 9507 .LVL724: 9508 0074 9A60 str r2, [r3, #8] 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9509 .loc 1 3073 0 9510 0076 DA6A ldr r2, [r3, #44] 9511 0078 22F00F02 bic r2, r2, #15 9512 007c 3A43 orrs r2, r2, r7 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9513 .loc 1 3076 0 9514 007e 6345 cmp r3, ip 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9515 .loc 1 3073 0 9516 0080 DA62 str r2, [r3, #44] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9517 .loc 1 3076 0 9518 0082 3CD0 beq .L1370 9519 .LVL725: 9520 0084 A64A ldr r2, .L1485+8 9521 0086 9342 cmp r3, r2 ARM GAS /tmp/ccgDLloS.s page 282 9522 0088 5CD0 beq .L1479 9523 008a A64A ldr r2, .L1485+12 9524 008c 9342 cmp r3, r2 9525 008e 00F05781 beq .L1480 9526 0092 A54A ldr r2, .L1485+16 9527 0094 9342 cmp r3, r2 9528 0096 00F0F980 beq .L1481 9529 .L1374: 9530 .LVL726: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9531 .loc 1 3215 0 9532 009a 4FF00112 mov r2, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 9533 .loc 1 3218 0 9534 009e 0023 movs r3, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9535 .loc 1 3215 0 9536 00a0 A266 str r2, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9537 .loc 1 3219 0 9538 00a2 C4E91C33 strd r3, r3, [r4, #112] 9539 .LVL727: 9540 .LBE391: 9541 .LBE397: 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9542 .loc 1 589 0 9543 00a6 0120 movs r0, #1 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9544 .loc 1 616 0 9545 00a8 BDE8F889 pop {r3, r4, r5, r6, r7, r8, fp, pc} 9546 .LVL728: 9547 .L1478: 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9548 .loc 1 564 0 9549 00ac 80F88030 strb r3, [r0, #128] 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 9550 .loc 1 578 0 9551 00b0 FFF7FEFF bl HAL_UART_MspInit 9552 .LVL729: 9553 00b4 AFE7 b .L1368 9554 .LVL730: 9555 .L1421: 9556 .LCFI96: 9557 .cfi_def_cfa_offset 0 9558 .cfi_restore 3 9559 .cfi_restore 4 9560 .cfi_restore 5 9561 .cfi_restore 6 9562 .cfi_restore 7 9563 .cfi_restore 8 9564 .cfi_restore 11 9565 .cfi_restore 14 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9566 .loc 1 555 0 9567 00b6 0120 movs r0, #1 9568 .LVL731: 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 283 9569 .loc 1 616 0 9570 00b8 7047 bx lr 9571 .LVL732: 9572 .L1369: 9573 .LCFI97: 9574 .cfi_def_cfa_offset 32 9575 .cfi_offset 3, -32 9576 .cfi_offset 4, -28 9577 .cfi_offset 5, -24 9578 .cfi_offset 6, -20 9579 .cfi_offset 7, -16 9580 .cfi_offset 8, -12 9581 .cfi_offset 11, -8 9582 .cfi_offset 14, -4 9583 .LBB398: 9584 .LBB392: 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9585 .loc 1 3068 0 9586 00ba 9A68 ldr r2, [r3, #8] 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9587 .loc 1 3076 0 9588 00bc 9B49 ldr r1, .L1485+20 3068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9589 .loc 1 3068 0 9590 00be 22F06E42 bic r2, r2, #-301989888 9591 00c2 22F43062 bic r2, r2, #2816 9592 00c6 42EA0E02 orr r2, r2, lr 9593 00ca 9A60 str r2, [r3, #8] 3073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9594 .loc 1 3073 0 9595 00cc DA6A ldr r2, [r3, #44] 9596 00ce 22F00F02 bic r2, r2, #15 9597 00d2 3A43 orrs r2, r2, r7 9598 00d4 DA62 str r2, [r3, #44] 9599 .LVL733: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9600 .loc 1 3076 0 9601 00d6 D1F88830 ldr r3, [r1, #136] 9602 00da 03F44063 and r3, r3, #3072 9603 00de B3F5806F cmp r3, #1024 9604 00e2 00F0A481 beq .L1393 9605 00e6 40F26781 bls .L1482 9606 00ea B3F5006F cmp r3, #2048 9607 00ee 00F0B481 beq .L1428 9608 00f2 B3F5406F cmp r3, #3072 9609 00f6 D0D1 bne .L1374 3094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9610 .loc 1 3094 0 9611 00f8 4FF40040 mov r0, #32768 9612 00fc 64E1 b .L1395 9613 .LVL734: 9614 .L1370: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9615 .loc 1 3076 0 9616 00fe 8B4B ldr r3, .L1485+20 9617 0100 8B4A ldr r2, .L1485+24 9618 0102 D3F88830 ldr r3, [r3, #136] ARM GAS /tmp/ccgDLloS.s page 284 9619 0106 03F00303 and r3, r3, #3 9620 010a D35C ldrb r3, [r2, r3] @ zero_extendqisi2 9621 .LVL735: 9622 .L1372: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9623 .loc 1 3132 0 9624 010c B1F5004F cmp r1, #32768 9625 0110 00F02981 beq .L1483 3175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9626 .loc 1 3175 0 9627 0114 082B cmp r3, #8 9628 0116 C0D8 bhi .L1374 9629 0118 01A2 adr r2, .L1403 9630 011a 52F823F0 ldr pc, [r2, r3, lsl #2] 9631 011e 00BF .p2align 2 9632 .L1403: 9633 0120 87020000 .word .L1390+1 9634 0124 55010000 .word .L1404+1 9635 0128 3B040000 .word .L1405+1 9636 012c 9B000000 .word .L1374+1 9637 0130 81020000 .word .L1388+1 9638 0134 9B000000 .word .L1374+1 9639 0138 9B000000 .word .L1374+1 9640 013c 9B000000 .word .L1374+1 9641 0140 61030000 .word .L1427+1 9642 .LVL736: 9643 .p2align 1 9644 .L1479: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9645 .loc 1 3076 0 9646 0144 794B ldr r3, .L1485+20 9647 0146 7B4A ldr r2, .L1485+28 9648 0148 D3F88830 ldr r3, [r3, #136] 9649 014c 03F00C03 and r3, r3, #12 9650 0150 D35C ldrb r3, [r2, r3] @ zero_extendqisi2 9651 .LVL737: 9652 0152 DBE7 b .L1372 9653 .L1404: 3181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9654 .loc 1 3181 0 9655 0154 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 9656 .LVL738: 9657 .L1406: 3198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9658 .loc 1 3198 0 9659 0158 0028 cmp r0, #0 9660 015a 00F0D580 beq .L1394 9661 015e 676A ldr r7, [r4, #36] 9662 .LVL739: 9663 .L1386: 3201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 9664 .loc 1 3201 0 9665 0160 6268 ldr r2, [r4, #4] 9666 0162 754B ldr r3, .L1485+32 9667 0164 33F81730 ldrh r3, [r3, r7, lsl #1] 9668 0168 B0FBF3F3 udiv r3, r0, r3 9669 016c 03EB5203 add r3, r3, r2, lsr #1 ARM GAS /tmp/ccgDLloS.s page 285 9670 0170 B3FBF2F3 udiv r3, r3, r2 9671 0174 9BB2 uxth r3, r3 9672 .LVL740: 3202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9673 .loc 1 3202 0 9674 0176 A3F11001 sub r1, r3, #16 9675 017a 4FF6EF72 movw r2, #65519 9676 017e 9142 cmp r1, r2 9677 0180 8BD8 bhi .L1374 3204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9678 .loc 1 3204 0 9679 0182 2168 ldr r1, [r4] 9680 .LVL741: 9681 .L1474: 9682 0184 CB60 str r3, [r1, #12] 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 9683 .loc 1 3218 0 9684 0186 0023 movs r3, #0 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9685 .loc 1 3219 0 9686 0188 C4E91C33 strd r3, r3, [r4, #112] 9687 .LVL742: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9688 .loc 1 3215 0 9689 018c 4FF00112 mov r2, #65537 9690 0190 A266 str r2, [r4, #104] 9691 .L1397: 9692 .LBE392: 9693 .LBE398: 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9694 .loc 1 592 0 9695 0192 A36A ldr r3, [r4, #40] 9696 0194 002B cmp r3, #0 9697 0196 40F0B380 bne .L1484 9698 .L1407: 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 9699 .loc 1 600 0 9700 019a 2368 ldr r3, [r4] 9701 019c 5A68 ldr r2, [r3, #4] 9702 019e 22F49042 bic r2, r2, #18432 9703 01a2 5A60 str r2, [r3, #4] 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9704 .loc 1 601 0 9705 01a4 9A68 ldr r2, [r3, #8] 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9706 .loc 1 603 0 9707 01a6 B5F5006F cmp r5, #2048 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9708 .loc 1 601 0 9709 01aa 22F02A02 bic r2, r2, #42 9710 01ae 9A60 str r2, [r3, #8] 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9711 .loc 1 603 0 9712 01b0 05D1 bne .L1408 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9713 .loc 1 606 0 9714 01b2 5968 ldr r1, [r3, #4] ARM GAS /tmp/ccgDLloS.s page 286 9715 01b4 21F07F41 bic r1, r1, #-16777216 9716 01b8 41EA0666 orr r6, r1, r6, lsl #24 9717 01bc 5E60 str r6, [r3, #4] 9718 .L1408: 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9719 .loc 1 610 0 9720 01be 1A68 ldr r2, [r3] 9721 01c0 22F40062 bic r2, r2, #2048 9722 01c4 1543 orrs r5, r5, r2 9723 .LVL743: 9724 01c6 1D60 str r5, [r3] 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9725 .loc 1 612 0 9726 01c8 1A68 ldr r2, [r3] 9727 .LBB399: 9728 .LBB400: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9729 .loc 1 3308 0 9730 01ca 0021 movs r1, #0 9731 .LBE400: 9732 .LBE399: 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9733 .loc 1 612 0 9734 01cc 42F00102 orr r2, r2, #1 9735 01d0 1A60 str r2, [r3] 9736 .LVL744: 9737 .LBB426: 9738 .LBB423: 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9739 .loc 1 3308 0 9740 01d2 C4F88C10 str r1, [r4, #140] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9741 .loc 1 3311 0 9742 01d6 FFF7FEFF bl HAL_GetTick 9743 .LVL745: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9744 .loc 1 3314 0 9745 01da 2368 ldr r3, [r4] 9746 01dc 1A68 ldr r2, [r3] 9747 01de 1107 lsls r1, r2, #28 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9748 .loc 1 3311 0 9749 01e0 0646 mov r6, r0 9750 .LVL746: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9751 .loc 1 3314 0 9752 01e2 0ED4 bmi .L1409 9753 .LVL747: 9754 .L1410: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9755 .loc 1 3325 0 9756 01e4 1A68 ldr r2, [r3] 9757 01e6 5007 lsls r0, r2, #29 9758 01e8 33D4 bmi .L1414 9759 .L1418: 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9760 .loc 1 3338 0 ARM GAS /tmp/ccgDLloS.s page 287 9761 01ea 0023 movs r3, #0 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 9762 .loc 1 3336 0 9763 01ec 2022 movs r2, #32 9764 01ee C4F88420 str r2, [r4, #132] 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9765 .loc 1 3340 0 9766 01f2 84F88030 strb r3, [r4, #128] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 9767 .loc 1 3337 0 9768 01f6 C4F88820 str r2, [r4, #136] 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9769 .loc 1 3342 0 9770 01fa 1846 mov r0, r3 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9771 .loc 1 3338 0 9772 01fc E366 str r3, [r4, #108] 9773 .L1467: 9774 .LBE423: 9775 .LBE426: 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9776 .loc 1 616 0 9777 01fe BDE8F889 pop {r3, r4, r5, r6, r7, r8, fp, pc} 9778 .LVL748: 9779 .L1409: 9780 .LBB427: 9781 .LBB424: 9782 .LBB401: 9783 .LBB402: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9784 .loc 1 3358 0 9785 0202 DD69 ldr r5, [r3, #28] 9786 0204 15F40015 ands r5, r5, #2097152 9787 0208 ECD1 bne .L1410 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9788 .loc 1 3363 0 9789 020a FFF7FEFF bl HAL_GetTick 9790 .LVL749: 9791 .LBB403: 9792 .LBB404: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9793 .loc 1 3367 0 9794 020e 2368 ldr r3, [r4] 9795 .LBE404: 9796 .LBE403: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9797 .loc 1 3363 0 9798 0210 801B subs r0, r0, r6 9799 0212 B0F1007F cmp r0, #33554432 9800 .LBB406: 9801 .LBB405: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9802 .loc 1 3367 0 9803 0216 1A68 ldr r2, [r3] 9804 .LBE405: 9805 .LBE406: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 288 9806 .loc 1 3363 0 9807 0218 80F0BE80 bcs .L1475 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9808 .loc 1 3378 0 9809 021c 5207 lsls r2, r2, #29 9810 021e F0D5 bpl .L1409 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9811 .loc 1 3380 0 9812 0220 DA69 ldr r2, [r3, #28] 9813 0222 1705 lsls r7, r2, #20 9814 0224 EDD5 bpl .L1409 9815 .L1476: 9816 .LBE402: 9817 .LBE401: 9818 .LBB407: 9819 .LBB408: 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9820 .loc 1 3383 0 9821 0226 4FF40062 mov r2, #2048 9822 022a 1A62 str r2, [r3, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9823 .loc 1 3387 0 9824 022c 1A68 ldr r2, [r3] 9825 022e 22F4D072 bic r2, r2, #416 9826 0232 1A60 str r2, [r3] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9827 .loc 1 3388 0 9828 0234 9968 ldr r1, [r3, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 9829 .loc 1 3390 0 9830 0236 2022 movs r2, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9831 .loc 1 3388 0 9832 0238 21F00101 bic r1, r1, #1 9833 023c 9960 str r1, [r3, #8] 9834 .LBE408: 9835 .LBE407: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9836 .loc 1 3331 0 9837 023e 0320 movs r0, #3 9838 .LBB420: 9839 .LBB417: 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 9840 .loc 1 3390 0 9841 0240 C4F88420 str r2, [r4, #132] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9842 .loc 1 3395 0 9843 0244 84F88050 strb r5, [r4, #128] 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 9844 .loc 1 3391 0 9845 0248 C4F88820 str r2, [r4, #136] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9846 .loc 1 3392 0 9847 024c C4F88C20 str r2, [r4, #140] 9848 0250 D5E7 b .L1467 9849 .L1414: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { ARM GAS /tmp/ccgDLloS.s page 289 9850 .loc 1 3358 0 9851 0252 DD69 ldr r5, [r3, #28] 9852 0254 15F48005 ands r5, r5, #4194304 9853 0258 C7D1 bne .L1418 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9854 .loc 1 3363 0 9855 025a FFF7FEFF bl HAL_GetTick 9856 .LVL750: 9857 .LBB409: 9858 .LBB410: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9859 .loc 1 3367 0 9860 025e 2368 ldr r3, [r4] 9861 .LBE410: 9862 .LBE409: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9863 .loc 1 3363 0 9864 0260 801B subs r0, r0, r6 9865 0262 B0F1007F cmp r0, #33554432 9866 .LBB414: 9867 .LBB411: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 9868 .loc 1 3367 0 9869 0266 1A68 ldr r2, [r3] 9870 .LBE411: 9871 .LBE414: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9872 .loc 1 3363 0 9873 0268 80F09680 bcs .L1475 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9874 .loc 1 3378 0 9875 026c 5107 lsls r1, r2, #29 9876 026e F0D5 bpl .L1414 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9877 .loc 1 3380 0 9878 0270 DA69 ldr r2, [r3, #28] 9879 0272 1205 lsls r2, r2, #20 9880 0274 EDD5 bpl .L1414 9881 0276 D6E7 b .L1476 9882 .LVL751: 9883 .L1375: 9884 .LBE417: 9885 .LBE420: 9886 .LBE424: 9887 .LBE427: 9888 .LBB428: 9889 .LBB393: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9890 .loc 1 3132 0 9891 0278 B1F5004F cmp r1, #32768 9892 027c 00F0E580 beq .L1387 9893 .LVL752: 9894 .L1388: 3187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9895 .loc 1 3187 0 9896 0280 FFF7FEFF bl HAL_RCC_GetSysClockFreq 9897 .LVL753: ARM GAS /tmp/ccgDLloS.s page 290 9898 0284 68E7 b .L1406 9899 .LVL754: 9900 .L1390: 3178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9901 .loc 1 3178 0 9902 0286 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 9903 .LVL755: 9904 028a 65E7 b .L1406 9905 .LVL756: 9906 .L1481: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9907 .loc 1 3076 0 9908 028c 274B ldr r3, .L1485+20 9909 028e D3F88830 ldr r3, [r3, #136] 9910 0292 03F0C003 and r3, r3, #192 9911 0296 402B cmp r3, #64 9912 0298 EED0 beq .L1375 9913 029a 26D9 bls .L1477 9914 029c 802B cmp r3, #128 9915 029e 00F0CE80 beq .L1378 9916 02a2 C02B cmp r3, #192 9917 02a4 7FF4F9AE bne .L1374 9918 .LVL757: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9919 .loc 1 3132 0 9920 02a8 B1F5004F cmp r1, #32768 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9921 .loc 1 3149 0 9922 02ac 4FF40040 mov r0, #32768 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9923 .loc 1 3132 0 9924 02b0 7FF456AF bne .L1386 9925 .LVL758: 9926 .L1385: 3160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 9927 .loc 1 3160 0 9928 02b4 6268 ldr r2, [r4, #4] 9929 02b6 2049 ldr r1, .L1485+32 9930 02b8 5308 lsrs r3, r2, #1 9931 02ba 31F81710 ldrh r1, [r1, r7, lsl #1] 9932 02be B0FBF1F0 udiv r0, r0, r1 9933 02c2 03EB4003 add r3, r3, r0, lsl #1 9934 02c6 B3FBF2F3 udiv r3, r3, r2 9935 02ca 9AB2 uxth r2, r3 9936 .LVL759: 3161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9937 .loc 1 3161 0 9938 02cc A2F11000 sub r0, r2, #16 9939 02d0 4FF6EF71 movw r1, #65519 9940 02d4 8842 cmp r0, r1 9941 02d6 3FF6E0AE bhi .L1374 3163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); 9942 .loc 1 3163 0 9943 02da 23F00F03 bic r3, r3, #15 9944 02de 9BB2 uxth r3, r3 9945 .LVL760: 3164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->Instance->BRR = brrtemp; ARM GAS /tmp/ccgDLloS.s page 291 9946 .loc 1 3164 0 9947 02e0 C2F34202 ubfx r2, r2, #1, #3 9948 .LVL761: 3165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9949 .loc 1 3165 0 9950 02e4 2168 ldr r1, [r4] 9951 02e6 1343 orrs r3, r3, r2 9952 .LVL762: 9953 02e8 4CE7 b .L1474 9954 .LVL763: 9955 .L1477: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9956 .loc 1 3076 0 9957 02ea 002B cmp r3, #0 9958 02ec 7FF4D5AE bne .L1374 9959 .LVL764: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9960 .loc 1 3132 0 9961 02f0 B1F5004F cmp r1, #32768 9962 02f4 C7D1 bne .L1390 9963 .LVL765: 9964 .L1389: 3137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 9965 .loc 1 3137 0 9966 02f6 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 9967 .LVL766: 9968 .L1402: 3158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 9969 .loc 1 3158 0 9970 02fa 28B1 cbz r0, .L1394 9971 02fc 676A ldr r7, [r4, #36] 9972 02fe D9E7 b .L1385 9973 .LVL767: 9974 .L1484: 9975 .LBE393: 9976 .LBE428: 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 9977 .loc 1 594 0 9978 0300 2046 mov r0, r4 9979 0302 FFF7FEFF bl UART_AdvFeatureConfig 9980 .LVL768: 9981 0306 48E7 b .L1407 9982 .LVL769: 9983 .L1394: 9984 .LBB429: 9985 .LBB394: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9986 .loc 1 3215 0 9987 0308 4FF00112 mov r2, #65537 3218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->TxISR = NULL; 9988 .loc 1 3218 0 9989 030c 0023 movs r3, #0 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9990 .loc 1 3215 0 9991 030e A266 str r2, [r4, #104] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 9992 .loc 1 3219 0 ARM GAS /tmp/ccgDLloS.s page 292 9993 0310 C4E91C33 strd r3, r3, [r4, #112] 9994 .LVL770: 9995 0314 3DE7 b .L1397 9996 .L1486: 9997 0316 00BF .align 2 9998 .L1485: 9999 0318 F369FFCF .word -805344781 10000 031c 00800040 .word 1073774592 10001 0320 00440040 .word 1073759232 10002 0324 00480040 .word 1073760256 10003 0328 004C0040 .word 1073761280 10004 032c 00100240 .word 1073876992 10005 0330 00000000 .word .LANCHOR2 10006 0334 00000000 .word .LANCHOR0 10007 0338 00000000 .word .LANCHOR1 10008 033c 00380140 .word 1073821696 10009 .LVL771: 10010 .L1480: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10011 .loc 1 3076 0 10012 0340 474B ldr r3, .L1487 10013 0342 D3F88830 ldr r3, [r3, #136] 10014 0346 03F03003 and r3, r3, #48 10015 034a 102B cmp r3, #16 10016 034c 94D0 beq .L1375 10017 034e CCD9 bls .L1477 10018 0350 202B cmp r3, #32 10019 0352 74D0 beq .L1378 10020 0354 302B cmp r3, #48 10021 0356 7FF4A0AE bne .L1374 10022 .LVL772: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10023 .loc 1 3132 0 10024 035a B1F5004F cmp r1, #32768 10025 035e 79D0 beq .L1426 10026 .LVL773: 10027 .L1427: 3190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10028 .loc 1 3190 0 10029 0360 4FF40040 mov r0, #32768 10030 0364 FCE6 b .L1386 10031 .LVL774: 10032 .L1483: 3134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10033 .loc 1 3134 0 10034 0366 082B cmp r3, #8 10035 0368 3FF697AE bhi .L1374 10036 036c 01A2 adr r2, .L1399 10037 036e 52F823F0 ldr pc, [r2, r3, lsl #2] 10038 0372 00BF .p2align 2 10039 .L1399: 10040 0374 F7020000 .word .L1389+1 10041 0378 35040000 .word .L1400+1 10042 037c 51040000 .word .L1401+1 10043 0380 9B000000 .word .L1374+1 10044 0384 4B040000 .word .L1387+1 10045 0388 9B000000 .word .L1374+1 ARM GAS /tmp/ccgDLloS.s page 293 10046 038c 9B000000 .word .L1374+1 10047 0390 9B000000 .word .L1374+1 10048 0394 55040000 .word .L1426+1 10049 .LVL775: 10050 .p2align 1 10051 .L1475: 10052 .LBE394: 10053 .LBE429: 10054 .LBB430: 10055 .LBB425: 10056 .LBB421: 10057 .LBB418: 10058 .LBB415: 10059 .LBB412: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 10060 .loc 1 3367 0 10061 0398 22F4D072 bic r2, r2, #416 10062 039c 1A60 str r2, [r3] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10063 .loc 1 3368 0 10064 039e 9A68 ldr r2, [r3, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10065 .loc 1 3370 0 10066 03a0 2021 movs r1, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10067 .loc 1 3368 0 10068 03a2 22F00102 bic r2, r2, #1 10069 03a6 9A60 str r2, [r3, #8] 10070 .LBE412: 10071 .LBE415: 10072 .LBE418: 10073 .LBE421: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10074 .loc 1 3331 0 10075 03a8 0320 movs r0, #3 10076 .LBB422: 10077 .LBB419: 10078 .LBB416: 10079 .LBB413: 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10080 .loc 1 3370 0 10081 03aa C4F88410 str r1, [r4, #132] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10082 .loc 1 3373 0 10083 03ae 84F88050 strb r5, [r4, #128] 10084 .LVL776: 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10085 .loc 1 3371 0 10086 03b2 C4F88810 str r1, [r4, #136] 10087 03b6 22E7 b .L1467 10088 .LVL777: 10089 .L1482: 10090 .LBE413: 10091 .LBE416: 10092 .LBE419: 10093 .LBE422: 10094 .LBE425: ARM GAS /tmp/ccgDLloS.s page 294 10095 .LBE430: 10096 .LBB431: 10097 .LBB395: 3076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10098 .loc 1 3076 0 10099 03b8 002B cmp r3, #0 10100 03ba 7FF46EAE bne .L1374 3085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10101 .loc 1 3085 0 10102 03be FFF7FEFF bl HAL_RCC_GetPCLK1Freq 10103 .LVL778: 10104 .L1392: 3103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10105 .loc 1 3103 0 10106 03c2 0028 cmp r0, #0 10107 03c4 A0D0 beq .L1394 10108 03c6 676A ldr r7, [r4, #36] 10109 .LVL779: 10110 .L1395: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 10111 .loc 1 3109 0 10112 03c8 D4F80480 ldr r8, [r4, #4] 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10113 .loc 1 3106 0 10114 03cc 254B ldr r3, .L1487+4 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 10115 .loc 1 3109 0 10116 03ce 08EB4801 add r1, r8, r8, lsl #1 3106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10117 .loc 1 3106 0 10118 03d2 33F81720 ldrh r2, [r3, r7, lsl #1] 10119 03d6 B0FBF2F3 udiv r3, r0, r2 10120 .LVL780: 3109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) 10121 .loc 1 3109 0 10122 03da 8B42 cmp r3, r1 10123 03dc FFF45DAE bcc .L1374 10124 03e0 B3EB083F cmp r3, r8, lsl #12 10125 03e4 3FF659AE bhi .L1374 3118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX)) 10126 .loc 1 3118 0 10127 03e8 0027 movs r7, #0 10128 03ea 0023 movs r3, #0 10129 .LVL781: 10130 03ec 3946 mov r1, r7 10131 03ee FFF7FEFF bl __aeabi_uldivmod 10132 .LVL782: 10133 03f2 0B02 lsls r3, r1, #8 10134 03f4 43EA1063 orr r3, r3, r0, lsr #24 10135 03f8 0202 lsls r2, r0, #8 10136 03fa 4FEA5800 lsr r0, r8, #1 10137 03fe 12EB000B adds fp, r2, r0 10138 0402 43F1000C adc ip, r3, #0 10139 0406 4246 mov r2, r8 10140 0408 3B46 mov r3, r7 10141 040a 5846 mov r0, fp 10142 040c 6146 mov r1, ip ARM GAS /tmp/ccgDLloS.s page 295 10143 040e FFF7FEFF bl __aeabi_uldivmod 10144 .LVL783: 3119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10145 .loc 1 3119 0 10146 0412 154B ldr r3, .L1487+8 10147 0414 A0F54072 sub r2, r0, #768 10148 0418 9A42 cmp r2, r3 10149 041a 3FF63EAE bhi .L1374 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10150 .loc 1 3121 0 10151 041e 2268 ldr r2, [r4] 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10152 .loc 1 3215 0 10153 0420 4FF00113 mov r3, #65537 3121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10154 .loc 1 3121 0 10155 0424 D060 str r0, [r2, #12] 3219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10156 .loc 1 3219 0 10157 0426 C4E91C77 strd r7, r7, [r4, #112] 10158 .LVL784: 3215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10159 .loc 1 3215 0 10160 042a A366 str r3, [r4, #104] 10161 042c B1E6 b .L1397 10162 .LVL785: 10163 .L1393: 3091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10164 .loc 1 3091 0 10165 042e FFF7FEFF bl HAL_RCC_GetSysClockFreq 10166 .LVL786: 10167 0432 C6E7 b .L1392 10168 .LVL787: 10169 .L1400: 3140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10170 .loc 1 3140 0 10171 0434 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 10172 .LVL788: 10173 0438 5FE7 b .L1402 10174 .LVL789: 10175 .L1405: 3184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10176 .loc 1 3184 0 10177 043a 0C48 ldr r0, .L1487+12 10178 043c 90E6 b .L1386 10179 .LVL790: 10180 .L1378: 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10181 .loc 1 3132 0 10182 043e B1F5004F cmp r1, #32768 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10183 .loc 1 3143 0 10184 0442 0A48 ldr r0, .L1487+12 3132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10185 .loc 1 3132 0 10186 0444 7FF48CAE bne .L1386 10187 0448 34E7 b .L1385 ARM GAS /tmp/ccgDLloS.s page 296 10188 .LVL791: 10189 .L1387: 3146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10190 .loc 1 3146 0 10191 044a FFF7FEFF bl HAL_RCC_GetSysClockFreq 10192 .LVL792: 10193 044e 54E7 b .L1402 10194 .LVL793: 10195 .L1401: 3143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10196 .loc 1 3143 0 10197 0450 0648 ldr r0, .L1487+12 10198 0452 2FE7 b .L1385 10199 .LVL794: 10200 .L1426: 3149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10201 .loc 1 3149 0 10202 0454 4FF40040 mov r0, #32768 10203 0458 2CE7 b .L1385 10204 .L1428: 3088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** break; 10205 .loc 1 3088 0 10206 045a 0448 ldr r0, .L1487+12 10207 045c B4E7 b .L1395 10208 .L1488: 10209 045e 00BF .align 2 10210 .L1487: 10211 0460 00100240 .word 1073876992 10212 0464 00000000 .word .LANCHOR1 10213 0468 FFFC0F00 .word 1047807 10214 046c 0024F400 .word 16000000 10215 .LBE395: 10216 .LBE431: 10217 .cfi_endproc 10218 .LFE332: 10220 .section .text.UART_CheckIdleState,"ax",%progbits 10221 .align 1 10222 .p2align 2,,3 10223 .global UART_CheckIdleState 10224 .syntax unified 10225 .thumb 10226 .thumb_func 10227 .fpu fpv4-sp-d16 10229 UART_CheckIdleState: 10230 .LFB374: 3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; 10231 .loc 1 3304 0 10232 .cfi_startproc 10233 @ args = 0, pretend = 0, frame = 0 10234 @ frame_needed = 0, uses_anonymous_args = 0 10235 .LVL795: 10236 0000 70B5 push {r4, r5, r6, lr} 10237 .LCFI98: 10238 .cfi_def_cfa_offset 16 10239 .cfi_offset 4, -16 10240 .cfi_offset 5, -12 10241 .cfi_offset 6, -8 ARM GAS /tmp/ccgDLloS.s page 297 10242 .cfi_offset 14, -4 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10243 .loc 1 3308 0 10244 0002 0023 movs r3, #0 3304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** uint32_t tickstart; 10245 .loc 1 3304 0 10246 0004 0446 mov r4, r0 3308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10247 .loc 1 3308 0 10248 0006 C0F88C30 str r3, [r0, #140] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10249 .loc 1 3311 0 10250 000a FFF7FEFF bl HAL_GetTick 10251 .LVL796: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10252 .loc 1 3314 0 10253 000e 2368 ldr r3, [r4] 10254 0010 1A68 ldr r2, [r3] 3311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10255 .loc 1 3311 0 10256 0012 0646 mov r6, r0 10257 .LVL797: 3314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10258 .loc 1 3314 0 10259 0014 1007 lsls r0, r2, #28 10260 .LVL798: 10261 0016 0DD4 bmi .L1490 10262 .L1491: 3325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10263 .loc 1 3325 0 10264 0018 1A68 ldr r2, [r3] 10265 001a 5007 lsls r0, r2, #29 10266 001c 31D4 bmi .L1496 10267 .L1500: 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10268 .loc 1 3338 0 10269 001e 0023 movs r3, #0 3336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10270 .loc 1 3336 0 10271 0020 2022 movs r2, #32 10272 0022 C4F88420 str r2, [r4, #132] 3340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10273 .loc 1 3340 0 10274 0026 84F88030 strb r3, [r4, #128] 3337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 10275 .loc 1 3337 0 10276 002a C4F88820 str r2, [r4, #136] 3342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10277 .loc 1 3342 0 10278 002e 1846 mov r0, r3 3338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10279 .loc 1 3338 0 10280 0030 E366 str r3, [r4, #108] 3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10281 .loc 1 3343 0 10282 0032 70BD pop {r4, r5, r6, pc} 10283 .LVL799: ARM GAS /tmp/ccgDLloS.s page 298 10284 .L1490: 10285 .LBB440: 10286 .LBB441: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10287 .loc 1 3358 0 10288 0034 DD69 ldr r5, [r3, #28] 10289 0036 15F40015 ands r5, r5, #2097152 10290 003a EDD1 bne .L1491 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10291 .loc 1 3363 0 10292 003c FFF7FEFF bl HAL_GetTick 10293 .LVL800: 10294 .LBB442: 10295 .LBB443: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 10296 .loc 1 3367 0 10297 0040 2368 ldr r3, [r4] 10298 .LBE443: 10299 .LBE442: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10300 .loc 1 3363 0 10301 0042 801B subs r0, r0, r6 10302 0044 B0F1007F cmp r0, #33554432 10303 .LBB445: 10304 .LBB444: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 10305 .loc 1 3367 0 10306 0048 1A68 ldr r2, [r3] 10307 .LBE444: 10308 .LBE445: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10309 .loc 1 3363 0 10310 004a 2CD2 bcs .L1516 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10311 .loc 1 3378 0 10312 004c 5107 lsls r1, r2, #29 10313 004e F1D5 bpl .L1490 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10314 .loc 1 3380 0 10315 0050 DA69 ldr r2, [r3, #28] 10316 0052 1205 lsls r2, r2, #20 10317 0054 EED5 bpl .L1490 10318 .L1517: 10319 .LBE441: 10320 .LBE440: 10321 .LBB446: 10322 .LBB447: 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10323 .loc 1 3383 0 10324 0056 4FF40062 mov r2, #2048 10325 005a 1A62 str r2, [r3, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 10326 .loc 1 3387 0 10327 005c 1A68 ldr r2, [r3] 10328 005e 22F4D072 bic r2, r2, #416 10329 0062 1A60 str r2, [r3] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 299 10330 .loc 1 3388 0 10331 0064 9968 ldr r1, [r3, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10332 .loc 1 3390 0 10333 0066 2022 movs r2, #32 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10334 .loc 1 3388 0 10335 0068 21F00101 bic r1, r1, #1 10336 006c 9960 str r1, [r3, #8] 10337 .LBE447: 10338 .LBE446: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10339 .loc 1 3331 0 10340 006e 0320 movs r0, #3 10341 .LBB459: 10342 .LBB456: 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10343 .loc 1 3390 0 10344 0070 C4F88420 str r2, [r4, #132] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10345 .loc 1 3395 0 10346 0074 84F88050 strb r5, [r4, #128] 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 10347 .loc 1 3391 0 10348 0078 C4F88820 str r2, [r4, #136] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10349 .loc 1 3392 0 10350 007c C4F88C20 str r2, [r4, #140] 10351 .LBE456: 10352 .LBE459: 3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10353 .loc 1 3343 0 10354 0080 70BD pop {r4, r5, r6, pc} 10355 .LVL801: 10356 .L1496: 10357 .LBB460: 10358 .LBB457: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10359 .loc 1 3358 0 10360 0082 DD69 ldr r5, [r3, #28] 10361 0084 15F48005 ands r5, r5, #4194304 10362 0088 C9D1 bne .L1500 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10363 .loc 1 3363 0 10364 008a FFF7FEFF bl HAL_GetTick 10365 .LVL802: 10366 .LBB448: 10367 .LBB449: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 10368 .loc 1 3367 0 10369 008e 2368 ldr r3, [r4] 10370 .LBE449: 10371 .LBE448: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10372 .loc 1 3363 0 10373 0090 801B subs r0, r0, r6 10374 0092 B0F1007F cmp r0, #33554432 ARM GAS /tmp/ccgDLloS.s page 300 10375 .LBB453: 10376 .LBB450: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 10377 .loc 1 3367 0 10378 0096 1A68 ldr r2, [r3] 10379 .LBE450: 10380 .LBE453: 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10381 .loc 1 3363 0 10382 0098 05D2 bcs .L1516 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10383 .loc 1 3378 0 10384 009a 5107 lsls r1, r2, #29 10385 009c F1D5 bpl .L1496 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10386 .loc 1 3380 0 10387 009e DA69 ldr r2, [r3, #28] 10388 00a0 1205 lsls r2, r2, #20 10389 00a2 EED5 bpl .L1496 10390 00a4 D7E7 b .L1517 10391 .L1516: 10392 .LVL803: 10393 .LBB454: 10394 .LBB451: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 10395 .loc 1 3367 0 10396 00a6 22F4D072 bic r2, r2, #416 10397 00aa 1A60 str r2, [r3] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10398 .loc 1 3368 0 10399 00ac 9A68 ldr r2, [r3, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10400 .loc 1 3370 0 10401 00ae 2021 movs r1, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10402 .loc 1 3368 0 10403 00b0 22F00102 bic r2, r2, #1 10404 00b4 9A60 str r2, [r3, #8] 10405 .LBE451: 10406 .LBE454: 10407 .LBE457: 10408 .LBE460: 3331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10409 .loc 1 3331 0 10410 00b6 0320 movs r0, #3 10411 .LBB461: 10412 .LBB458: 10413 .LBB455: 10414 .LBB452: 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10415 .loc 1 3370 0 10416 00b8 C4F88410 str r1, [r4, #132] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10417 .loc 1 3373 0 10418 00bc 84F88050 strb r5, [r4, #128] 10419 .LVL804: 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 301 10420 .loc 1 3371 0 10421 00c0 C4F88810 str r1, [r4, #136] 10422 .LBE452: 10423 .LBE455: 10424 .LBE458: 10425 .LBE461: 3343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10426 .loc 1 3343 0 10427 00c4 70BD pop {r4, r5, r6, pc} 10428 .cfi_endproc 10429 .LFE374: 10431 00c6 00BF .section .text.UART_WaitOnFlagUntilTimeout,"ax",%progbits 10432 .align 1 10433 .p2align 2,,3 10434 .global UART_WaitOnFlagUntilTimeout 10435 .syntax unified 10436 .thumb 10437 .thumb_func 10438 .fpu fpv4-sp-d16 10440 UART_WaitOnFlagUntilTimeout: 10441 .LFB375: 3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until flag is set */ 10442 .loc 1 3356 0 10443 .cfi_startproc 10444 @ args = 4, pretend = 0, frame = 0 10445 @ frame_needed = 0, uses_anonymous_args = 0 10446 .LVL805: 10447 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 10448 .LCFI99: 10449 .cfi_def_cfa_offset 24 10450 .cfi_offset 4, -24 10451 .cfi_offset 5, -20 10452 .cfi_offset 6, -16 10453 .cfi_offset 7, -12 10454 .cfi_offset 8, -8 10455 .cfi_offset 14, -4 3356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** /* Wait until flag is set */ 10456 .loc 1 3356 0 10457 0004 069E ldr r6, [sp, #24] 10458 0006 0746 mov r7, r0 10459 0008 0068 ldr r0, [r0] 10460 .LVL806: 10461 000a 0D46 mov r5, r1 10462 000c 1446 mov r4, r2 10463 000e 9846 mov r8, r3 10464 .LVL807: 10465 .L1519: 10466 0010 731C adds r3, r6, #1 10467 0012 0AD1 bne .L1525 10468 .L1526: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10469 .loc 1 3358 0 10470 0014 C369 ldr r3, [r0, #28] 10471 0016 35EA0303 bics r3, r5, r3 10472 001a 0CBF ite eq 10473 001c 0123 moveq r3, #1 10474 001e 0023 movne r3, #0 ARM GAS /tmp/ccgDLloS.s page 302 10475 0020 9C42 cmp r4, r3 10476 0022 F7D0 beq .L1526 10477 .L1536: 3402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10478 .loc 1 3402 0 10479 0024 0020 movs r0, #0 10480 .L1523: 3403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10481 .loc 1 3403 0 10482 0026 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 10483 .LVL808: 10484 .L1525: 3358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10485 .loc 1 3358 0 10486 002a C369 ldr r3, [r0, #28] 10487 002c 35EA0303 bics r3, r5, r3 10488 0030 0CBF ite eq 10489 0032 0123 moveq r3, #1 10490 0034 0023 movne r3, #0 10491 0036 9C42 cmp r4, r3 10492 0038 F4D1 bne .L1536 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10493 .loc 1 3363 0 10494 003a FFF7FEFF bl HAL_GetTick 10495 .LVL809: 10496 003e A0EB0800 sub r0, r0, r8 10497 0042 B042 cmp r0, r6 10498 0044 3868 ldr r0, [r7] 10499 0046 1DD8 bhi .L1521 3363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10500 .loc 1 3363 0 is_stmt 0 discriminator 1 10501 0048 E6B1 cbz r6, .L1521 3378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10502 .loc 1 3378 0 is_stmt 1 10503 004a 0368 ldr r3, [r0] 10504 004c 5907 lsls r1, r3, #29 10505 004e DFD5 bpl .L1519 3380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10506 .loc 1 3380 0 10507 0050 C369 ldr r3, [r0, #28] 10508 0052 1A05 lsls r2, r3, #20 10509 0054 DCD5 bpl .L1519 3383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10510 .loc 1 3383 0 10511 0056 4FF40063 mov r3, #2048 10512 005a 0362 str r3, [r0, #32] 3387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 10513 .loc 1 3387 0 10514 005c 0368 ldr r3, [r0] 10515 005e 23F4D073 bic r3, r3, #416 10516 0062 0360 str r3, [r0] 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10517 .loc 1 3388 0 10518 0064 8268 ldr r2, [r0, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10519 .loc 1 3390 0 10520 0066 2023 movs r3, #32 ARM GAS /tmp/ccgDLloS.s page 303 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10521 .loc 1 3388 0 10522 0068 22F00102 bic r2, r2, #1 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10523 .loc 1 3395 0 10524 006c 0021 movs r1, #0 3388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10525 .loc 1 3388 0 10526 006e 8260 str r2, [r0, #8] 3390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10527 .loc 1 3390 0 10528 0070 C7F88430 str r3, [r7, #132] 3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10529 .loc 1 3397 0 10530 0074 0320 movs r0, #3 3391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_RTO; 10531 .loc 1 3391 0 10532 0076 C7F88830 str r3, [r7, #136] 3395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10533 .loc 1 3395 0 10534 007a 87F88010 strb r1, [r7, #128] 3392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10535 .loc 1 3392 0 10536 007e C7F88C30 str r3, [r7, #140] 3397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10537 .loc 1 3397 0 10538 0082 D0E7 b .L1523 10539 .L1521: 10540 .LVL810: 10541 .LBB464: 10542 .LBB465: 3367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 10543 .loc 1 3367 0 10544 0084 0368 ldr r3, [r0] 10545 0086 23F4D073 bic r3, r3, #416 10546 008a 0360 str r3, [r0] 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10547 .loc 1 3368 0 10548 008c 8368 ldr r3, [r0, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10549 .loc 1 3370 0 10550 008e 2022 movs r2, #32 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10551 .loc 1 3368 0 10552 0090 23F00103 bic r3, r3, #1 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10553 .loc 1 3373 0 10554 0094 0021 movs r1, #0 3368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10555 .loc 1 3368 0 10556 0096 8360 str r3, [r0, #8] 3370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 10557 .loc 1 3370 0 10558 0098 C7F88420 str r2, [r7, #132] 3373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10559 .loc 1 3373 0 10560 009c 0320 movs r0, #3 ARM GAS /tmp/ccgDLloS.s page 304 10561 009e 87F88010 strb r1, [r7, #128] 10562 .LVL811: 3371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10563 .loc 1 3371 0 10564 00a2 C7F88820 str r2, [r7, #136] 10565 00a6 BEE7 b .L1523 10566 .LBE465: 10567 .LBE464: 10568 .cfi_endproc 10569 .LFE375: 10571 .section .text.UART_Start_Receive_IT,"ax",%progbits 10572 .align 1 10573 .p2align 2,,3 10574 .global UART_Start_Receive_IT 10575 .syntax unified 10576 .thumb 10577 .thumb_func 10578 .fpu fpv4-sp-d16 10580 UART_Start_Receive_IT: 10581 .LFB376: 3417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 10582 .loc 1 3417 0 10583 .cfi_startproc 10584 @ args = 0, pretend = 0, frame = 0 10585 @ frame_needed = 0, uses_anonymous_args = 0 10586 @ link register save eliminated. 10587 .LVL812: 10588 0000 30B4 push {r4, r5} 10589 .LCFI100: 10590 .cfi_def_cfa_offset 8 10591 .cfi_offset 4, -8 10592 .cfi_offset 5, -4 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10593 .loc 1 3424 0 10594 0002 8468 ldr r4, [r0, #8] 3418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; 10595 .loc 1 3418 0 10596 0004 8165 str r1, [r0, #88] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10597 .loc 1 3424 0 10598 0006 B4F5805F cmp r4, #4096 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10599 .loc 1 3421 0 10600 000a 4FF00001 mov r1, #0 10601 .LVL813: 3419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferCount = Size; 10602 .loc 1 3419 0 10603 000e A0F85C20 strh r2, [r0, #92] @ movhi 3420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxISR = NULL; 10604 .loc 1 3420 0 10605 0012 A0F85E20 strh r2, [r0, #94] @ movhi 3421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10606 .loc 1 3421 0 10607 0016 0167 str r1, [r0, #112] 10608 0018 0368 ldr r3, [r0] 10609 001a 456E ldr r5, [r0, #100] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 305 10610 .loc 1 3424 0 10611 001c 31D0 beq .L1567 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10612 .loc 1 3424 0 is_stmt 0 discriminator 2 10613 001e 8CB1 cbz r4, .L1568 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10614 .loc 1 3424 0 discriminator 6 10615 0020 B4F1805F cmp r4, #268435456 10616 0024 6CD0 beq .L1569 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10617 .loc 1 3427 0 is_stmt 1 discriminator 10 10618 0026 2224 movs r4, #34 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 10619 .loc 1 3426 0 discriminator 10 10620 0028 C0F88C10 str r1, [r0, #140] 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10621 .loc 1 3427 0 discriminator 10 10622 002c C0F88840 str r4, [r0, #136] 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10623 .loc 1 3430 0 discriminator 10 10624 0030 9C68 ldr r4, [r3, #8] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10625 .loc 1 3424 0 discriminator 10 10626 0032 A0F86010 strh r1, [r0, #96] @ movhi 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10627 .loc 1 3430 0 discriminator 10 10628 0036 44F00104 orr r4, r4, #1 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10629 .loc 1 3433 0 discriminator 10 10630 003a B5F1005F cmp r5, #536870912 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10631 .loc 1 3430 0 discriminator 10 10632 003e 9C60 str r4, [r3, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10633 .loc 1 3433 0 discriminator 10 10634 0040 13D1 bne .L1542 10635 0042 2FE0 b .L1553 10636 .L1568: 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10637 .loc 1 3424 0 discriminator 5 10638 0044 0169 ldr r1, [r0, #16] 10639 0046 0029 cmp r1, #0 10640 0048 56D0 beq .L1570 10641 .L1545: 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10642 .loc 1 3424 0 is_stmt 0 discriminator 8 10643 004a 7F21 movs r1, #127 10644 004c A0F86010 strh r1, [r0, #96] @ movhi 10645 .L1546: 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10646 .loc 1 3427 0 is_stmt 1 10647 0050 2221 movs r1, #34 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 10648 .loc 1 3426 0 10649 0052 0024 movs r4, #0 10650 0054 C0F88C40 str r4, [r0, #140] 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** ARM GAS /tmp/ccgDLloS.s page 306 10651 .loc 1 3427 0 10652 0058 C0F88810 str r1, [r0, #136] 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10653 .loc 1 3430 0 10654 005c 9968 ldr r1, [r3, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10655 .loc 1 3433 0 10656 005e B5F1005F cmp r5, #536870912 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10657 .loc 1 3430 0 10658 0062 41F00101 orr r1, r1, #1 10659 0066 9960 str r1, [r3, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10660 .loc 1 3433 0 10661 0068 1CD0 beq .L1553 10662 .L1542: 3460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10663 .loc 1 3460 0 10664 006a 2A49 ldr r1, .L1573 10665 .L1541: 3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10666 .loc 1 3466 0 10667 006c 1A68 ldr r2, [r3] 10668 .LVL814: 10669 006e 0167 str r1, [r0, #112] 10670 0070 42F49072 orr r2, r2, #288 3463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10671 .loc 1 3463 0 10672 0074 0021 movs r1, #0 10673 0076 80F88010 strb r1, [r0, #128] 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10674 .loc 1 3469 0 10675 007a 30BC pop {r4, r5} 10676 .LCFI101: 10677 .cfi_remember_state 10678 .cfi_restore 5 10679 .cfi_restore 4 10680 .cfi_def_cfa_offset 0 10681 007c 0020 movs r0, #0 10682 .LVL815: 3466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10683 .loc 1 3466 0 10684 007e 1A60 str r2, [r3] 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10685 .loc 1 3469 0 10686 0080 7047 bx lr 10687 .LVL816: 10688 .L1567: 10689 .LCFI102: 10690 .cfi_restore_state 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10691 .loc 1 3424 0 discriminator 1 10692 0082 0469 ldr r4, [r0, #16] 10693 0084 14B3 cbz r4, .L1571 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10694 .loc 1 3427 0 discriminator 4 10695 0086 2224 movs r4, #34 ARM GAS /tmp/ccgDLloS.s page 307 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 10696 .loc 1 3426 0 discriminator 4 10697 0088 C0F88C10 str r1, [r0, #140] 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10698 .loc 1 3427 0 discriminator 4 10699 008c C0F88840 str r4, [r0, #136] 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10700 .loc 1 3430 0 discriminator 4 10701 0090 9968 ldr r1, [r3, #8] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10702 .loc 1 3424 0 discriminator 4 10703 0092 FF24 movs r4, #255 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10704 .loc 1 3430 0 discriminator 4 10705 0094 41F00101 orr r1, r1, #1 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10706 .loc 1 3433 0 discriminator 4 10707 0098 B5F1005F cmp r5, #536870912 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10708 .loc 1 3424 0 discriminator 4 10709 009c A0F86040 strh r4, [r0, #96] @ movhi 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10710 .loc 1 3430 0 discriminator 4 10711 00a0 9960 str r1, [r3, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10712 .loc 1 3433 0 discriminator 4 10713 00a2 E2D1 bne .L1542 10714 .L1553: 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10715 .loc 1 3433 0 is_stmt 0 10716 00a4 B0F86810 ldrh r1, [r0, #104] 10717 00a8 9142 cmp r1, r2 10718 00aa DED8 bhi .L1542 3442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10719 .loc 1 3442 0 is_stmt 1 10720 00ac 1A49 ldr r1, .L1573+4 10721 .L1550: 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); 10722 .loc 1 3448 0 10723 00ae 1A68 ldr r2, [r3] 10724 .LVL817: 10725 00b0 0167 str r1, [r0, #112] 10726 00b2 42F48072 orr r2, r2, #256 3445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10727 .loc 1 3445 0 10728 00b6 0021 movs r1, #0 10729 00b8 80F88010 strb r1, [r0, #128] 3448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); 10730 .loc 1 3448 0 10731 00bc 1A60 str r2, [r3] 3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10732 .loc 1 3449 0 10733 00be 9A68 ldr r2, [r3, #8] 10734 00c0 42F08052 orr r2, r2, #268435456 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10735 .loc 1 3469 0 10736 00c4 0020 movs r0, #0 ARM GAS /tmp/ccgDLloS.s page 308 10737 .LVL818: 3449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10738 .loc 1 3449 0 10739 00c6 9A60 str r2, [r3, #8] 3469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10740 .loc 1 3469 0 10741 00c8 30BC pop {r4, r5} 10742 .LCFI103: 10743 .cfi_remember_state 10744 .cfi_restore 5 10745 .cfi_restore 4 10746 .cfi_def_cfa_offset 0 10747 00ca 7047 bx lr 10748 .LVL819: 10749 .L1571: 10750 .LCFI104: 10751 .cfi_restore_state 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10752 .loc 1 3427 0 discriminator 3 10753 00cc 2221 movs r1, #34 3426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 10754 .loc 1 3426 0 discriminator 3 10755 00ce C0F88C40 str r4, [r0, #140] 3427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10756 .loc 1 3427 0 discriminator 3 10757 00d2 C0F88810 str r1, [r0, #136] 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10758 .loc 1 3430 0 discriminator 3 10759 00d6 9968 ldr r1, [r3, #8] 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10760 .loc 1 3424 0 discriminator 3 10761 00d8 40F2FF14 movw r4, #511 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10762 .loc 1 3430 0 discriminator 3 10763 00dc 41F00101 orr r1, r1, #1 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10764 .loc 1 3433 0 discriminator 3 10765 00e0 B5F1005F cmp r5, #536870912 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10766 .loc 1 3424 0 discriminator 3 10767 00e4 A0F86040 strh r4, [r0, #96] @ movhi 3430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10768 .loc 1 3430 0 discriminator 3 10769 00e8 9960 str r1, [r3, #8] 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10770 .loc 1 3433 0 discriminator 3 10771 00ea 03D1 bne .L1564 3433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10772 .loc 1 3433 0 is_stmt 0 10773 00ec B0F86810 ldrh r1, [r0, #104] 10774 00f0 9142 cmp r1, r2 10775 00f2 0CD9 bls .L1572 10776 .L1564: 3456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10777 .loc 1 3456 0 is_stmt 1 10778 00f4 0949 ldr r1, .L1573+8 10779 00f6 B9E7 b .L1541 ARM GAS /tmp/ccgDLloS.s page 309 10780 .L1570: 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10781 .loc 1 3424 0 discriminator 7 10782 00f8 FF21 movs r1, #255 10783 00fa A0F86010 strh r1, [r0, #96] @ movhi 10784 00fe A7E7 b .L1546 10785 .L1569: 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10786 .loc 1 3424 0 is_stmt 0 discriminator 9 10787 0100 0169 ldr r1, [r0, #16] 10788 0102 0029 cmp r1, #0 10789 0104 A1D0 beq .L1545 3424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10790 .loc 1 3424 0 discriminator 12 10791 0106 3F21 movs r1, #63 10792 0108 A0F86010 strh r1, [r0, #96] @ movhi 10793 010c A0E7 b .L1546 10794 .L1572: 3438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10795 .loc 1 3438 0 is_stmt 1 10796 010e 0449 ldr r1, .L1573+12 10797 0110 CDE7 b .L1550 10798 .L1574: 10799 0112 00BF .align 2 10800 .L1573: 10801 0114 00000000 .word UART_RxISR_8BIT 10802 0118 00000000 .word UART_RxISR_8BIT_FIFOEN 10803 011c 00000000 .word UART_RxISR_16BIT 10804 0120 00000000 .word UART_RxISR_16BIT_FIFOEN 10805 .cfi_endproc 10806 .LFE376: 10808 .section .text.UART_Start_Receive_DMA,"ax",%progbits 10809 .align 1 10810 .p2align 2,,3 10811 .global UART_Start_Receive_DMA 10812 .syntax unified 10813 .thumb 10814 .thumb_func 10815 .fpu fpv4-sp-d16 10817 UART_Start_Receive_DMA: 10818 .LFB377: 3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 10819 .loc 1 3483 0 10820 .cfi_startproc 10821 @ args = 0, pretend = 0, frame = 0 10822 @ frame_needed = 0, uses_anonymous_args = 0 10823 .LVL820: 10824 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10825 .LCFI105: 10826 .cfi_def_cfa_offset 24 10827 .cfi_offset 3, -24 10828 .cfi_offset 4, -20 10829 .cfi_offset 5, -16 10830 .cfi_offset 6, -12 10831 .cfi_offset 7, -8 10832 .cfi_offset 14, -4 3483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->pRxBuffPtr = pData; ARM GAS /tmp/ccgDLloS.s page 310 10833 .loc 1 3483 0 10834 0002 0446 mov r4, r0 3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10835 .loc 1 3490 0 10836 0004 C06F ldr r0, [r0, #124] 10837 .LVL821: 10838 0006 2568 ldr r5, [r4] 3484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxXferSize = Size; 10839 .loc 1 3484 0 10840 0008 A165 str r1, [r4, #88] 3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 10841 .loc 1 3487 0 10842 000a 0026 movs r6, #0 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10843 .loc 1 3488 0 10844 000c 2223 movs r3, #34 3487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 10845 .loc 1 3487 0 10846 000e C4F88C60 str r6, [r4, #140] 3485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10847 .loc 1 3485 0 10848 0012 A4F85C20 strh r2, [r4, #92] @ movhi 3488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10849 .loc 1 3488 0 10850 0016 C4F88830 str r3, [r4, #136] 3490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10851 .loc 1 3490 0 10852 001a 80B1 cbz r0, .L1576 3496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10853 .loc 1 3496 0 10854 001c 154F ldr r7, .L1583 3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10855 .loc 1 3493 0 10856 001e DFF85CC0 ldr ip, .L1583+8 3502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10857 .loc 1 3502 0 10858 0022 8663 str r6, [r0, #56] 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10859 .loc 1 3505 0 10860 0024 1346 mov r3, r2 10861 0026 0A46 mov r2, r1 10862 .LVL822: 10863 0028 05F12401 add r1, r5, #36 10864 .LVL823: 3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10865 .loc 1 3499 0 10866 002c 124D ldr r5, .L1583+4 3493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10867 .loc 1 3493 0 10868 002e C0F82CC0 str ip, [r0, #44] 3499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10869 .loc 1 3499 0 10870 0032 C0E90C75 strd r7, r5, [r0, #48] 3505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** { 10871 .loc 1 3505 0 10872 0036 FFF7FEFF bl HAL_DMA_Start_IT 10873 .LVL824: ARM GAS /tmp/ccgDLloS.s page 311 10874 003a 80B9 cbnz r0, .L1577 10875 003c 2568 ldr r5, [r4] 10876 .L1576: 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10877 .loc 1 3521 0 10878 003e 2B68 ldr r3, [r5] 3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10879 .loc 1 3518 0 10880 0040 0020 movs r0, #0 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10881 .loc 1 3521 0 10882 0042 43F48073 orr r3, r3, #256 3518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10883 .loc 1 3518 0 10884 0046 84F88000 strb r0, [r4, #128] 3521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10885 .loc 1 3521 0 10886 004a 2B60 str r3, [r5] 3524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10887 .loc 1 3524 0 10888 004c AB68 ldr r3, [r5, #8] 10889 004e 43F00103 orr r3, r3, #1 10890 0052 AB60 str r3, [r5, #8] 3528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10891 .loc 1 3528 0 10892 0054 AB68 ldr r3, [r5, #8] 10893 0056 43F04003 orr r3, r3, #64 10894 005a AB60 str r3, [r5, #8] 3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10895 .loc 1 3531 0 10896 005c F8BD pop {r3, r4, r5, r6, r7, pc} 10897 .LVL825: 10898 .L1577: 3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10899 .loc 1 3508 0 10900 005e 1022 movs r2, #16 3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10901 .loc 1 3513 0 10902 0060 2023 movs r3, #32 3508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10903 .loc 1 3508 0 10904 0062 C4F88C20 str r2, [r4, #140] 3510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10905 .loc 1 3510 0 10906 0066 84F88060 strb r6, [r4, #128] 3515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** } 10907 .loc 1 3515 0 10908 006a 0120 movs r0, #1 3513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10909 .loc 1 3513 0 10910 006c C4F88430 str r3, [r4, #132] 3531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_uart.c **** 10911 .loc 1 3531 0 10912 0070 F8BD pop {r3, r4, r5, r6, r7, pc} 10913 .LVL826: 10914 .L1584: 10915 0072 00BF .align 2 ARM GAS /tmp/ccgDLloS.s page 312 10916 .L1583: 10917 0074 00000000 .word UART_DMARxHalfCplt 10918 0078 00000000 .word UART_DMAError 10919 007c 00000000 .word UART_DMAReceiveCplt 10920 .cfi_endproc 10921 .LFE377: 10923 .global UARTPrescTable 10924 .section .rodata.CSWTCH.58,"a",%progbits 10925 .align 2 10926 .set .LANCHOR2,. + 0 10929 CSWTCH.58: 10930 0000 01 .byte 1 10931 0001 04 .byte 4 10932 0002 02 .byte 2 10933 0003 08 .byte 8 10934 .section .rodata.CSWTCH.59,"a",%progbits 10935 .align 2 10936 .set .LANCHOR0,. + 0 10939 CSWTCH.59: 10940 0000 00 .byte 0 10941 0001 10 .byte 16 10942 0002 10 .byte 16 10943 0003 10 .byte 16 10944 0004 04 .byte 4 10945 0005 10 .byte 16 10946 0006 10 .byte 16 10947 0007 10 .byte 16 10948 0008 02 .byte 2 10949 0009 10 .byte 16 10950 000a 10 .byte 16 10951 000b 10 .byte 16 10952 000c 08 .byte 8 10953 .section .rodata.UARTPrescTable,"a",%progbits 10954 .align 2 10955 .set .LANCHOR1,. + 0 10958 UARTPrescTable: 10959 0000 0100 .short 1 10960 0002 0200 .short 2 10961 0004 0400 .short 4 10962 0006 0600 .short 6 10963 0008 0800 .short 8 10964 000a 0A00 .short 10 10965 000c 0C00 .short 12 10966 000e 1000 .short 16 10967 0010 2000 .short 32 10968 0012 4000 .short 64 10969 0014 8000 .short 128 10970 0016 0001 .short 256 10971 .text 10972 .Letext0: 10973 .file 2 "/usr/include/newlib/machine/_default_types.h" 10974 .file 3 "/usr/include/newlib/sys/_stdint.h" 10975 .file 4 "Drivers/CMSIS/Include/core_cm4.h" 10976 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" 10977 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 10978 .file 7 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h" 10979 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" ARM GAS /tmp/ccgDLloS.s page 313 10980 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" 10981 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h" 10982 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" 10983 .file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" 10984 .file 13 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h" 10985 .file 14 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h" ARM GAS /tmp/ccgDLloS.s page 314 DEFINED SYMBOLS *ABS*:0000000000000000 stm32g4xx_hal_uart.c /tmp/ccgDLloS.s:16 .text.UART_TxISR_16BIT:0000000000000000 $t /tmp/ccgDLloS.s:23 .text.UART_TxISR_16BIT:0000000000000000 UART_TxISR_16BIT /tmp/ccgDLloS.s:80 .text.UART_TxISR_16BIT_FIFOEN:0000000000000000 $t /tmp/ccgDLloS.s:87 .text.UART_TxISR_16BIT_FIFOEN:0000000000000000 UART_TxISR_16BIT_FIFOEN /tmp/ccgDLloS.s:182 .text.UART_TxISR_8BIT:0000000000000000 $t /tmp/ccgDLloS.s:189 .text.UART_TxISR_8BIT:0000000000000000 UART_TxISR_8BIT /tmp/ccgDLloS.s:242 .text.UART_TxISR_8BIT_FIFOEN:0000000000000000 $t /tmp/ccgDLloS.s:249 .text.UART_TxISR_8BIT_FIFOEN:0000000000000000 UART_TxISR_8BIT_FIFOEN /tmp/ccgDLloS.s:340 .text.HAL_UART_MspInit:0000000000000000 $t /tmp/ccgDLloS.s:348 .text.HAL_UART_MspInit:0000000000000000 HAL_UART_MspInit /tmp/ccgDLloS.s:362 .text.HAL_UART_MspDeInit:0000000000000000 $t /tmp/ccgDLloS.s:370 .text.HAL_UART_MspDeInit:0000000000000000 HAL_UART_MspDeInit /tmp/ccgDLloS.s:381 .text.HAL_UART_DeInit:0000000000000000 $t /tmp/ccgDLloS.s:389 .text.HAL_UART_DeInit:0000000000000000 HAL_UART_DeInit /tmp/ccgDLloS.s:460 .text.HAL_UART_Transmit:0000000000000000 $t /tmp/ccgDLloS.s:468 .text.HAL_UART_Transmit:0000000000000000 HAL_UART_Transmit /tmp/ccgDLloS.s:804 .text.HAL_UART_Receive:0000000000000000 $t /tmp/ccgDLloS.s:812 .text.HAL_UART_Receive:0000000000000000 HAL_UART_Receive /tmp/ccgDLloS.s:1152 .text.HAL_UART_Transmit_IT:0000000000000000 $t /tmp/ccgDLloS.s:1160 .text.HAL_UART_Transmit_IT:0000000000000000 HAL_UART_Transmit_IT /tmp/ccgDLloS.s:1313 .text.HAL_UART_Transmit_IT:00000000000000a0 $d /tmp/ccgDLloS.s:1321 .text.HAL_UART_Receive_IT:0000000000000000 $t /tmp/ccgDLloS.s:1329 .text.HAL_UART_Receive_IT:0000000000000000 HAL_UART_Receive_IT /tmp/ccgDLloS.s:1614 .text.HAL_UART_Receive_IT:0000000000000154 $d /tmp/ccgDLloS.s:4679 .text.UART_RxISR_8BIT_FIFOEN:0000000000000000 UART_RxISR_8BIT_FIFOEN /tmp/ccgDLloS.s:4444 .text.UART_RxISR_8BIT:0000000000000000 UART_RxISR_8BIT /tmp/ccgDLloS.s:4569 .text.UART_RxISR_16BIT:0000000000000000 UART_RxISR_16BIT /tmp/ccgDLloS.s:4935 .text.UART_RxISR_16BIT_FIFOEN:0000000000000000 UART_RxISR_16BIT_FIFOEN /tmp/ccgDLloS.s:1625 .text.HAL_UART_Transmit_DMA:0000000000000000 $t /tmp/ccgDLloS.s:1633 .text.HAL_UART_Transmit_DMA:0000000000000000 HAL_UART_Transmit_DMA /tmp/ccgDLloS.s:1755 .text.HAL_UART_Transmit_DMA:0000000000000090 $d /tmp/ccgDLloS.s:2694 .text.UART_DMATransmitCplt:0000000000000000 UART_DMATransmitCplt /tmp/ccgDLloS.s:2854 .text.UART_DMAError:0000000000000000 UART_DMAError /tmp/ccgDLloS.s:2766 .text.UART_DMATxHalfCplt:0000000000000000 UART_DMATxHalfCplt /tmp/ccgDLloS.s:1762 .text.HAL_UART_Receive_DMA:0000000000000000 $t /tmp/ccgDLloS.s:1770 .text.HAL_UART_Receive_DMA:0000000000000000 HAL_UART_Receive_DMA /tmp/ccgDLloS.s:1928 .text.HAL_UART_Receive_DMA:00000000000000b4 $d /tmp/ccgDLloS.s:5192 .text.UART_DMARxHalfCplt:0000000000000000 UART_DMARxHalfCplt /tmp/ccgDLloS.s:5237 .text.UART_DMAReceiveCplt:0000000000000000 UART_DMAReceiveCplt /tmp/ccgDLloS.s:1936 .text.HAL_UART_DMAPause:0000000000000000 $t /tmp/ccgDLloS.s:1944 .text.HAL_UART_DMAPause:0000000000000000 HAL_UART_DMAPause /tmp/ccgDLloS.s:2049 .text.HAL_UART_DMAResume:0000000000000000 $t /tmp/ccgDLloS.s:2057 .text.HAL_UART_DMAResume:0000000000000000 HAL_UART_DMAResume /tmp/ccgDLloS.s:2124 .text.HAL_UART_DMAStop:0000000000000000 $t /tmp/ccgDLloS.s:2132 .text.HAL_UART_DMAStop:0000000000000000 HAL_UART_DMAStop /tmp/ccgDLloS.s:2298 .text.HAL_UART_Abort:0000000000000000 $t /tmp/ccgDLloS.s:2306 .text.HAL_UART_Abort:0000000000000000 HAL_UART_Abort /tmp/ccgDLloS.s:2460 .text.HAL_UART_AbortTransmit:0000000000000000 $t /tmp/ccgDLloS.s:2468 .text.HAL_UART_AbortTransmit:0000000000000000 HAL_UART_AbortTransmit /tmp/ccgDLloS.s:2558 .text.HAL_UART_AbortReceive:0000000000000000 $t /tmp/ccgDLloS.s:2566 .text.HAL_UART_AbortReceive:0000000000000000 HAL_UART_AbortReceive /tmp/ccgDLloS.s:2668 .text.HAL_UART_TxCpltCallback:0000000000000000 $t /tmp/ccgDLloS.s:2676 .text.HAL_UART_TxCpltCallback:0000000000000000 HAL_UART_TxCpltCallback /tmp/ccgDLloS.s:2687 .text.UART_DMATransmitCplt:0000000000000000 $t /tmp/ccgDLloS.s:2740 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 $t ARM GAS /tmp/ccgDLloS.s page 315 /tmp/ccgDLloS.s:2748 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 HAL_UART_TxHalfCpltCallback /tmp/ccgDLloS.s:2759 .text.UART_DMATxHalfCplt:0000000000000000 $t /tmp/ccgDLloS.s:2790 .text.HAL_UART_RxCpltCallback:0000000000000000 $t /tmp/ccgDLloS.s:2798 .text.HAL_UART_RxCpltCallback:0000000000000000 HAL_UART_RxCpltCallback /tmp/ccgDLloS.s:2809 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 $t /tmp/ccgDLloS.s:2817 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 HAL_UART_RxHalfCpltCallback /tmp/ccgDLloS.s:2828 .text.HAL_UART_ErrorCallback:0000000000000000 $t /tmp/ccgDLloS.s:2836 .text.HAL_UART_ErrorCallback:0000000000000000 HAL_UART_ErrorCallback /tmp/ccgDLloS.s:2847 .text.UART_DMAError:0000000000000000 $t /tmp/ccgDLloS.s:2978 .text.UART_DMAAbortOnError:0000000000000000 $t /tmp/ccgDLloS.s:2985 .text.UART_DMAAbortOnError:0000000000000000 UART_DMAAbortOnError /tmp/ccgDLloS.s:3017 .text.HAL_UART_AbortCpltCallback:0000000000000000 $t /tmp/ccgDLloS.s:3025 .text.HAL_UART_AbortCpltCallback:0000000000000000 HAL_UART_AbortCpltCallback /tmp/ccgDLloS.s:3036 .text.HAL_UART_Abort_IT:0000000000000000 $t /tmp/ccgDLloS.s:3044 .text.HAL_UART_Abort_IT:0000000000000000 HAL_UART_Abort_IT /tmp/ccgDLloS.s:3226 .text.HAL_UART_Abort_IT:00000000000000e8 $d /tmp/ccgDLloS.s:3313 .text.UART_DMATxAbortCallback:0000000000000000 UART_DMATxAbortCallback /tmp/ccgDLloS.s:3239 .text.UART_DMARxAbortCallback:0000000000000000 UART_DMARxAbortCallback /tmp/ccgDLloS.s:3232 .text.UART_DMARxAbortCallback:0000000000000000 $t /tmp/ccgDLloS.s:3306 .text.UART_DMATxAbortCallback:0000000000000000 $t /tmp/ccgDLloS.s:3391 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 $t /tmp/ccgDLloS.s:3399 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 HAL_UART_AbortTransmitCpltCallback /tmp/ccgDLloS.s:3410 .text.HAL_UART_AbortTransmit_IT:0000000000000000 $t /tmp/ccgDLloS.s:3418 .text.HAL_UART_AbortTransmit_IT:0000000000000000 HAL_UART_AbortTransmit_IT /tmp/ccgDLloS.s:3525 .text.HAL_UART_AbortTransmit_IT:000000000000007c $d /tmp/ccgDLloS.s:3537 .text.UART_DMATxOnlyAbortCallback:0000000000000000 UART_DMATxOnlyAbortCallback /tmp/ccgDLloS.s:3530 .text.UART_DMATxOnlyAbortCallback:0000000000000000 $t /tmp/ccgDLloS.s:3581 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 $t /tmp/ccgDLloS.s:3589 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 HAL_UART_AbortReceiveCpltCallback /tmp/ccgDLloS.s:3600 .text.HAL_UART_AbortReceive_IT:0000000000000000 $t /tmp/ccgDLloS.s:3608 .text.HAL_UART_AbortReceive_IT:0000000000000000 HAL_UART_AbortReceive_IT /tmp/ccgDLloS.s:3735 .text.HAL_UART_AbortReceive_IT:0000000000000094 $d /tmp/ccgDLloS.s:3747 .text.UART_DMARxOnlyAbortCallback:0000000000000000 UART_DMARxOnlyAbortCallback /tmp/ccgDLloS.s:3740 .text.UART_DMARxOnlyAbortCallback:0000000000000000 $t /tmp/ccgDLloS.s:3797 .text.HAL_UARTEx_RxEventCallback:0000000000000000 $t /tmp/ccgDLloS.s:3805 .text.HAL_UARTEx_RxEventCallback:0000000000000000 HAL_UARTEx_RxEventCallback /tmp/ccgDLloS.s:3819 .text.HAL_UART_IRQHandler:0000000000000000 $t /tmp/ccgDLloS.s:3827 .text.HAL_UART_IRQHandler:0000000000000000 HAL_UART_IRQHandler /tmp/ccgDLloS.s:4429 .text.HAL_UART_IRQHandler:00000000000002c4 $d /tmp/ccgDLloS.s:4437 .text.UART_RxISR_8BIT:0000000000000000 $t /tmp/ccgDLloS.s:4562 .text.UART_RxISR_16BIT:0000000000000000 $t /tmp/ccgDLloS.s:4672 .text.UART_RxISR_8BIT_FIFOEN:0000000000000000 $t /tmp/ccgDLloS.s:4922 .text.UART_RxISR_8BIT_FIFOEN:000000000000015c $d /tmp/ccgDLloS.s:4928 .text.UART_RxISR_16BIT_FIFOEN:0000000000000000 $t /tmp/ccgDLloS.s:5179 .text.UART_RxISR_16BIT_FIFOEN:0000000000000158 $d /tmp/ccgDLloS.s:5185 .text.UART_DMARxHalfCplt:0000000000000000 $t /tmp/ccgDLloS.s:5230 .text.UART_DMAReceiveCplt:0000000000000000 $t /tmp/ccgDLloS.s:5312 .text.HAL_UART_ReceiverTimeout_Config:0000000000000000 $t /tmp/ccgDLloS.s:5320 .text.HAL_UART_ReceiverTimeout_Config:0000000000000000 HAL_UART_ReceiverTimeout_Config /tmp/ccgDLloS.s:5345 .text.HAL_UART_ReceiverTimeout_Config:0000000000000014 $d /tmp/ccgDLloS.s:5350 .text.HAL_UART_EnableReceiverTimeout:0000000000000000 $t /tmp/ccgDLloS.s:5358 .text.HAL_UART_EnableReceiverTimeout:0000000000000000 HAL_UART_EnableReceiverTimeout /tmp/ccgDLloS.s:5423 .text.HAL_UART_EnableReceiverTimeout:0000000000000044 $d /tmp/ccgDLloS.s:5428 .text.HAL_UART_DisableReceiverTimeout:0000000000000000 $t /tmp/ccgDLloS.s:5436 .text.HAL_UART_DisableReceiverTimeout:0000000000000000 HAL_UART_DisableReceiverTimeout /tmp/ccgDLloS.s:5501 .text.HAL_UART_DisableReceiverTimeout:0000000000000044 $d /tmp/ccgDLloS.s:5506 .text.HAL_MultiProcessor_EnableMuteMode:0000000000000000 $t ARM GAS /tmp/ccgDLloS.s page 316 /tmp/ccgDLloS.s:5514 .text.HAL_MultiProcessor_EnableMuteMode:0000000000000000 HAL_MultiProcessor_EnableMuteMode /tmp/ccgDLloS.s:5784 .text.HAL_MultiProcessor_DisableMuteMode:0000000000000000 $t /tmp/ccgDLloS.s:5792 .text.HAL_MultiProcessor_DisableMuteMode:0000000000000000 HAL_MultiProcessor_DisableMuteMode /tmp/ccgDLloS.s:6062 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 $t /tmp/ccgDLloS.s:6070 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 HAL_MultiProcessor_EnterMuteMode /tmp/ccgDLloS.s:6089 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 $t /tmp/ccgDLloS.s:6097 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 HAL_HalfDuplex_EnableTransmitter /tmp/ccgDLloS.s:6160 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 $t /tmp/ccgDLloS.s:6168 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 HAL_HalfDuplex_EnableReceiver /tmp/ccgDLloS.s:6231 .text.HAL_LIN_SendBreak:0000000000000000 $t /tmp/ccgDLloS.s:6239 .text.HAL_LIN_SendBreak:0000000000000000 HAL_LIN_SendBreak /tmp/ccgDLloS.s:6296 .text.HAL_UART_GetState:0000000000000000 $t /tmp/ccgDLloS.s:6304 .text.HAL_UART_GetState:0000000000000000 HAL_UART_GetState /tmp/ccgDLloS.s:6326 .text.HAL_UART_GetError:0000000000000000 $t /tmp/ccgDLloS.s:6334 .text.HAL_UART_GetError:0000000000000000 HAL_UART_GetError /tmp/ccgDLloS.s:6353 .text.UART_SetConfig:0000000000000000 $t /tmp/ccgDLloS.s:6361 .text.UART_SetConfig:0000000000000000 UART_SetConfig /tmp/ccgDLloS.s:6484 .text.UART_SetConfig:0000000000000094 $d /tmp/ccgDLloS.s:6494 .text.UART_SetConfig:00000000000000b8 $t /tmp/ccgDLloS.s:6590 .text.UART_SetConfig:000000000000015c $d /tmp/ccgDLloS.s:6599 .text.UART_SetConfig:0000000000000180 $t /tmp/ccgDLloS.s:6816 .text.UART_SetConfig:00000000000002b4 $d /tmp/ccgDLloS.s:6832 .text.UART_AdvFeatureConfig:0000000000000000 $t /tmp/ccgDLloS.s:6840 .text.UART_AdvFeatureConfig:0000000000000000 UART_AdvFeatureConfig /tmp/ccgDLloS.s:6969 .text.HAL_UART_Init:0000000000000000 $t /tmp/ccgDLloS.s:6977 .text.HAL_UART_Init:0000000000000000 HAL_UART_Init /tmp/ccgDLloS.s:7201 .text.HAL_UART_Init:000000000000010c $d /tmp/ccgDLloS.s:7211 .text.HAL_UART_Init:0000000000000130 $t /tmp/ccgDLloS.s:7571 .text.HAL_UART_Init:0000000000000310 $d /tmp/ccgDLloS.s:7583 .text.HAL_UART_Init:0000000000000334 $t /tmp/ccgDLloS.s:7589 .text.HAL_UART_Init:0000000000000340 $d /tmp/ccgDLloS.s:7599 .text.HAL_UART_Init:0000000000000364 $t /tmp/ccgDLloS.s:7760 .text.HAL_UART_Init:0000000000000424 $d /tmp/ccgDLloS.s:7769 .text.HAL_HalfDuplex_Init:0000000000000000 $t /tmp/ccgDLloS.s:7777 .text.HAL_HalfDuplex_Init:0000000000000000 HAL_HalfDuplex_Init /tmp/ccgDLloS.s:8001 .text.HAL_HalfDuplex_Init:000000000000010c $d /tmp/ccgDLloS.s:8011 .text.HAL_HalfDuplex_Init:0000000000000130 $t /tmp/ccgDLloS.s:8375 .text.HAL_HalfDuplex_Init:0000000000000318 $d /tmp/ccgDLloS.s:8387 .text.HAL_HalfDuplex_Init:000000000000033c $t /tmp/ccgDLloS.s:8393 .text.HAL_HalfDuplex_Init:0000000000000348 $d /tmp/ccgDLloS.s:8403 .text.HAL_HalfDuplex_Init:000000000000036c $t /tmp/ccgDLloS.s:8564 .text.HAL_HalfDuplex_Init:000000000000042c $d /tmp/ccgDLloS.s:8573 .text.HAL_LIN_Init:0000000000000000 $t /tmp/ccgDLloS.s:8581 .text.HAL_LIN_Init:0000000000000000 HAL_LIN_Init /tmp/ccgDLloS.s:8977 .text.HAL_LIN_Init:000000000000023c $d /tmp/ccgDLloS.s:9163 .text.HAL_LIN_Init:0000000000000310 $d /tmp/ccgDLloS.s:9175 .text.HAL_LIN_Init:0000000000000334 $t /tmp/ccgDLloS.s:9284 .text.HAL_LIN_Init:00000000000003c8 $d /tmp/ccgDLloS.s:9293 .text.HAL_LIN_Init:00000000000003ec $t /tmp/ccgDLloS.s:9384 .text.HAL_LIN_Init:0000000000000438 $d /tmp/ccgDLloS.s:9394 .text.HAL_MultiProcessor_Init:0000000000000000 $t /tmp/ccgDLloS.s:9402 .text.HAL_MultiProcessor_Init:0000000000000000 HAL_MultiProcessor_Init /tmp/ccgDLloS.s:9633 .text.HAL_MultiProcessor_Init:0000000000000120 $d /tmp/ccgDLloS.s:9643 .text.HAL_MultiProcessor_Init:0000000000000144 $t /tmp/ccgDLloS.s:9999 .text.HAL_MultiProcessor_Init:0000000000000318 $d /tmp/ccgDLloS.s:10012 .text.HAL_MultiProcessor_Init:0000000000000340 $t /tmp/ccgDLloS.s:10040 .text.HAL_MultiProcessor_Init:0000000000000374 $d ARM GAS /tmp/ccgDLloS.s page 317 /tmp/ccgDLloS.s:10050 .text.HAL_MultiProcessor_Init:0000000000000398 $t /tmp/ccgDLloS.s:10211 .text.HAL_MultiProcessor_Init:0000000000000460 $d /tmp/ccgDLloS.s:10221 .text.UART_CheckIdleState:0000000000000000 $t /tmp/ccgDLloS.s:10229 .text.UART_CheckIdleState:0000000000000000 UART_CheckIdleState /tmp/ccgDLloS.s:10432 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/ccgDLloS.s:10440 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 UART_WaitOnFlagUntilTimeout /tmp/ccgDLloS.s:10572 .text.UART_Start_Receive_IT:0000000000000000 $t /tmp/ccgDLloS.s:10580 .text.UART_Start_Receive_IT:0000000000000000 UART_Start_Receive_IT /tmp/ccgDLloS.s:10801 .text.UART_Start_Receive_IT:0000000000000114 $d /tmp/ccgDLloS.s:10809 .text.UART_Start_Receive_DMA:0000000000000000 $t /tmp/ccgDLloS.s:10817 .text.UART_Start_Receive_DMA:0000000000000000 UART_Start_Receive_DMA /tmp/ccgDLloS.s:10917 .text.UART_Start_Receive_DMA:0000000000000074 $d /tmp/ccgDLloS.s:10958 .rodata.UARTPrescTable:0000000000000000 UARTPrescTable /tmp/ccgDLloS.s:10925 .rodata.CSWTCH.58:0000000000000000 $d /tmp/ccgDLloS.s:10929 .rodata.CSWTCH.58:0000000000000000 CSWTCH.58 /tmp/ccgDLloS.s:10935 .rodata.CSWTCH.59:0000000000000000 $d /tmp/ccgDLloS.s:10939 .rodata.CSWTCH.59:0000000000000000 CSWTCH.59 /tmp/ccgDLloS.s:10954 .rodata.UARTPrescTable:0000000000000000 $d /tmp/ccgDLloS.s:8987 .text.HAL_LIN_Init:0000000000000245 $d /tmp/ccgDLloS.s:8987 .text.HAL_LIN_Init:0000000000000246 $t UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort HAL_DMA_GetError HAL_DMA_Abort_IT HAL_UARTEx_TxFifoEmptyCallback HAL_UARTEx_WakeupCallback HAL_UARTEx_RxFifoFullCallback __aeabi_uldivmod __aeabi_ldivmod HAL_RCC_GetPCLK1Freq HAL_RCC_GetPCLK2Freq HAL_RCC_GetSysClockFreq