ARM GAS /tmp/cc7An1gz.s page 1
1 .cpu cortex-m0plus
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 0
10 .eabi_attribute 18, 4
11 .file "stm32l0xx_hal_uart.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.HAL_UART_MspInit,"ax",%progbits
16 .align 1
17 .weak HAL_UART_MspInit
18 .syntax unified
19 .code 16
20 .thumb_func
21 .fpu softvfp
23 HAL_UART_MspInit:
24 .LFB44:
25 .file 1 "./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c"
1:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ******************************************************************************
3:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @file stm32l0xx_hal_uart.c
4:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @author MCD Application Team
5:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief UART HAL module driver.
6:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * This file provides firmware functions to manage the following
7:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART).
8:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * + Initialization and de-initialization functions
9:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * + IO operation functions
10:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * + Peripheral Control functions
11:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
12:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
13:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @verbatim
14:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ===============================================================================
15:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ##### How to use this driver #####
16:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ===============================================================================
17:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** [..]
18:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** The UART HAL driver can be used as follows:
19:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
20:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) Declare a UART_HandleTypeDef handle structure (eg. UART_HandleTypeDef huart).
21:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) Initialize the UART low level resources by implementing the HAL_UART_MspInit() API:
22:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) Enable the USARTx interface clock.
23:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) UART pins configuration:
24:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Enable the clock for the UART GPIOs.
25:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Configure these UART pins as alternate function pull-up.
26:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) NVIC configuration if you need to use interrupt process (HAL_UART_Transmit_IT()
27:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** and HAL_UART_Receive_IT() APIs):
28:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority.
29:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Enable the NVIC USART IRQ handle.
30:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) UART interrupts handling:
31:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** -@@- The specific UART interrupts (Transmission complete interrupt,
32:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** RXNE interrupt and Error Interrupts) are managed using the macros
33:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_ENABLE_IT() and __HAL_UART_DISABLE_IT() inside the transmit and receive
ARM GAS /tmp/cc7An1gz.s page 2
34:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) DMA Configuration if you need to use DMA process (HAL_UART_Transmit_DMA()
35:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** and HAL_UART_Receive_DMA() APIs):
36:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Declare a DMA handle structure for the Tx/Rx channel.
37:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Enable the DMAx interface clock.
38:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Configure the declared DMA handle structure with the required Tx/Rx parameters.
39:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Configure the DMA Tx/Rx channel.
40:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Associate the initialized DMA handle to the UART DMA Tx/Rx handle.
41:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
42:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
43:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) Program the Baud Rate, Word Length, Stop Bit, Parity, Hardware
44:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** flow control and Mode (Receiver/Transmitter) in the huart handle Init structure.
45:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
46:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) If required, program UART advanced features (TX/RX pins swap, auto Baud rate detection,...)
47:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** in the huart handle AdvancedInit structure.
48:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
49:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) For the UART asynchronous mode, initialize the UART registers by calling
50:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_Init() API.
51:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
52:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) For the UART Half duplex mode, initialize the UART registers by calling
53:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_HalfDuplex_Init() API.
54:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
55:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) For the UART LIN (Local Interconnection Network) mode, initialize the UART registers
56:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** by calling the HAL_LIN_Init() API.
57:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
58:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) For the UART Multiprocessor mode, initialize the UART registers
59:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** by calling the HAL_MultiProcessor_Init() API.
60:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
61:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) For the UART RS485 Driver Enabled mode, initialize the UART registers
62:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** by calling the HAL_RS485Ex_Init() API.
63:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
64:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** [..]
65:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (@) These API's (HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init(), HAL_MultiProcessor_Ini
66:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** also configure the low level Hardware GPIO, CLOCK, CORTEX...etc) by
67:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** calling the customized HAL_UART_MspInit() API.
68:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
69:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @endverbatim
70:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ******************************************************************************
71:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @attention
72:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
73:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
© COPYRIGHT(c) 2016 STMicroelectronics
74:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
75:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * Redistribution and use in source and binary forms, with or without modification,
76:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * are permitted provided that the following conditions are met:
77:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * 1. Redistributions of source code must retain the above copyright notice,
78:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * this list of conditions and the following disclaimer.
79:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
80:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * this list of conditions and the following disclaimer in the documentation
81:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * and/or other materials provided with the distribution.
82:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors
83:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * may be used to endorse or promote products derived from this software
84:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * without specific prior written permission.
85:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
86:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
87:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
88:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
89:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
90:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
ARM GAS /tmp/cc7An1gz.s page 3
91:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
92:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
93:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
94:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
95:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
96:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
97:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ******************************************************************************
98:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
99:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Includes ------------------------------------------------------------------*/
101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** #include "stm32l0xx_hal.h"
102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @addtogroup STM32L0xx_HAL_Driver
104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @defgroup UART UART
108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief HAL UART module driver
109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** #ifdef HAL_UART_MODULE_ENABLED
113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Private typedef -----------------------------------------------------------*/
115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Private define ------------------------------------------------------------*/
116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @defgroup UART_Private_Constants UART Private Constants
117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** #define UART_CR1_FIELDS ((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | \
120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** USART_CR1_TE | USART_CR1_RE | USART_CR1_OVER8)) /*!< UART or U
121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** #define UART_LPUART_BRR_MIN ((uint32_t)0x00000300) /* LPUART BRR minimum authorized valu
123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** #define UART_LPUART_BRR_MAX ((uint32_t)0x000FFFFF) /* LPUART BRR maximum authorized valu
124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @}
126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Private macros ------------------------------------------------------------*/
129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Private variables ---------------------------------------------------------*/
130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Private function prototypes -----------------------------------------------*/
131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @addtogroup UART_Private_Functions
132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma);
137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma);
138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma);
139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma);
140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma);
141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma);
142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma);
143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma);
144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma);
145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma);
146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart);
147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart);
ARM GAS /tmp/cc7An1gz.s page 4
148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart);
149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @}
151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Exported functions --------------------------------------------------------*/
154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @defgroup UART_Exported_Functions UART Exported Functions
156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group1 Initialization and de-initialization functions
160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Initialization and Configuration functions
161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @verbatim
163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ===============================================================================
164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ##### Initialization and Configuration functions #####
165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ===============================================================================
166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** [..]
167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** This subsection provides a set of functions allowing to initialize the USARTx or the UARTy
168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** in asynchronous mode.
169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) For the asynchronous mode the parameters below can be configured:
170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) Baud Rate
171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) Word Length
172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) Stop Bit
173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) Parity: If the parity is enabled, then the MSB bit of the data written
174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit.
175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) Hardware flow control
176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) Receiver/transmitter modes
177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) Over Sampling Method
178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) One-Bit Sampling Method
179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) For the asynchronous mode, the following advanced features can be configured as well:
180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) TX and/or RX pin level inversion
181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) data logical level inversion
182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) RX and TX pins swap
183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) RX overrun detection disabling
184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) DMA disabling on RX error
185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) MSB first on communication line
186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (++) auto Baud rate detection
187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** [..]
188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** The HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init()and HAL_MultiProcessor_Init()API
189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** follow respectively the UART asynchronous, UART Half duplex, UART LIN mode
190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** and UART multiprocessor mode configuration procedures (details for the procedures
191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** are available in reference manual).
192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @endverbatim
194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Depending on the frame length defined by the M1 and M0 bits (7-bit,
196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** 8-bit or 9-bit), the possible UART formats are listed in the
197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** following table.
198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Table 1. UART frame format.
200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** +-----------------------------------------------------------------------+
201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** | M1 bit | M0 bit | PCE bit | UART frame |
202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------|
203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** | 0 | 0 | 0 | | SB | 8 bit data | STB | |
204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------|
ARM GAS /tmp/cc7An1gz.s page 5
205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** | 0 | 0 | 1 | | SB | 7 bit data | PB | STB | |
206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------|
207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** | 0 | 1 | 0 | | SB | 9 bit data | STB | |
208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------|
209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** | 0 | 1 | 1 | | SB | 8 bit data | PB | STB | |
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------|
211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** | 1 | 0 | 0 | | SB | 7 bit data | STB | |
212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** |---------|---------|-----------|---------------------------------------|
213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** | 1 | 0 | 1 | | SB | 6 bit data | PB | STB | |
214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** +-----------------------------------------------------------------------+
215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Initialize the UART mode according to the specified
221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * parameters in the UART_InitTypeDef and initialize the associated handle.
222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)
226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart == NULL)
229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->Init.HwFlowCtl != UART_HWCONTROL_NONE)
234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the parameters */
236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance));
237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the parameters */
241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance));
242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->gState == HAL_UART_STATE_RESET)
245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Allocate lock resource and initialize it */
247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED;
248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */
250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_MspInit(huart);
251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the Peripheral */
256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART Communication parameters */
259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_AdvFeatureConfig(huart);
ARM GAS /tmp/cc7An1gz.s page 6
262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR)
265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In asynchronous mode, the following bits must be kept cleared:
270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register,
271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/
272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the Peripheral */
276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_ENABLE(huart);
277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */
279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return (UART_CheckIdleState(huart));
280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Initialize the half-duplex mode according to the specified
284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * parameters in the UART_InitTypeDef and creates the associated handle.
285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart)
289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart == NULL)
292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check UART instance */
297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance));
298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->gState == HAL_UART_STATE_RESET)
300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Allocate lock resource and initialize it */
302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED;
303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */
305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_MspInit(huart);
306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the Peripheral */
311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART Communication parameters */
314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_AdvFeatureConfig(huart);
317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 7
319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR)
320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In half-duplex mode, the following bits must be kept cleared:
325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register,
326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/
327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN));
329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */
331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL);
332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the Peripheral */
334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_ENABLE(huart);
335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */
337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return (UART_CheckIdleState(huart));
338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Initialize the LIN mode according to the specified
343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * parameters in the UART_InitTypeDef and creates the associated handle .
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param BreakDetectLength: specifies the LIN break detection length.
346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * This parameter can be one of the following values:
347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @arg @ref UART_LINBREAKDETECTLENGTH_10B 10-bit break detection
348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @arg @ref UART_LINBREAKDETECTLENGTH_11B 11-bit break detection
349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength)
352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart == NULL)
355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the LIN UART instance */
360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance));
361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the Break detection length parameter */
362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_LIN_BREAK_DETECT_LENGTH(BreakDetectLength));
363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* LIN mode limited to 16-bit oversampling only */
365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->Init.OverSampling == UART_OVERSAMPLING_8)
366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* LIN mode limited to 8-bit data length */
370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->Init.WordLength != UART_WORDLENGTH_8B)
371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->gState == HAL_UART_STATE_RESET)
ARM GAS /tmp/cc7An1gz.s page 8
376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Allocate lock resource and initialize it */
378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED;
379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */
381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_MspInit(huart);
382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the Peripheral */
387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART Communication parameters */
390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_AdvFeatureConfig(huart);
393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR)
396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In LIN mode, the following bits must be kept cleared:
401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register,
402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/
403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN);
404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN));
405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the LIN mode by setting the LINEN bit in the CR2 register */
407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, USART_CR2_LINEN);
408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the USART LIN Break detection length. */
410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength);
411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the Peripheral */
413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_ENABLE(huart);
414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */
416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return (UART_CheckIdleState(huart));
417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Initialize the multiprocessor mode according to the specified
422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * parameters in the UART_InitTypeDef and initialize the associated handle.
423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Address: UART node address (4-, 6-, 7- or 8-bit long).
425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param WakeUpMethod: specifies the UART wakeup method.
426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * This parameter can be one of the following values:
427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @arg @ref UART_WAKEUPMETHOD_IDLELINE WakeUp by an idle line detection
428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @arg @ref UART_WAKEUPMETHOD_ADDRESSMARK WakeUp by an address mark
429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note If the user resorts to idle line detection wake up, the Address parameter
430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * is useless and ignored by the initialization function.
431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note If the user resorts to address mark wake up, the address length detection
432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * is configured by default to 4 bits only. For the UART to be able to
ARM GAS /tmp/cc7An1gz.s page 9
433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * manage 6-, 7- or 8-bit long addresses detection, the API
434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * HAL_MultiProcessorEx_AddressLength_Set() must be called after
435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * HAL_MultiProcessor_Init().
436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake
439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart == NULL)
442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the wake up method parameter */
447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_WAKEUPMETHOD(WakeUpMethod));
448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->gState == HAL_UART_STATE_RESET)
450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Allocate lock resource and initialize it */
452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED;
453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */
455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_MspInit(huart);
456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the Peripheral */
461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART Communication parameters */
464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_AdvFeatureConfig(huart);
467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (UART_SetConfig(huart) == HAL_ERROR)
470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In multiprocessor mode, the following bits must be kept cleared:
475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register,
476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register. */
477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (WakeUpMethod == UART_WAKEUPMETHOD_ADDRESSMARK)
481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* If address mark wake up method is chosen, set the USART address node */
483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)
484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the wake up method by setting the WAKE bit in the CR1 register */
487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod);
488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the Peripheral */
ARM GAS /tmp/cc7An1gz.s page 10
490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_ENABLE(huart);
491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */
493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return (UART_CheckIdleState(huart));
494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DeInitialize the UART peripheral.
499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart)
503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart == NULL)
506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the parameters */
511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance));
512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the Peripheral */
516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_DISABLE(huart);
517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->CR1 = 0x0U;
519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->CR2 = 0x0U;
520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->CR3 = 0x0U;
521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* DeInit the low level hardware */
523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_MspDeInit(huart);
524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET;
527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET;
528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlock */
530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Initialize the UART MSP.
537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart)
541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
26 .loc 1 541 0
27 .cfi_startproc
28 @ args = 0, pretend = 0, frame = 0
29 @ frame_needed = 0, uses_anonymous_args = 0
30 @ link register save eliminated.
ARM GAS /tmp/cc7An1gz.s page 11
31 .LVL0:
542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_MspInit can be implemented in the user file
547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
32 .loc 1 548 0
33 @ sp needed
34 0000 7047 bx lr
35 .cfi_endproc
36 .LFE44:
38 .section .text.HAL_UART_MspDeInit,"ax",%progbits
39 .align 1
40 .weak HAL_UART_MspDeInit
41 .syntax unified
42 .code 16
43 .thumb_func
44 .fpu softvfp
46 HAL_UART_MspDeInit:
47 .LFB45:
549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DeInitialize the UART MSP.
552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart)
556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
48 .loc 1 556 0
49 .cfi_startproc
50 @ args = 0, pretend = 0, frame = 0
51 @ frame_needed = 0, uses_anonymous_args = 0
52 @ link register save eliminated.
53 .LVL1:
557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_MspDeInit can be implemented in the user file
562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
54 .loc 1 563 0
55 @ sp needed
56 0000 7047 bx lr
57 .cfi_endproc
58 .LFE45:
60 .section .text.HAL_UART_DeInit,"ax",%progbits
61 .align 1
62 .global HAL_UART_DeInit
63 .syntax unified
64 .code 16
65 .thumb_func
66 .fpu softvfp
68 HAL_UART_DeInit:
69 .LFB43:
ARM GAS /tmp/cc7An1gz.s page 12
503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
70 .loc 1 503 0
71 .cfi_startproc
72 @ args = 0, pretend = 0, frame = 0
73 @ frame_needed = 0, uses_anonymous_args = 0
74 .LVL2:
75 0000 70B5 push {r4, r5, r6, lr}
76 .LCFI0:
77 .cfi_def_cfa_offset 16
78 .cfi_offset 4, -16
79 .cfi_offset 5, -12
80 .cfi_offset 6, -8
81 .cfi_offset 14, -4
82 0002 041E subs r4, r0, #0
505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
83 .loc 1 505 0
84 0004 18D0 beq .L5
513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
85 .loc 1 513 0
86 0006 6926 movs r6, #105
87 0008 2423 movs r3, #36
88 000a 8355 strb r3, [r0, r6]
516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
89 .loc 1 516 0
90 000c 0268 ldr r2, [r0]
91 000e 1368 ldr r3, [r2]
92 0010 0121 movs r1, #1
93 0012 8B43 bics r3, r1
94 0014 1360 str r3, [r2]
518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->CR2 = 0x0U;
95 .loc 1 518 0
96 0016 0368 ldr r3, [r0]
97 0018 0025 movs r5, #0
98 001a 1D60 str r5, [r3]
519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->CR3 = 0x0U;
99 .loc 1 519 0
100 001c 0368 ldr r3, [r0]
101 001e 5D60 str r5, [r3, #4]
520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
102 .loc 1 520 0
103 0020 0368 ldr r3, [r0]
104 0022 9D60 str r5, [r3, #8]
523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
105 .loc 1 523 0
106 0024 FFF7FEFF bl HAL_UART_MspDeInit
107 .LVL3:
525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET;
108 .loc 1 525 0
109 0028 E566 str r5, [r4, #108]
526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET;
110 .loc 1 526 0
111 002a A555 strb r5, [r4, r6]
527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
112 .loc 1 527 0
113 002c 6A23 movs r3, #106
114 002e E554 strb r5, [r4, r3]
530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 13
115 .loc 1 530 0
116 0030 023B subs r3, r3, #2
117 0032 E554 strb r5, [r4, r3]
532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
118 .loc 1 532 0
119 0034 0020 movs r0, #0
120 .L4:
533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
121 .loc 1 533 0
122 @ sp needed
123 .LVL4:
124 0036 70BD pop {r4, r5, r6, pc}
125 .LVL5:
126 .L5:
507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
127 .loc 1 507 0
128 0038 0120 movs r0, #1
129 .LVL6:
130 003a FCE7 b .L4
131 .cfi_endproc
132 .LFE43:
134 .section .text.HAL_UART_Transmit_IT,"ax",%progbits
135 .align 1
136 .global HAL_UART_Transmit_IT
137 .syntax unified
138 .code 16
139 .thumb_func
140 .fpu softvfp
142 HAL_UART_Transmit_IT:
143 .LFB48:
564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @}
567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group2 IO operation functions
570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief UART Transmit/Receive functions
571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @verbatim
573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ===============================================================================
574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ##### IO operation functions #####
575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ===============================================================================
576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** This subsection provides a set of functions allowing to manage the UART asynchronous
577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** and Half duplex data transfers.
578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) There are two mode of transfer:
580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) Blocking mode: The communication is performed in polling mode.
581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** The HAL status of all data processing is returned by the same function
582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** after finishing transfer.
583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) Non-Blocking mode: The communication is performed using Interrupts
584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** or DMA, These API's return the HAL status.
585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** The end of the data processing will be indicated through the
586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when
587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** using DMA mode.
588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** The HAL_UART_TxCpltCallback(), HAL_UART_RxCpltCallback() user callbacks
589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** will be executed respectively at the end of the transmit or Receive process
590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** The HAL_UART_ErrorCallback()user callback will be executed when a communication error is
ARM GAS /tmp/cc7An1gz.s page 14
591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) Blocking mode API's are :
593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_Transmit()
594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_Receive()
595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) Non-Blocking mode API's with Interrupt are :
597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_Transmit_IT()
598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_Receive_IT()
599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_IRQHandler()
600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) Non-Blocking mode API's with DMA are :
602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_Transmit_DMA()
603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_Receive_DMA()
604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_DMAPause()
605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_DMAResume()
606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_DMAStop()
607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) A set of Transfer Complete Callbacks are provided in Non_Blocking mode:
609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_TxHalfCpltCallback()
610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_TxCpltCallback()
611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_RxHalfCpltCallback()
612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_RxCpltCallback()
613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_ErrorCallback()
614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) Non-Blocking mode transfers could be aborted using Abort API's :
616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_Abort()
617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_AbortTransmit()
618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_AbortReceive()
619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_Abort_IT()
620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_AbortTransmit_IT()
621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_AbortReceive_IT()
622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) For Abort services based on interrupts (HAL_UART_Abortxxx_IT), a set of Abort Complete Call
624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_AbortCpltCallback()
625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_AbortTransmitCpltCallback()
626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_UART_AbortReceiveCpltCallback()
627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (#) In Non-Blocking mode transfers, possible errors are split into 2 categories.
629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Errors are handled as follows :
630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) Error is considered as Recoverable and non blocking : Transfer could go till end, but er
631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** to be evaluated by user : this concerns Frame Error, Parity Error or Noise Error in Inte
632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Received character is then retrieved and stored in Rx buffer, Error code is set to allow
633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** and HAL_UART_ErrorCallback() user callback is executed. Transfer is kept ongoing on UART
634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** If user wants to abort it, Abort services should be called by user.
635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) Error is considered as Blocking : Transfer could not be completed properly and is aborte
636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** This concerns Overrun Error In Interrupt mode reception and all errors in DMA mode.
637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Error code is set to allow user to identify error type, and HAL_UART_ErrorCallback() use
638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** -@- In the Half duplex communication, it is forbidden to run the transmit
640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** and receive process in parallel, the UART state HAL_UART_STATE_BUSY_TX_RX can't be useful.
641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @endverbatim
643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Send an amount of data in blocking mode.
ARM GAS /tmp/cc7An1gz.s page 15
648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param pData: Pointer to data buffer.
650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Size: Amount of data to be sent.
651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Timeout: Timeout duration.
652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-
653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * address of user data buffer containing data to be sent, should be aligned on a half wor
654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (as sent data will be handled using u16 pointer cast). Depending on compilation chain,
655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * use of specific alignment compilation directives or pragmas might be required to ensure
656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint3
659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t* tmp;
661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t tickstart = 0;
662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */
664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->gState == HAL_UART_STATE_READY)
665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((pData == NULL ) || (Size == 0U))
667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData buffer provided as input paramter
672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** should be aligned on a u16 frontier, as data to be filled into TDR will be
673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** handled through a u16 cast. */
674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((((uint32_t)pData)&1) != 0)
677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Init tickstart for timeout managment*/
689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tickstart = HAL_GetTick();
690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferSize = Size;
692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = Size;
693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** while(huart->TxXferCount > 0U)
694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount--;
696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_TIMEOUT;
699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE
701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmp = (uint16_t*) pData;
703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->TDR = (*tmp & (uint16_t)0x01FFU);
704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** pData += 2U;
ARM GAS /tmp/cc7An1gz.s page 16
705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->TDR = (*pData++ & (uint8_t)0xFFU);
709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK)
712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_TIMEOUT;
714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */
717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_BUSY;
727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Receive an amount of data in blocking mode.
732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param pData: pointer to data buffer.
734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Size: amount of data to be received.
735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Timeout: Timeout duration.
736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-
737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * address of user data buffer for storing data to be received, should be aligned on a hal
738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (as received data will be handled using u16 pointer cast). Depending on compilation cha
739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * use of specific alignment compilation directives or pragmas might be required to ensure
740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32
743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t* tmp;
745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t uhMask;
746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t tickstart = 0;
747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */
749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->RxState == HAL_UART_STATE_READY)
750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((pData == NULL ) || (Size == 0U))
752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData buffer provided as input paramter
757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** should be aligned on a u16 frontier, as data to be received from RDR will be
758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** handled through a u16 cast. */
759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((((uint32_t)pData)&1) != 0)
ARM GAS /tmp/cc7An1gz.s page 17
762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Init tickstart for timeout managment*/
774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tickstart = HAL_GetTick();
775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferSize = Size;
777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = Size;
778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Computation of UART mask to apply to RDR register */
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_MASK_COMPUTATION(huart);
781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* as long as data have to be received */
784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** while(huart->RxXferCount > 0U)
785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount--;
787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK)
788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_TIMEOUT;
790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE
792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmp = (uint16_t*) pData ;
794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *tmp = (uint16_t)(huart->Instance->RDR & uhMask);
795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** pData +=2U;
796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *pData++ = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask);
800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */
804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_BUSY;
814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Send an amount of data in interrupt mode.
ARM GAS /tmp/cc7An1gz.s page 18
819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param pData: pointer to data buffer.
821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Size: amount of data to be sent.
822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-
823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * address of user data buffer containing data to be sent, should be aligned on a half wor
824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (as sent data will be handled using u16 pointer cast). Depending on compilation chain,
825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * use of specific alignment compilation directives or pragmas might be required to ensure
826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
144 .loc 1 829 0
145 .cfi_startproc
146 @ args = 0, pretend = 0, frame = 0
147 @ frame_needed = 0, uses_anonymous_args = 0
148 .LVL7:
149 0000 10B5 push {r4, lr}
150 .LCFI1:
151 .cfi_def_cfa_offset 8
152 .cfi_offset 4, -8
153 .cfi_offset 14, -4
830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */
831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->gState == HAL_UART_STATE_READY)
154 .loc 1 831 0
155 0002 6923 movs r3, #105
156 0004 C35C ldrb r3, [r0, r3]
157 0006 202B cmp r3, #32
158 0008 26D1 bne .L9
832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((pData == NULL ) || (Size == 0U))
159 .loc 1 833 0
160 000a 0029 cmp r1, #0
161 000c 26D0 beq .L10
162 .loc 1 833 0 is_stmt 0 discriminator 1
163 000e 002A cmp r2, #0
164 0010 26D0 beq .L11
834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData buffer provided as input paramter
839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** should be aligned on a u16 frontier, as data to be filled into TDR will be
840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** handled through a u16 cast. */
841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
165 .loc 1 841 0 is_stmt 1
166 0012 8023 movs r3, #128
167 0014 5B01 lsls r3, r3, #5
168 0016 8468 ldr r4, [r0, #8]
169 0018 9C42 cmp r4, r3
170 001a 16D0 beq .L14
171 .L8:
842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((((uint32_t)pData)&1) != 0)
844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
ARM GAS /tmp/cc7An1gz.s page 19
848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
172 .loc 1 850 0
173 001c 6823 movs r3, #104
174 001e C35C ldrb r3, [r0, r3]
175 0020 012B cmp r3, #1
176 0022 1FD0 beq .L13
851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->pTxBuffPtr = pData;
177 .loc 1 852 0 discriminator 2
178 0024 C164 str r1, [r0, #76]
853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferSize = Size;
179 .loc 1 853 0 discriminator 2
180 0026 5023 movs r3, #80
181 0028 C252 strh r2, [r0, r3]
854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = Size;
182 .loc 1 854 0 discriminator 2
183 002a 0233 adds r3, r3, #2
184 002c C252 strh r2, [r0, r3]
855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
185 .loc 1 856 0 discriminator 2
186 002e 0023 movs r3, #0
187 0030 C366 str r3, [r0, #108]
857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
188 .loc 1 857 0 discriminator 2
189 0032 6922 movs r2, #105
190 .LVL8:
191 0034 2121 movs r1, #33
192 .LVL9:
193 0036 8154 strb r1, [r0, r2]
858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
194 .loc 1 860 0 discriminator 2
195 0038 013A subs r2, r2, #1
196 003a 8354 strb r3, [r0, r2]
861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART Transmit Data Register Empty Interrupt */
863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
197 .loc 1 863 0 discriminator 2
198 003c 0268 ldr r2, [r0]
199 003e 1368 ldr r3, [r2]
200 0040 5F31 adds r1, r1, #95
201 0042 0B43 orrs r3, r1
202 0044 1360 str r3, [r2]
864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
203 .loc 1 865 0 discriminator 2
204 0046 0020 movs r0, #0
205 .LVL10:
206 0048 07E0 b .L7
207 .LVL11:
208 .L14:
841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
209 .loc 1 841 0 discriminator 1
ARM GAS /tmp/cc7An1gz.s page 20
210 004a 0369 ldr r3, [r0, #16]
211 004c 002B cmp r3, #0
212 004e E5D1 bne .L8
843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
213 .loc 1 843 0
214 0050 CB07 lsls r3, r1, #31
215 0052 E3D5 bpl .L8
845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
216 .loc 1 845 0
217 0054 0120 movs r0, #1
218 .LVL12:
219 0056 00E0 b .L7
220 .LVL13:
221 .L9:
866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_BUSY;
222 .loc 1 869 0
223 0058 0220 movs r0, #2
224 .LVL14:
225 .L7:
870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
226 .loc 1 871 0
227 @ sp needed
228 005a 10BD pop {r4, pc}
229 .LVL15:
230 .L10:
835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
231 .loc 1 835 0
232 005c 0120 movs r0, #1
233 .LVL16:
234 005e FCE7 b .L7
235 .LVL17:
236 .L11:
237 0060 0120 movs r0, #1
238 .LVL18:
239 0062 FAE7 b .L7
240 .LVL19:
241 .L13:
850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
242 .loc 1 850 0
243 0064 0220 movs r0, #2
244 .LVL20:
245 0066 F8E7 b .L7
246 .cfi_endproc
247 .LFE48:
249 .section .text.HAL_UART_Receive_IT,"ax",%progbits
250 .align 1
251 .global HAL_UART_Receive_IT
252 .syntax unified
253 .code 16
254 .thumb_func
255 .fpu softvfp
257 HAL_UART_Receive_IT:
258 .LFB49:
ARM GAS /tmp/cc7An1gz.s page 21
872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Receive an amount of data in interrupt mode.
875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param pData: pointer to data buffer.
877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Size: amount of data to be received.
878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-
879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * address of user data buffer containing data to be sent, should be aligned on a half wor
880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (as sent data will be handled using u16 pointer cast). Depending on compilation chain,
881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * use of specific alignment compilation directives or pragmas might be required to ensure
882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
259 .loc 1 885 0
260 .cfi_startproc
261 @ args = 0, pretend = 0, frame = 0
262 @ frame_needed = 0, uses_anonymous_args = 0
263 .LVL21:
264 0000 30B5 push {r4, r5, lr}
265 .LCFI2:
266 .cfi_def_cfa_offset 12
267 .cfi_offset 4, -12
268 .cfi_offset 5, -8
269 .cfi_offset 14, -4
886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */
887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->RxState == HAL_UART_STATE_READY)
270 .loc 1 887 0
271 0002 6A23 movs r3, #106
272 0004 C35C ldrb r3, [r0, r3]
273 0006 202B cmp r3, #32
274 0008 5AD1 bne .L24
888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((pData == NULL ) || (Size == 0U))
275 .loc 1 889 0
276 000a 0029 cmp r1, #0
277 000c 5AD0 beq .L25
278 .loc 1 889 0 is_stmt 0 discriminator 1
279 000e 002A cmp r2, #0
280 0010 5AD0 beq .L26
890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData buffer provided as input paramter
895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** should be aligned on a u16 frontier, as data to be received from RDR will be
896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** handled through a u16 cast. */
897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
281 .loc 1 897 0 is_stmt 1
282 0012 8368 ldr r3, [r0, #8]
283 0014 8024 movs r4, #128
284 0016 6401 lsls r4, r4, #5
285 0018 A342 cmp r3, r4
286 001a 18D0 beq .L29
287 .L17:
898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((((uint32_t)pData)&1) != 0)
ARM GAS /tmp/cc7An1gz.s page 22
900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
288 .loc 1 906 0
289 001c 6824 movs r4, #104
290 001e 045D ldrb r4, [r0, r4]
291 0020 012C cmp r4, #1
292 0022 53D0 beq .L28
293 .loc 1 906 0 is_stmt 0 discriminator 2
294 0024 6824 movs r4, #104
295 0026 0125 movs r5, #1
296 0028 0555 strb r5, [r0, r4]
907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->pRxBuffPtr = pData;
297 .loc 1 908 0 is_stmt 1 discriminator 2
298 002a 4165 str r1, [r0, #84]
909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferSize = Size;
299 .loc 1 909 0 discriminator 2
300 002c 5821 movs r1, #88
301 .LVL22:
302 002e 4252 strh r2, [r0, r1]
303 .LVL23:
910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = Size;
304 .loc 1 910 0 discriminator 2
305 0030 0231 adds r1, r1, #2
306 0032 4252 strh r2, [r0, r1]
911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Computation of UART mask to apply to RDR register */
913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_MASK_COMPUTATION(huart);
307 .loc 1 913 0 discriminator 2
308 0034 8022 movs r2, #128
309 .LVL24:
310 0036 5201 lsls r2, r2, #5
311 0038 9342 cmp r3, r2
312 003a 0FD0 beq .L30
313 003c 002B cmp r3, #0
314 003e 1CD1 bne .L21
315 .loc 1 913 0 is_stmt 0 discriminator 5
316 0040 0369 ldr r3, [r0, #16]
317 0042 002B cmp r3, #0
318 0044 15D1 bne .L22
319 .loc 1 913 0 discriminator 7
320 0046 5C33 adds r3, r3, #92
321 0048 FF22 movs r2, #255
322 004a C252 strh r2, [r0, r3]
323 .LVL25:
324 004c 19E0 b .L20
325 .LVL26:
326 .L29:
897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
327 .loc 1 897 0 is_stmt 1 discriminator 1
328 004e 0469 ldr r4, [r0, #16]
329 0050 002C cmp r4, #0
ARM GAS /tmp/cc7An1gz.s page 23
330 0052 E3D1 bne .L17
899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
331 .loc 1 899 0
332 0054 CC07 lsls r4, r1, #31
333 0056 E1D5 bpl .L17
901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
334 .loc 1 901 0
335 0058 0120 movs r0, #1
336 .LVL27:
337 005a 32E0 b .L16
338 .LVL28:
339 .L30:
340 .loc 1 913 0 discriminator 1
341 005c 0369 ldr r3, [r0, #16]
342 005e 002B cmp r3, #0
343 0060 03D1 bne .L19
344 .loc 1 913 0 is_stmt 0 discriminator 3
345 0062 5C33 adds r3, r3, #92
346 0064 1A4A ldr r2, .L32
347 0066 C252 strh r2, [r0, r3]
348 .LVL29:
349 0068 0BE0 b .L20
350 .LVL30:
351 .L19:
352 .loc 1 913 0 discriminator 4
353 006a 5C23 movs r3, #92
354 006c FF22 movs r2, #255
355 006e C252 strh r2, [r0, r3]
356 .LVL31:
357 0070 07E0 b .L20
358 .LVL32:
359 .L22:
360 .loc 1 913 0 discriminator 8
361 0072 5C23 movs r3, #92
362 0074 7F22 movs r2, #127
363 0076 C252 strh r2, [r0, r3]
364 .LVL33:
365 0078 03E0 b .L20
366 .LVL34:
367 .L21:
368 .loc 1 913 0 discriminator 6
369 007a 8022 movs r2, #128
370 007c 5205 lsls r2, r2, #21
371 007e 9342 cmp r3, r2
372 0080 13D0 beq .L31
373 .LVL35:
374 .L20:
914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
375 .loc 1 915 0 is_stmt 1
376 0082 0023 movs r3, #0
377 0084 C366 str r3, [r0, #108]
916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
378 .loc 1 916 0
379 0086 6A22 movs r2, #106
380 0088 2221 movs r1, #34
381 008a 8154 strb r1, [r0, r2]
ARM GAS /tmp/cc7An1gz.s page 24
917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
382 .loc 1 919 0
383 008c 023A subs r2, r2, #2
384 008e 8354 strb r3, [r0, r2]
920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */
922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
385 .loc 1 922 0
386 0090 0268 ldr r2, [r0]
387 0092 9368 ldr r3, [r2, #8]
388 0094 2139 subs r1, r1, #33
389 0096 0B43 orrs r3, r1
390 0098 9360 str r3, [r2, #8]
923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART Parity Error and Data Register not empty Interrupts */
925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);
391 .loc 1 925 0
392 009a 0268 ldr r2, [r0]
393 009c 1168 ldr r1, [r2]
394 009e 9023 movs r3, #144
395 00a0 5B00 lsls r3, r3, #1
396 00a2 0B43 orrs r3, r1
397 00a4 1360 str r3, [r2]
926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
398 .loc 1 927 0
399 00a6 0020 movs r0, #0
400 .LVL36:
401 00a8 0BE0 b .L16
402 .LVL37:
403 .L31:
913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
404 .loc 1 913 0 discriminator 9
405 00aa 0369 ldr r3, [r0, #16]
406 00ac 002B cmp r3, #0
407 00ae 03D1 bne .L23
913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
408 .loc 1 913 0 is_stmt 0 discriminator 10
409 00b0 5C33 adds r3, r3, #92
410 00b2 7F22 movs r2, #127
411 00b4 C252 strh r2, [r0, r3]
412 .LVL38:
413 00b6 E4E7 b .L20
414 .LVL39:
415 .L23:
913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
416 .loc 1 913 0 discriminator 11
417 00b8 5C23 movs r3, #92
418 00ba 3F22 movs r2, #63
419 00bc C252 strh r2, [r0, r3]
420 .LVL40:
421 00be E0E7 b .L20
422 .LVL41:
423 .L24:
928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
ARM GAS /tmp/cc7An1gz.s page 25
929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_BUSY;
424 .loc 1 931 0 is_stmt 1
425 00c0 0220 movs r0, #2
426 .LVL42:
427 .L16:
932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
428 .loc 1 933 0
429 @ sp needed
430 00c2 30BD pop {r4, r5, pc}
431 .LVL43:
432 .L25:
891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
433 .loc 1 891 0
434 00c4 0120 movs r0, #1
435 .LVL44:
436 00c6 FCE7 b .L16
437 .LVL45:
438 .L26:
439 00c8 0120 movs r0, #1
440 .LVL46:
441 00ca FAE7 b .L16
442 .LVL47:
443 .L28:
906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
444 .loc 1 906 0
445 00cc 0220 movs r0, #2
446 .LVL48:
447 00ce F8E7 b .L16
448 .L33:
449 .align 2
450 .L32:
451 00d0 FF010000 .word 511
452 .cfi_endproc
453 .LFE49:
455 .section .text.HAL_UART_Transmit_DMA,"ax",%progbits
456 .align 1
457 .global HAL_UART_Transmit_DMA
458 .syntax unified
459 .code 16
460 .thumb_func
461 .fpu softvfp
463 HAL_UART_Transmit_DMA:
464 .LFB50:
934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Send an amount of data in DMA mode.
937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param pData: pointer to data buffer.
939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Size: amount of data to be sent.
940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-
941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * address of user data buffer containing data to be sent, should be aligned on a half wor
942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (as sent data will be handled using u16 pointer cast). Depending on compilation chain,
943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * use of specific alignment compilation directives or pragmas might be required to ensure
944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
ARM GAS /tmp/cc7An1gz.s page 26
945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
465 .loc 1 947 0
466 .cfi_startproc
467 @ args = 0, pretend = 0, frame = 0
468 @ frame_needed = 0, uses_anonymous_args = 0
469 .LVL49:
470 0000 70B5 push {r4, r5, r6, lr}
471 .LCFI3:
472 .cfi_def_cfa_offset 16
473 .cfi_offset 4, -16
474 .cfi_offset 5, -12
475 .cfi_offset 6, -8
476 .cfi_offset 14, -4
477 0002 0400 movs r4, r0
948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */
949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->gState == HAL_UART_STATE_READY)
478 .loc 1 949 0
479 0004 6920 movs r0, #105
480 .LVL50:
481 0006 205C ldrb r0, [r4, r0]
482 0008 2028 cmp r0, #32
483 000a 3ED1 bne .L37
950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((pData == NULL ) || (Size == 0U))
484 .loc 1 951 0
485 000c 0029 cmp r1, #0
486 000e 3ED0 beq .L38
487 .loc 1 951 0 is_stmt 0 discriminator 1
488 0010 002A cmp r2, #0
489 0012 3ED0 beq .L39
952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData buffer provided as input paramter
957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** should be aligned on a u16 frontier, as data copy into TDR will be
958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** handled by DMA from a u16 frontier. */
959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
490 .loc 1 959 0 is_stmt 1
491 0014 8023 movs r3, #128
492 0016 5B01 lsls r3, r3, #5
493 0018 A068 ldr r0, [r4, #8]
494 001a 9842 cmp r0, r3
495 001c 2ED0 beq .L42
496 .L36:
960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((((uint32_t)pData)&1) != 0)
962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
497 .loc 1 968 0
ARM GAS /tmp/cc7An1gz.s page 27
498 001e 6823 movs r3, #104
499 0020 E35C ldrb r3, [r4, r3]
500 0022 012B cmp r3, #1
501 0024 37D0 beq .L41
502 .loc 1 968 0 is_stmt 0 discriminator 2
503 0026 6826 movs r6, #104
504 0028 0123 movs r3, #1
505 002a A355 strb r3, [r4, r6]
969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->pTxBuffPtr = pData;
506 .loc 1 970 0 is_stmt 1 discriminator 2
507 002c E164 str r1, [r4, #76]
971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferSize = Size;
508 .loc 1 971 0 discriminator 2
509 002e 4F33 adds r3, r3, #79
510 0030 E252 strh r2, [r4, r3]
972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = Size;
511 .loc 1 972 0 discriminator 2
512 0032 0233 adds r3, r3, #2
513 0034 E252 strh r2, [r4, r3]
973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
514 .loc 1 974 0 discriminator 2
515 0036 0025 movs r5, #0
516 0038 E566 str r5, [r4, #108]
975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
517 .loc 1 975 0 discriminator 2
518 003a 1733 adds r3, r3, #23
519 003c 2121 movs r1, #33
520 .LVL51:
521 003e E154 strb r1, [r4, r3]
976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */
978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt;
522 .loc 1 978 0 discriminator 2
523 0040 236E ldr r3, [r4, #96]
524 0042 1649 ldr r1, .L43
525 0044 D962 str r1, [r3, #44]
979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */
981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt;
526 .loc 1 981 0 discriminator 2
527 0046 236E ldr r3, [r4, #96]
528 0048 1549 ldr r1, .L43+4
529 004a 1963 str r1, [r3, #48]
982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the DMA error callback */
984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferErrorCallback = UART_DMAError;
530 .loc 1 984 0 discriminator 2
531 004c 236E ldr r3, [r4, #96]
532 004e 1549 ldr r1, .L43+8
533 0050 5963 str r1, [r3, #52]
985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the DMA abort callback */
987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
534 .loc 1 987 0 discriminator 2
535 0052 236E ldr r3, [r4, #96]
ARM GAS /tmp/cc7An1gz.s page 28
536 0054 9D63 str r5, [r3, #56]
988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART transmit DMA channel */
990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, S
537 .loc 1 990 0 discriminator 2
538 0056 2168 ldr r1, [r4]
539 0058 2831 adds r1, r1, #40
540 005a 1300 movs r3, r2
541 005c 0A00 movs r2, r1
542 .LVL52:
543 005e E16C ldr r1, [r4, #76]
544 0060 206E ldr r0, [r4, #96]
545 0062 FFF7FEFF bl HAL_DMA_Start_IT
546 .LVL53:
991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the TC flag in the ICR register */
993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF);
547 .loc 1 993 0 discriminator 2
548 0066 2368 ldr r3, [r4]
549 0068 4022 movs r2, #64
550 006a 1A62 str r2, [r3, #32]
994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
551 .loc 1 996 0 discriminator 2
552 006c A555 strb r5, [r4, r6]
997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the DMA transfer for transmit request by setting the DMAT bit
999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** in the UART CR3 register */
1000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAT);
553 .loc 1 1000 0 discriminator 2
554 006e 2268 ldr r2, [r4]
555 0070 9368 ldr r3, [r2, #8]
556 0072 8021 movs r1, #128
557 0074 0B43 orrs r3, r1
558 0076 9360 str r3, [r2, #8]
1001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
559 .loc 1 1002 0 discriminator 2
560 0078 0020 movs r0, #0
561 007a 07E0 b .L35
562 .LVL54:
563 .L42:
959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
564 .loc 1 959 0 discriminator 1
565 007c 2369 ldr r3, [r4, #16]
566 007e 002B cmp r3, #0
567 0080 CDD1 bne .L36
961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
568 .loc 1 961 0
569 0082 CB07 lsls r3, r1, #31
570 0084 CBD5 bpl .L36
963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
571 .loc 1 963 0
572 0086 0120 movs r0, #1
573 0088 00E0 b .L35
574 .L37:
ARM GAS /tmp/cc7An1gz.s page 29
1003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_BUSY;
575 .loc 1 1006 0
576 008a 0220 movs r0, #2
577 .LVL55:
578 .L35:
1007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
579 .loc 1 1008 0
580 @ sp needed
581 .LVL56:
582 008c 70BD pop {r4, r5, r6, pc}
583 .LVL57:
584 .L38:
953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
585 .loc 1 953 0
586 008e 0120 movs r0, #1
587 0090 FCE7 b .L35
588 .L39:
589 0092 0120 movs r0, #1
590 0094 FAE7 b .L35
591 .L41:
968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
592 .loc 1 968 0
593 0096 0220 movs r0, #2
594 0098 F8E7 b .L35
595 .L44:
596 009a C046 .align 2
597 .L43:
598 009c 00000000 .word UART_DMATransmitCplt
599 00a0 00000000 .word UART_DMATxHalfCplt
600 00a4 00000000 .word UART_DMAError
601 .cfi_endproc
602 .LFE50:
604 .section .text.HAL_UART_Receive_DMA,"ax",%progbits
605 .align 1
606 .global HAL_UART_Receive_DMA
607 .syntax unified
608 .code 16
609 .thumb_func
610 .fpu softvfp
612 HAL_UART_Receive_DMA:
613 .LFB51:
1009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Receive an amount of data in DMA mode.
1012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param pData: pointer to data buffer.
1014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Size: amount of data to be received.
1015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note When the UART parity is enabled (PCE = 1) the data received contain the parity bit.
1016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-
1017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * address of user data buffer containing data to be sent, should be aligned on a half wor
1018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (as sent data will be handled using u16 pointer cast). Depending on compilation chain,
1019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * use of specific alignment compilation directives or pragmas might be required to ensure
1020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
ARM GAS /tmp/cc7An1gz.s page 30
1021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
1023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
614 .loc 1 1023 0
615 .cfi_startproc
616 @ args = 0, pretend = 0, frame = 0
617 @ frame_needed = 0, uses_anonymous_args = 0
618 .LVL58:
619 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
620 .LCFI4:
621 .cfi_def_cfa_offset 24
622 .cfi_offset 3, -24
623 .cfi_offset 4, -20
624 .cfi_offset 5, -16
625 .cfi_offset 6, -12
626 .cfi_offset 7, -8
627 .cfi_offset 14, -4
628 0002 0400 movs r4, r0
1024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */
1025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->RxState == HAL_UART_STATE_READY)
629 .loc 1 1025 0
630 0004 6A20 movs r0, #106
631 .LVL59:
632 0006 205C ldrb r0, [r4, r0]
633 0008 2028 cmp r0, #32
634 000a 42D1 bne .L48
1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((pData == NULL ) || (Size == 0U))
635 .loc 1 1027 0
636 000c 0029 cmp r1, #0
637 000e 42D0 beq .L49
638 .loc 1 1027 0 is_stmt 0 discriminator 1
639 0010 002A cmp r2, #0
640 0012 42D0 beq .L50
1028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
1030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData buffer provided as input paramter
1033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** should be aligned on a u16 frontier, as data copy from RDR will be
1034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** handled by DMA from a u16 frontier. */
1035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
641 .loc 1 1035 0 is_stmt 1
642 0014 8023 movs r3, #128
643 0016 5B01 lsls r3, r3, #5
644 0018 A068 ldr r0, [r4, #8]
645 001a 9842 cmp r0, r3
646 001c 32D0 beq .L53
647 .L47:
1036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((((uint32_t)pData)&1) != 0)
1038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_ERROR;
1040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
ARM GAS /tmp/cc7An1gz.s page 31
1044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
648 .loc 1 1044 0
649 001e 6823 movs r3, #104
650 0020 E35C ldrb r3, [r4, r3]
651 0022 012B cmp r3, #1
652 0024 3BD0 beq .L52
653 .loc 1 1044 0 is_stmt 0 discriminator 2
654 0026 6827 movs r7, #104
655 0028 0126 movs r6, #1
656 002a E655 strb r6, [r4, r7]
1045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->pRxBuffPtr = pData;
657 .loc 1 1046 0 is_stmt 1 discriminator 2
658 002c 6165 str r1, [r4, #84]
1047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferSize = Size;
659 .loc 1 1047 0 discriminator 2
660 002e 5823 movs r3, #88
661 0030 E252 strh r2, [r4, r3]
1048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
662 .loc 1 1049 0 discriminator 2
663 0032 0025 movs r5, #0
664 0034 E566 str r5, [r4, #108]
1050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
665 .loc 1 1050 0 discriminator 2
666 0036 1233 adds r3, r3, #18
667 0038 2221 movs r1, #34
668 .LVL60:
669 003a E154 strb r1, [r4, r3]
1051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */
1053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt;
670 .loc 1 1053 0 discriminator 2
671 003c 636E ldr r3, [r4, #100]
672 003e 1949 ldr r1, .L54
673 0040 D962 str r1, [r3, #44]
1054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */
1056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt;
674 .loc 1 1056 0 discriminator 2
675 0042 636E ldr r3, [r4, #100]
676 0044 1849 ldr r1, .L54+4
677 0046 1963 str r1, [r3, #48]
1057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the DMA error callback */
1059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferErrorCallback = UART_DMAError;
678 .loc 1 1059 0 discriminator 2
679 0048 636E ldr r3, [r4, #100]
680 004a 1849 ldr r1, .L54+8
681 004c 5963 str r1, [r3, #52]
1060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the DMA abort callback */
1062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
682 .loc 1 1062 0 discriminator 2
683 004e 636E ldr r3, [r4, #100]
684 0050 9D63 str r5, [r3, #56]
1063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 32
1064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the DMA channel */
1065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, S
685 .loc 1 1065 0 discriminator 2
686 0052 2168 ldr r1, [r4]
687 0054 2431 adds r1, r1, #36
688 0056 1300 movs r3, r2
689 0058 626D ldr r2, [r4, #84]
690 .LVL61:
691 005a 606E ldr r0, [r4, #100]
692 005c FFF7FEFF bl HAL_DMA_Start_IT
693 .LVL62:
1066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
1068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
694 .loc 1 1068 0 discriminator 2
695 0060 E555 strb r5, [r4, r7]
1069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */
1071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE);
696 .loc 1 1071 0 discriminator 2
697 0062 2268 ldr r2, [r4]
698 0064 1168 ldr r1, [r2]
699 0066 8023 movs r3, #128
700 0068 5B00 lsls r3, r3, #1
701 006a 0B43 orrs r3, r1
702 006c 1360 str r3, [r2]
1072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */
1074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
703 .loc 1 1074 0 discriminator 2
704 006e 2268 ldr r2, [r4]
705 0070 9368 ldr r3, [r2, #8]
706 0072 3343 orrs r3, r6
707 0074 9360 str r3, [r2, #8]
1075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the DMA transfer for the receiver request by setting the DMAR bit
1077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** in the UART CR3 register */
1078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAR);
708 .loc 1 1078 0 discriminator 2
709 0076 2268 ldr r2, [r4]
710 0078 9368 ldr r3, [r2, #8]
711 007a 4021 movs r1, #64
712 007c 0B43 orrs r3, r1
713 007e 9360 str r3, [r2, #8]
1079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
714 .loc 1 1080 0 discriminator 2
715 0080 0020 movs r0, #0
716 0082 07E0 b .L46
717 .LVL63:
718 .L53:
1035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
719 .loc 1 1035 0 discriminator 1
720 0084 2369 ldr r3, [r4, #16]
721 0086 002B cmp r3, #0
722 0088 C9D1 bne .L47
1037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
ARM GAS /tmp/cc7An1gz.s page 33
723 .loc 1 1037 0
724 008a CB07 lsls r3, r1, #31
725 008c C7D5 bpl .L47
1039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
726 .loc 1 1039 0
727 008e 0120 movs r0, #1
728 0090 00E0 b .L46
729 .L48:
1081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_BUSY;
730 .loc 1 1084 0
731 0092 0220 movs r0, #2
732 .LVL64:
733 .L46:
1085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
734 .loc 1 1086 0
735 @ sp needed
736 .LVL65:
737 0094 F8BD pop {r3, r4, r5, r6, r7, pc}
738 .LVL66:
739 .L49:
1029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
740 .loc 1 1029 0
741 0096 0120 movs r0, #1
742 0098 FCE7 b .L46
743 .L50:
744 009a 0120 movs r0, #1
745 009c FAE7 b .L46
746 .L52:
1044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
747 .loc 1 1044 0
748 009e 0220 movs r0, #2
749 00a0 F8E7 b .L46
750 .L55:
751 00a2 C046 .align 2
752 .L54:
753 00a4 00000000 .word UART_DMAReceiveCplt
754 00a8 00000000 .word UART_DMARxHalfCplt
755 00ac 00000000 .word UART_DMAError
756 .cfi_endproc
757 .LFE51:
759 .section .text.HAL_UART_DMAPause,"ax",%progbits
760 .align 1
761 .global HAL_UART_DMAPause
762 .syntax unified
763 .code 16
764 .thumb_func
765 .fpu softvfp
767 HAL_UART_DMAPause:
768 .LFB52:
1087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Pause the DMA Transfer.
1090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
ARM GAS /tmp/cc7An1gz.s page 34
1091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart)
1094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
769 .loc 1 1094 0
770 .cfi_startproc
771 @ args = 0, pretend = 0, frame = 0
772 @ frame_needed = 0, uses_anonymous_args = 0
773 @ link register save eliminated.
774 .LVL67:
1095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
1096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
775 .loc 1 1096 0
776 0000 6823 movs r3, #104
777 0002 C35C ldrb r3, [r0, r3]
778 0004 012B cmp r3, #1
779 0006 2CD0 beq .L60
780 .loc 1 1096 0 is_stmt 0 discriminator 2
781 0008 6823 movs r3, #104
782 000a 0122 movs r2, #1
783 000c C254 strb r2, [r0, r3]
1097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) &&
784 .loc 1 1098 0 is_stmt 1 discriminator 2
785 000e 0133 adds r3, r3, #1
786 0010 C35C ldrb r3, [r0, r3]
787 0012 212B cmp r3, #33
788 0014 08D0 beq .L61
789 .L58:
1099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)))
1100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Tx request */
1102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
1103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) &&
790 .loc 1 1104 0
791 0016 6A23 movs r3, #106
792 0018 C35C ldrb r3, [r0, r3]
793 001a 222B cmp r3, #34
794 001c 0DD0 beq .L62
795 .L59:
1105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)))
1106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */
1108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
1109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Rx request */
1112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
1113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
1116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
796 .loc 1 1116 0
797 001e 6823 movs r3, #104
798 0020 0022 movs r2, #0
799 0022 C254 strb r2, [r0, r3]
ARM GAS /tmp/cc7An1gz.s page 35
1117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
800 .loc 1 1118 0
801 0024 0020 movs r0, #0
802 .LVL68:
803 .L57:
1119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
804 .loc 1 1119 0
805 @ sp needed
806 0026 7047 bx lr
807 .LVL69:
808 .L61:
1099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
809 .loc 1 1099 0 discriminator 1
810 0028 0368 ldr r3, [r0]
811 002a 9A68 ldr r2, [r3, #8]
1098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)))
812 .loc 1 1098 0 discriminator 1
813 002c 1206 lsls r2, r2, #24
814 002e F2D5 bpl .L58
1102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
815 .loc 1 1102 0
816 0030 9A68 ldr r2, [r3, #8]
817 0032 8021 movs r1, #128
818 0034 8A43 bics r2, r1
819 0036 9A60 str r2, [r3, #8]
820 0038 EDE7 b .L58
821 .L62:
1105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
822 .loc 1 1105 0 discriminator 1
823 003a 0368 ldr r3, [r0]
824 003c 9A68 ldr r2, [r3, #8]
1104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)))
825 .loc 1 1104 0 discriminator 1
826 003e 5206 lsls r2, r2, #25
827 0040 EDD5 bpl .L59
1108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
828 .loc 1 1108 0
829 0042 1A68 ldr r2, [r3]
830 0044 0849 ldr r1, .L63
831 0046 0A40 ands r2, r1
832 0048 1A60 str r2, [r3]
1109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
833 .loc 1 1109 0
834 004a 0268 ldr r2, [r0]
835 004c 9368 ldr r3, [r2, #8]
836 004e 0331 adds r1, r1, #3
837 0050 FF31 adds r1, r1, #255
838 0052 8B43 bics r3, r1
839 0054 9360 str r3, [r2, #8]
1112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
840 .loc 1 1112 0
841 0056 0268 ldr r2, [r0]
842 0058 9368 ldr r3, [r2, #8]
843 005a 3F31 adds r1, r1, #63
844 005c 8B43 bics r3, r1
845 005e 9360 str r3, [r2, #8]
ARM GAS /tmp/cc7An1gz.s page 36
846 0060 DDE7 b .L59
847 .L60:
1096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
848 .loc 1 1096 0
849 0062 0220 movs r0, #2
850 .LVL70:
851 0064 DFE7 b .L57
852 .L64:
853 0066 C046 .align 2
854 .L63:
855 0068 FFFEFFFF .word -257
856 .cfi_endproc
857 .LFE52:
859 .section .text.HAL_UART_DMAResume,"ax",%progbits
860 .align 1
861 .global HAL_UART_DMAResume
862 .syntax unified
863 .code 16
864 .thumb_func
865 .fpu softvfp
867 HAL_UART_DMAResume:
868 .LFB53:
1120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Resume the DMA Transfer.
1123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart)
1127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
869 .loc 1 1127 0
870 .cfi_startproc
871 @ args = 0, pretend = 0, frame = 0
872 @ frame_needed = 0, uses_anonymous_args = 0
873 @ link register save eliminated.
874 .LVL71:
1128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
1129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
875 .loc 1 1129 0
876 0000 6823 movs r3, #104
877 0002 C35C ldrb r3, [r0, r3]
878 0004 012B cmp r3, #1
879 0006 29D0 beq .L69
880 .loc 1 1129 0 is_stmt 0 discriminator 2
881 0008 6823 movs r3, #104
882 000a 0122 movs r2, #1
883 000c C254 strb r2, [r0, r3]
1130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->gState == HAL_UART_STATE_BUSY_TX)
884 .loc 1 1131 0 is_stmt 1 discriminator 2
885 000e 0133 adds r3, r3, #1
886 0010 C35C ldrb r3, [r0, r3]
887 0012 212B cmp r3, #33
888 0014 08D0 beq .L70
889 .L67:
1132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART DMA Tx request */
ARM GAS /tmp/cc7An1gz.s page 37
1134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAT);
1135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->RxState == HAL_UART_STATE_BUSY_RX)
890 .loc 1 1136 0
891 0016 6A23 movs r3, #106
892 0018 C35C ldrb r3, [r0, r3]
893 001a 222B cmp r3, #34
894 001c 0AD0 beq .L71
895 .L68:
1137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the Overrun flag before resuming the Rx transfer */
1139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF);
1140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reenable PE and ERR (Frame error, noise error, overrun error) interrupts */
1142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE);
1143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
1144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART DMA Rx request */
1146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAR);
1147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
1150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
896 .loc 1 1150 0
897 001e 6823 movs r3, #104
898 0020 0022 movs r2, #0
899 0022 C254 strb r2, [r0, r3]
1151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
900 .loc 1 1152 0
901 0024 0020 movs r0, #0
902 .LVL72:
903 .L66:
1153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
904 .loc 1 1153 0
905 @ sp needed
906 0026 7047 bx lr
907 .LVL73:
908 .L70:
1134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
909 .loc 1 1134 0
910 0028 0268 ldr r2, [r0]
911 002a 9368 ldr r3, [r2, #8]
912 002c 8021 movs r1, #128
913 002e 0B43 orrs r3, r1
914 0030 9360 str r3, [r2, #8]
915 0032 F0E7 b .L67
916 .L71:
1139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
917 .loc 1 1139 0
918 0034 0368 ldr r3, [r0]
919 0036 0822 movs r2, #8
920 0038 1A62 str r2, [r3, #32]
1142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
921 .loc 1 1142 0
922 003a 0268 ldr r2, [r0]
923 003c 1168 ldr r1, [r2]
ARM GAS /tmp/cc7An1gz.s page 38
924 003e 8023 movs r3, #128
925 0040 5B00 lsls r3, r3, #1
926 0042 0B43 orrs r3, r1
927 0044 1360 str r3, [r2]
1143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
928 .loc 1 1143 0
929 0046 0268 ldr r2, [r0]
930 0048 9368 ldr r3, [r2, #8]
931 004a 0121 movs r1, #1
932 004c 0B43 orrs r3, r1
933 004e 9360 str r3, [r2, #8]
1146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
934 .loc 1 1146 0
935 0050 0268 ldr r2, [r0]
936 0052 9368 ldr r3, [r2, #8]
937 0054 3F31 adds r1, r1, #63
938 0056 0B43 orrs r3, r1
939 0058 9360 str r3, [r2, #8]
940 005a E0E7 b .L68
941 .L69:
1129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
942 .loc 1 1129 0
943 005c 0220 movs r0, #2
944 .LVL74:
945 005e E2E7 b .L66
946 .cfi_endproc
947 .LFE53:
949 .section .text.HAL_UART_DMAStop,"ax",%progbits
950 .align 1
951 .global HAL_UART_DMAStop
952 .syntax unified
953 .code 16
954 .thumb_func
955 .fpu softvfp
957 HAL_UART_DMAStop:
958 .LFB54:
1154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Stop the DMA Transfer.
1157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart)
1161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
959 .loc 1 1161 0
960 .cfi_startproc
961 @ args = 0, pretend = 0, frame = 0
962 @ frame_needed = 0, uses_anonymous_args = 0
963 .LVL75:
964 0000 10B5 push {r4, lr}
965 .LCFI5:
966 .cfi_def_cfa_offset 8
967 .cfi_offset 4, -8
968 .cfi_offset 14, -4
969 0002 0400 movs r4, r0
1162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application
1163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** to call the HAL UART API under callbacks HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback()
ARM GAS /tmp/cc7An1gz.s page 39
1164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback / HAL_UART_RxHalfCpltCallback:
1165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** indeed, when HAL_DMA_Abort() API is called, the DMA TX/RX Transfer or Half Transfer complete
1166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** interrupt is generated if the DMA transfer interruption occurs at the middle or at the end of
1167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the stream and the corresponding call back is executed. */
1168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */
1170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) &&
970 .loc 1 1170 0
971 0004 6923 movs r3, #105
972 0006 C35C ldrb r3, [r0, r3]
973 0008 212B cmp r3, #33
974 000a 05D0 beq .L77
975 .LVL76:
976 .L73:
1171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)))
1172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
1174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Tx channel */
1176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmatx != NULL)
1177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmatx);
1179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_EndTxTransfer(huart);
1182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */
1185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) &&
977 .loc 1 1185 0
978 000c 6A23 movs r3, #106
979 000e E35C ldrb r3, [r4, r3]
980 0010 222B cmp r3, #34
981 0012 17D0 beq .L78
982 .L75:
1186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)))
1187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
1189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Rx channel */
1191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmarx != NULL)
1192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmarx);
1194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_EndRxTransfer(huart);
1197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
1200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
983 .loc 1 1200 0
984 0014 0020 movs r0, #0
985 @ sp needed
986 .LVL77:
987 0016 10BD pop {r4, pc}
988 .LVL78:
989 .L77:
ARM GAS /tmp/cc7An1gz.s page 40
1171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)))
990 .loc 1 1171 0 discriminator 1
991 0018 0368 ldr r3, [r0]
992 001a 9A68 ldr r2, [r3, #8]
1170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)))
993 .loc 1 1170 0 discriminator 1
994 001c 1206 lsls r2, r2, #24
995 001e F5D5 bpl .L73
1173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
996 .loc 1 1173 0
997 0020 9A68 ldr r2, [r3, #8]
998 0022 8021 movs r1, #128
999 0024 8A43 bics r2, r1
1000 0026 9A60 str r2, [r3, #8]
1176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1001 .loc 1 1176 0
1002 0028 006E ldr r0, [r0, #96]
1003 .LVL79:
1004 002a 0028 cmp r0, #0
1005 002c 01D0 beq .L74
1178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1006 .loc 1 1178 0
1007 002e FFF7FEFF bl HAL_DMA_Abort
1008 .LVL80:
1009 .L74:
1010 .LBB14:
1011 .LBB15:
1201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Abort ongoing transfers (blocking mode).
1204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
1205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or
1206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * This procedure performs following operations :
1207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx)
1208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
1209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode)
1210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Set handle State to READY
1211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere
1212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart)
1215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
1217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_
1218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */
1221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
1222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
1224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use blocking DMA Abort API (no callback) */
1226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmatx != NULL)
1227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null.
1229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** No call back execution at end of DMA abort procedure */
1230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
ARM GAS /tmp/cc7An1gz.s page 41
1231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmatx);
1233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
1237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
1238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
1240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use blocking DMA Abort API (no callback) */
1242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmarx != NULL)
1243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null.
1245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** No call back execution at end of DMA abort procedure */
1246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
1247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmarx);
1249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */
1253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
1254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
1255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the Error flags in the ICR register */
1257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
1258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */
1260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
1262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset Handle ErrorCode to No Error */
1264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
1265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
1267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (blocking mode).
1271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
1272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt
1273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * This procedure performs following operations :
1274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable UART Interrupts (Tx)
1275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
1276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode)
1277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Set handle State to READY
1278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere
1279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart)
1282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
1284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
1285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */
1287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
ARM GAS /tmp/cc7An1gz.s page 42
1288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
1290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use blocking DMA Abort API (no callback) */
1292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmatx != NULL)
1293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null.
1295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** No call back execution at end of DMA abort procedure */
1296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
1297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmatx);
1299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset Tx transfer counter */
1303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
1304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->gState to Ready */
1306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
1309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (blocking mode).
1313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
1314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt
1315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * This procedure performs following operations :
1316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable UART Interrupts (Rx)
1317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
1318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode)
1319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Set handle State to READY
1320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere
1321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart)
1324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
1326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
1327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
1330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
1331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
1333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use blocking DMA Abort API (no callback) */
1335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmarx != NULL)
1336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null.
1338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** No call back execution at end of DMA abort procedure */
1339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
1340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmarx);
1342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 43
1345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset Rx transfer counter */
1346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
1347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the Error flags in the ICR register */
1349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
1350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->RxState to Ready */
1352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
1353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
1355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Abort ongoing transfers (Interrupt mode).
1359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
1360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or
1361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * This procedure performs following operations :
1362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx)
1363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
1364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode)
1365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Set handle State to READY
1366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - At abort completion, call user abort complete callback
1367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be
1368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex
1369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart)
1372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t abortcplt = 1;
1374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
1376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_
1377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks sh
1380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** before any call to DMA Abort functions */
1381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* DMA Tx Handle is valid */
1382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmatx != NULL)
1383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled.
1385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Otherwise, set it to NULL */
1386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
1387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback;
1389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
1393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* DMA Rx Handle is valid */
1396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmarx != NULL)
1397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled.
1399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Otherwise, set it to NULL */
1400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
1401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
ARM GAS /tmp/cc7An1gz.s page 44
1402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback;
1403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
1407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */
1411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
1412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable DMA Tx at UART level */
1414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
1415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */
1417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmatx != NULL)
1418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART Tx DMA Abort callback has already been initialised :
1420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
1421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort DMA TX */
1423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK)
1424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
1426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** abortcplt = 0;
1430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
1435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
1436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
1438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */
1440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmarx != NULL)
1441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART Rx DMA Abort callback has already been initialised :
1443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
1444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort DMA RX */
1446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
1447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
1449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** abortcplt = 1;
1450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** abortcplt = 0;
1454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if no DMA abort complete callback execution is required => call user Abort Complete callback *
ARM GAS /tmp/cc7An1gz.s page 45
1459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (abortcplt == 1)
1460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */
1462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
1463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
1464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset errorCode */
1466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
1467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the Error flags in the ICR register */
1469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF
1470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */
1472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
1474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
1476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart);
1477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
1480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (Interrupt mode).
1484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
1485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt
1486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * This procedure performs following operations :
1487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable UART Interrupts (Tx)
1488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
1489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode)
1490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Set handle State to READY
1491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - At abort completion, call user abort complete callback
1492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be
1493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex
1494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart)
1497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
1499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
1500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */
1502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
1503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
1505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */
1507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmatx != NULL)
1508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA Abort callback :
1510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
1511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback;
1512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort DMA TX */
1514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK)
1515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
ARM GAS /tmp/cc7An1gz.s page 46
1516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call Directly huart->hdmatx->XferAbortCallback function in case of error */
1517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferAbortCallback(huart->hdmatx);
1518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset Tx transfer counter */
1523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
1524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->gState to Ready */
1526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
1529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart);
1530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset Tx transfer counter */
1535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
1536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->gState to Ready */
1538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
1541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart);
1542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
1545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (Interrupt mode).
1549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
1550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt
1551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * This procedure performs following operations :
1552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable UART Interrupts (Rx)
1553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled)
1554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode)
1555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - Set handle State to READY
1556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - At abort completion, call user abort complete callback
1557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be
1558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex
1559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart)
1562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
1564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
1565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
1568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
1569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
1571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */
ARM GAS /tmp/cc7An1gz.s page 47
1573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmarx != NULL)
1574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA Abort callback :
1576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
1577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback;
1578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort DMA RX */
1580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
1581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */
1583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx);
1584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset Rx transfer counter */
1589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
1590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the Error flags in the ICR register */
1592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_F
1593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->RxState to Ready */
1595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
1596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
1598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart);
1599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset Rx transfer counter */
1604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
1605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the Error flags in the ICR register */
1607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF
1608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->RxState to Ready */
1610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
1611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */
1613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart);
1614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
1617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Handle UART interrupt request.
1621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
1625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR);
1627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1);
1628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t cr3its;
1629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t errorflags;
ARM GAS /tmp/cc7An1gz.s page 48
1630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* If no error occurs */
1632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE));
1633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (errorflags == RESET)
1634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART in mode Receiver ---------------------------------------------------*/
1636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(((isrflags & USART_ISR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
1637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_Receive_IT(huart);
1639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return;
1640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* If some errors occur */
1644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** cr3its = READ_REG(huart->Instance->CR3);
1645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if( (errorflags != RESET)
1646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** && ( ((cr3its & USART_CR3_EIE) != RESET)
1647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)) )
1648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART parity error interrupt occurred -------------------------------------*/
1650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(((isrflags & USART_ISR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET))
1651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_IT(huart, UART_CLEAR_PEF);
1653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE;
1655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART frame error interrupt occurred --------------------------------------*/
1658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(((isrflags & USART_ISR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_IT(huart, UART_CLEAR_FEF);
1661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE;
1663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART noise error interrupt occurred --------------------------------------*/
1666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(((isrflags & USART_ISR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_IT(huart, UART_CLEAR_NEF);
1669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE;
1671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART Over-Run interrupt occurred -----------------------------------------*/
1674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(((isrflags & USART_ISR_ORE) != RESET) &&
1675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (((cr1its & USART_CR1_RXNEIE) != RESET) || ((cr3its & USART_CR3_EIE) != RESET)))
1676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_IT(huart, UART_CLEAR_OREF);
1678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_ORE;
1680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call UART Error Call back function if need be --------------------------*/
1683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->ErrorCode != HAL_UART_ERROR_NONE)
1684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART in mode Receiver ---------------------------------------------------*/
1686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(((isrflags & USART_ISR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
ARM GAS /tmp/cc7An1gz.s page 49
1687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_Receive_IT(huart);
1689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* If Overrun error occurs, or if any error occurs in DMA mode reception,
1692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** consider error as blocking */
1693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) ||
1694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)))
1695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Blocking error : transfer is aborted
1697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Set the UART state ready to be able to start again the process,
1698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Disable Rx Interrupts, and disable Rx DMA request, if ongoing */
1699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_EndRxTransfer(huart);
1700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */
1702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
1703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
1705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort the UART DMA Rx channel */
1707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmarx != NULL)
1708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART DMA Abort callback :
1710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */
1711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError;
1712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Abort DMA RX */
1714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
1715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */
1717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx);
1718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call user error callback */
1723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
1724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call user error callback */
1729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
1730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
1733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Non Blocking error : transfer could go on.
1735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** Error is notified to user through user error callback */
1736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
1737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
1738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return;
1741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** } /* End if some error occurs */
1743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 50
1744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART wakeup from Stop mode interrupt occurred ---------------------------*/
1745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(((isrflags & USART_ISR_WUF) != RESET) && ((cr3its & USART_CR3_WUFIE) != RESET))
1746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_IT(huart, UART_CLEAR_WUF);
1748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART state ready to be able to start again the process */
1749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
1751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UARTEx_WakeupCallback(huart);
1752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return;
1753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART in mode Transmitter ------------------------------------------------*/
1756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(((isrflags & USART_ISR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
1757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_Transmit_IT(huart);
1759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return;
1760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* UART in mode Transmitter (transmission end) -----------------------------*/
1763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(((isrflags & USART_ISR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET))
1764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_EndTransmit_IT(huart);
1766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return;
1767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Tx Transfer completed callback.
1773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
1777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
1780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
1782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_TxCpltCallback can be implemented in the user file.
1783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Tx Half Transfer completed callback.
1788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart)
1792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
1795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed,
1797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_TxHalfCpltCallback can be implemented in the user file.
1798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 51
1801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Rx Transfer completed callback.
1803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
1807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
1810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
1812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_RxCpltCallback can be implemented in the user file.
1813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Rx Half Transfer completed callback.
1818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)
1822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
1825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed,
1827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_RxHalfCpltCallback can be implemented in the user file.
1828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief UART error callback.
1833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
1837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
1840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
1842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_ErrorCallback can be implemented in the user file.
1843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief UART Abort Complete callback.
1848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
1849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_AbortCpltCallback (UART_HandleTypeDef *huart)
1852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
1855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
1857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_AbortCpltCallback can be implemented in the user file.
ARM GAS /tmp/cc7An1gz.s page 52
1858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief UART Abort Complete callback.
1863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
1864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_AbortTransmitCpltCallback (UART_HandleTypeDef *huart)
1867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
1870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
1872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_AbortTransmitCpltCallback can be implemented in the user file.
1873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief UART Abort Receive Complete callback.
1878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
1879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __weak void HAL_UART_AbortReceiveCpltCallback (UART_HandleTypeDef *huart)
1882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UNUSED(huart);
1885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed,
1887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** the HAL_UART_AbortReceiveCpltCallback can be implemented in the user file.
1888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @}
1893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group3 Peripheral Control functions
1896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief UART control functions
1897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
1898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @verbatim
1899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ===============================================================================
1900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ##### Peripheral Control functions #####
1901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ===============================================================================
1902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** [..]
1903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** This subsection provides a set of functions allowing to control the UART.
1904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_MultiProcessor_EnableMuteMode() API enables mute mode
1905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_MultiProcessor_DisableMuteMode() API disables mute mode
1906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_MultiProcessor_EnterMuteMode() API enters mute mode
1907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) UART_SetConfig() API configures the UART peripheral
1908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) UART_AdvFeatureConfig() API optionally configures the UART advanced features
1909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) UART_CheckIdleState() API ensures that TEACK and/or REACK are set after initialization
1910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableTransmitter() API disables receiver and enables transmitter
1911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableReceiver() API disables transmitter and enables receiver
1912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) HAL_LIN_SendBreak() API transmits the break characters
1913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @endverbatim
1914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
ARM GAS /tmp/cc7An1gz.s page 53
1915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Enable UART in mute mode (does not mean UART enters mute mode;
1919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * to enter mute mode, HAL_MultiProcessor_EnterMuteMode() API must be called).
1920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart)
1924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
1926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
1927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
1929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable USART mute mode by setting the MME bit in the CR1 register */
1931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_MME);
1932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return (UART_CheckIdleState(huart));
1936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Disable UART mute mode (does not mean the UART actually exits mute mode
1940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * as it may not have been in mute mode at this very moment).
1941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart)
1945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
1947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
1948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
1950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable USART mute mode by clearing the MME bit in the CR1 register */
1952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME);
1953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return (UART_CheckIdleState(huart));
1957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Enter UART mute mode (means UART actually enters mute mode).
1961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note To exit from mute mode, HAL_MultiProcessor_DisableMuteMode() API must be called.
1962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
1964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart)
1966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST);
1968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Enable the UART transmitter and disable the UART receiver.
ARM GAS /tmp/cc7An1gz.s page 54
1972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
1974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart)
1976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
1978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
1979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
1980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear TE and RE bits */
1982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE));
1983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the USART's transmit interface by setting the TE bit in the USART CR1 register */
1984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TE);
1985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
1989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
1990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
1992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
1995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Enable the UART receiver and disable the UART transmitter.
1996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
1997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status.
1998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
1999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart)
2000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
2002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
2003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
2004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear TE and RE bits */
2006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE));
2007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the USART's receive interface by setting the RE bit in the USART CR1 register */
2008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_RE);
2009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
2011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
2012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
2013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
2015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Transmit break characters.
2020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
2021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
2022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart)
2024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the parameters */
2026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance));
2027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
ARM GAS /tmp/cc7An1gz.s page 55
2029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_LOCK(huart);
2030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
2032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Send break characters */
2034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->RQR |= UART_SENDBREAK_REQUEST;
2035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
2037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
2039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
2040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
2042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @}
2047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group4 Peripheral State and Error functions
2050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief UART Peripheral State functions
2051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *
2052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @verbatim
2053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ==============================================================================
2054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ##### Peripheral State and Error functions #####
2055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ==============================================================================
2056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** [..]
2057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** This subsection provides functions allowing to :
2058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) Return the UART handle state.
2059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (+) Return the UART handle error code
2060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** @endverbatim
2062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
2063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Return the UART handle state.
2067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
2068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * the configuration information for the specified UART.
2069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL state
2070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart)
2072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t temp1= 0x00U, temp2 = 0x00U;
2074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** temp1 = huart->gState;
2075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** temp2 = huart->RxState;
2076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return (HAL_UART_StateTypeDef)(temp1 | temp2);
2078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Return the UART handle error code.
2082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains
2083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * the configuration information for the specified UART.
2084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval UART Error Code
2085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
ARM GAS /tmp/cc7An1gz.s page 56
2086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart)
2087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return huart->ErrorCode;
2089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @}
2092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @}
2096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /** @defgroup UART_Private_Functions UART Private Functions
2099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @{
2100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Configure the UART peripheral.
2104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
2105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
2106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart)
2108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t tmpreg = 0x00000000U;
2110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_ClockSourceTypeDef clocksource = UART_CLOCKSOURCE_UNDEFINED;
2111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t brrtemp = 0x0000U;
2112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t usartdiv = 0x0000U;
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef ret = HAL_OK;
2114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the parameters */
2116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate));
2117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength));
2118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(UART_INSTANCE_LOWPOWER(huart))
2119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits));
2121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_STOPBITS(huart->Init.StopBits));
2125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling));
2126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_PARITY(huart->Init.Parity));
2129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode));
2130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl));
2131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling));
2132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/
2135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear M, PCE, PS, TE, RE and OVER8 bits and configure
2136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * the UART Word Length, Parity, Mode and oversampling:
2137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * set the M bits according to huart->Init.WordLength value
2138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * set PCE and PS bits according to huart->Init.Parity value
2139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * set TE and RE bits according to huart->Init.Mode value
2140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * set OVER8 bit according to huart->Init.OverSampling value */
2141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.O
2142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, UART_CR1_FIELDS, tmpreg);
ARM GAS /tmp/cc7An1gz.s page 57
2143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /*-------------------------- USART CR2 Configuration -----------------------*/
2145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Configure the UART Stop Bits: Set STOP[13:12] bits according
2146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * to huart->Init.StopBits value */
2147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits);
2148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /*-------------------------- USART CR3 Configuration -----------------------*/
2150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Configure
2151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - UART HardWare Flow Control: set CTSE and RTSE bits according
2152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * to huart->Init.HwFlowCtl value
2153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * - one-bit sampling method versus three samples' majority rule according
2154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * to huart->Init.OneBitSampling (not applicable to LPUART) */
2155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.HwFlowCtl;
2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (!(UART_INSTANCE_LOWPOWER(huart)))
2157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg |= huart->Init.OneBitSampling;
2159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE | USART_CR3_ONEBIT), tmpreg);
2161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /*-------------------------- USART BRR Configuration -----------------------*/
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_GETCLOCKSOURCE(huart, clocksource);
2164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
2165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check LPUART instance */
2167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(UART_INSTANCE_LOWPOWER(huart))
2168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Retrieve frequency clock */
2170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg = 0;
2171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** switch (clocksource)
2173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK1:
2175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg = HAL_RCC_GetPCLK1Freq();
2176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI:
2178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIDIV) != 0U)
2179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg = (uint32_t) (HSI_VALUE >> 2U);
2181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg = (uint32_t) HSI_VALUE;
2185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_SYSCLK:
2188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg = HAL_RCC_GetSysClockFreq();
2189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE:
2191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg = (uint32_t) LSE_VALUE;
2192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_UNDEFINED:
2194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** default:
2195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ret = HAL_ERROR;
2196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if proper clock source reported */
ARM GAS /tmp/cc7An1gz.s page 58
2200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (tmpreg != 0)
2201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* ensure that Frequency clock is in the range [3 * baudrate, 4096 * baudrate] */
2203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ( (tmpreg < (3 * huart->Init.BaudRate) ) ||
2204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (tmpreg > (4096 * huart->Init.BaudRate) ))
2205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ret = HAL_ERROR;
2207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmpreg = (uint32_t)(UART_DIV_LPUART(tmpreg, huart->Init.BaudRate));
2211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((tmpreg >= UART_LPUART_BRR_MIN) && (tmpreg <= UART_LPUART_BRR_MAX))
2213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->BRR = tmpreg;
2215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ret = HAL_ERROR;
2219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** } /* if ( (tmpreg < (3 * huart->Init.BaudRate) ) || (tmpreg > (4096 * huart->Init.BaudRate
2221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** } /* if (tmpreg != 0) */
2222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check UART Over Sampling to set Baud Rate Register */
2224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else if (huart->Init.OverSampling == UART_OVERSAMPLING_8)
2225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** switch (clocksource)
2227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK1:
2229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** usartdiv = (uint16_t)(UART_DIV_SAMPLING8(frequency, huart->Init.BaudRate));
2230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2:
2232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate));
2233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI:
2235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIDIV) != 0U)
2236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** usartdiv = (uint16_t)(UART_DIV_SAMPLING8((HSI_VALUE >> 2U), huart->Init.BaudRate));
2238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HSI_VALUE, huart->Init.BaudRate));
2242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_SYSCLK:
2245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetSysClockFreq(), huart->Init.BaudRate));
2246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE:
2248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** usartdiv = (uint16_t)(UART_DIV_SAMPLING8(LSE_VALUE, huart->Init.BaudRate));
2249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_UNDEFINED:
2251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** default:
2252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ret = HAL_ERROR;
2253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** brrtemp = usartdiv & 0xFFF0U;
ARM GAS /tmp/cc7An1gz.s page 59
2257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** brrtemp |= (uint16_t)((uint16_t)(usartdiv & (uint16_t)0x000FU) >> (uint16_t)1U);
2258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->BRR = brrtemp;
2259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** switch (clocksource)
2263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK1:
2265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->BRR = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.Bau
2266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2:
2268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->BRR = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.Bau
2269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI:
2271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIDIV) != 0U)
2272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->BRR = (uint16_t)(UART_DIV_SAMPLING16((HSI_VALUE >> 2U), huart->Init.BaudRa
2274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->BRR = (uint16_t)(UART_DIV_SAMPLING16(HSI_VALUE, huart->Init.BaudRate));
2278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_SYSCLK:
2281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->BRR = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetSysClockFreq(), huart->Init.
2282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE:
2284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->BRR = (uint16_t)(UART_DIV_SAMPLING16(LSE_VALUE, huart->Init.BaudRate));
2285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_UNDEFINED:
2287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** default:
2288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** ret = HAL_ERROR;
2289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
2290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return ret;
2294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Configure the UART peripheral advanced features.
2299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart: UART handle.
2300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** void UART_AdvFeatureConfig(UART_HandleTypeDef *huart)
2303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check whether the set of advanced features to configure is properly set */
2305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit));
2306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if required, configure TX pin active level inversion */
2308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT))
2309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert));
2311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert);
2312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 60
2314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if required, configure RX pin active level inversion */
2315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT))
2316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert));
2318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert);
2319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if required, configure data inversion */
2322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT))
2323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert));
2325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert);
2326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if required, configure RX/TX pins swap */
2329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT))
2330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap));
2332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap);
2333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if required, configure RX overrun detection disabling */
2336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT))
2337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable));
2339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable);
2340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if required, configure DMA disabling on reception error */
2343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT))
2344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError));
2346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError);
2347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if required, configure auto Baud rate detection scheme */
2350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT))
2351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance));
2353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable));
2354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable);
2355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* set auto Baudrate detection parameters if detection is enabled */
2356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE)
2357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode));
2359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode);
2360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* if required, configure MSB first on communication line */
2364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT))
2365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst));
2367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst);
2368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 61
2371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Check the UART Idle State.
2373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
2374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
2375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart)
2377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t tickstart = 0;
2379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Initialize the UART ErrorCode */
2381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
2382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Init tickstart for timeout managment*/
2384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tickstart = HAL_GetTick();
2385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check if the Transmitter is enabled */
2387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE)
2388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Wait until TEACK flag is set */
2390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE
2391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Timeout occurred */
2393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_TIMEOUT;
2394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check if the Receiver is enabled */
2397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE)
2398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Wait until REACK flag is set */
2400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE
2401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Timeout occurred */
2403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_TIMEOUT;
2404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Initialize the UART State */
2408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
2409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
2412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
2413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
2415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Handle UART Communication Timeout.
2419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
2420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Flag Specifies the UART flag to check
2421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Status Flag status (SET or RESET)
2422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Tickstart Tick start value
2423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param Timeout Timeout duration
2424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
2425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus
2427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
ARM GAS /tmp/cc7An1gz.s page 62
2428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Wait until flag is set */
2429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** while((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
2430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check for the Timeout */
2432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(Timeout != HAL_MAX_DELAY)
2433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if((Timeout == 0) || ((HAL_GetTick()-Tickstart) > Timeout))
2435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for t
2437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
2438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
2439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
2441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
2444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UNLOCK(huart);
2445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_TIMEOUT;
2446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
2450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit compl
2455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
2456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart)
2459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
2461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
1012 .loc 1 2461 0
1013 0032 2268 ldr r2, [r4]
1014 0034 1368 ldr r3, [r2]
1015 0036 C021 movs r1, #192
1016 0038 8B43 bics r3, r1
1017 003a 1360 str r3, [r2]
2462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */
2464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
1018 .loc 1 2464 0
1019 003c 6923 movs r3, #105
1020 003e 2022 movs r2, #32
1021 0040 E254 strb r2, [r4, r3]
1022 0042 E3E7 b .L73
1023 .LVL81:
1024 .L78:
1025 .LBE15:
1026 .LBE14:
1186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1027 .loc 1 1186 0 discriminator 1
1028 0044 2368 ldr r3, [r4]
1029 0046 9A68 ldr r2, [r3, #8]
1185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)))
ARM GAS /tmp/cc7An1gz.s page 63
1030 .loc 1 1185 0 discriminator 1
1031 0048 5206 lsls r2, r2, #25
1032 004a E3D5 bpl .L75
1188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1033 .loc 1 1188 0
1034 004c 9A68 ldr r2, [r3, #8]
1035 004e 4021 movs r1, #64
1036 0050 8A43 bics r2, r1
1037 0052 9A60 str r2, [r3, #8]
1191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1038 .loc 1 1191 0
1039 0054 606E ldr r0, [r4, #100]
1040 0056 0028 cmp r0, #0
1041 0058 01D0 beq .L76
1193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1042 .loc 1 1193 0
1043 005a FFF7FEFF bl HAL_DMA_Abort
1044 .LVL82:
1045 .L76:
1046 .LBB16:
1047 .LBB17:
2465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception comp
2470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
2471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart)
2474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
2476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
1048 .loc 1 2476 0
1049 005e 2268 ldr r2, [r4]
1050 0060 1368 ldr r3, [r2]
1051 0062 0649 ldr r1, .L79
1052 0064 0B40 ands r3, r1
1053 0066 1360 str r3, [r2]
2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1054 .loc 1 2477 0
1055 0068 2268 ldr r2, [r4]
1056 006a 9368 ldr r3, [r2, #8]
1057 006c 2331 adds r1, r1, #35
1058 006e FF31 adds r1, r1, #255
1059 0070 8B43 bics r3, r1
1060 0072 9360 str r3, [r2, #8]
2478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */
2480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
1061 .loc 1 2480 0
1062 0074 6A23 movs r3, #106
1063 0076 2022 movs r2, #32
1064 0078 E254 strb r2, [r4, r3]
1065 007a CBE7 b .L75
1066 .L80:
1067 .align 2
ARM GAS /tmp/cc7An1gz.s page 64
1068 .L79:
1069 007c DFFEFFFF .word -289
1070 .LBE17:
1071 .LBE16:
1072 .cfi_endproc
1073 .LFE54:
1075 .section .text.HAL_UART_Abort,"ax",%progbits
1076 .align 1
1077 .global HAL_UART_Abort
1078 .syntax unified
1079 .code 16
1080 .thumb_func
1081 .fpu softvfp
1083 HAL_UART_Abort:
1084 .LFB55:
1215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
1085 .loc 1 1215 0
1086 .cfi_startproc
1087 @ args = 0, pretend = 0, frame = 0
1088 @ frame_needed = 0, uses_anonymous_args = 0
1089 .LVL83:
1090 0000 10B5 push {r4, lr}
1091 .LCFI6:
1092 .cfi_def_cfa_offset 8
1093 .cfi_offset 4, -8
1094 .cfi_offset 14, -4
1095 0002 0400 movs r4, r0
1217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1096 .loc 1 1217 0
1097 0004 0268 ldr r2, [r0]
1098 0006 1368 ldr r3, [r2]
1099 0008 1C49 ldr r1, .L84
1100 000a 0B40 ands r3, r1
1101 000c 1360 str r3, [r2]
1218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1102 .loc 1 1218 0
1103 000e 0268 ldr r2, [r0]
1104 0010 9368 ldr r3, [r2, #8]
1105 0012 E331 adds r1, r1, #227
1106 0014 FF31 adds r1, r1, #255
1107 0016 8B43 bics r3, r1
1108 0018 9360 str r3, [r2, #8]
1221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1109 .loc 1 1221 0
1110 001a 0368 ldr r3, [r0]
1111 001c 9A68 ldr r2, [r3, #8]
1112 001e 1206 lsls r2, r2, #24
1113 0020 0BD5 bpl .L82
1223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1114 .loc 1 1223 0
1115 0022 9A68 ldr r2, [r3, #8]
1116 0024 7F31 adds r1, r1, #127
1117 0026 8A43 bics r2, r1
1118 0028 9A60 str r2, [r3, #8]
1226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1119 .loc 1 1226 0
1120 002a 036E ldr r3, [r0, #96]
ARM GAS /tmp/cc7An1gz.s page 65
1121 002c 002B cmp r3, #0
1122 002e 04D0 beq .L82
1230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1123 .loc 1 1230 0
1124 0030 0022 movs r2, #0
1125 0032 9A63 str r2, [r3, #56]
1232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1126 .loc 1 1232 0
1127 0034 006E ldr r0, [r0, #96]
1128 .LVL84:
1129 0036 FFF7FEFF bl HAL_DMA_Abort
1130 .LVL85:
1131 .L82:
1237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1132 .loc 1 1237 0
1133 003a 2368 ldr r3, [r4]
1134 003c 9A68 ldr r2, [r3, #8]
1135 003e 5206 lsls r2, r2, #25
1136 0040 0BD5 bpl .L83
1239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1137 .loc 1 1239 0
1138 0042 9A68 ldr r2, [r3, #8]
1139 0044 4021 movs r1, #64
1140 0046 8A43 bics r2, r1
1141 0048 9A60 str r2, [r3, #8]
1242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1142 .loc 1 1242 0
1143 004a 636E ldr r3, [r4, #100]
1144 004c 002B cmp r3, #0
1145 004e 04D0 beq .L83
1246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1146 .loc 1 1246 0
1147 0050 0022 movs r2, #0
1148 0052 9A63 str r2, [r3, #56]
1248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1149 .loc 1 1248 0
1150 0054 606E ldr r0, [r4, #100]
1151 0056 FFF7FEFF bl HAL_DMA_Abort
1152 .LVL86:
1153 .L83:
1253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
1154 .loc 1 1253 0
1155 005a 0023 movs r3, #0
1156 005c 5222 movs r2, #82
1157 005e A352 strh r3, [r4, r2]
1254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1158 .loc 1 1254 0
1159 0060 0832 adds r2, r2, #8
1160 0062 A352 strh r3, [r4, r2]
1257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1161 .loc 1 1257 0
1162 0064 2268 ldr r2, [r4]
1163 0066 0F21 movs r1, #15
1164 0068 1162 str r1, [r2, #32]
1260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
1165 .loc 1 1260 0
1166 006a 2022 movs r2, #32
ARM GAS /tmp/cc7An1gz.s page 66
1167 006c 5A31 adds r1, r1, #90
1168 006e 6254 strb r2, [r4, r1]
1261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1169 .loc 1 1261 0
1170 0070 0131 adds r1, r1, #1
1171 0072 6254 strb r2, [r4, r1]
1264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1172 .loc 1 1264 0
1173 0074 E366 str r3, [r4, #108]
1267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1174 .loc 1 1267 0
1175 0076 0020 movs r0, #0
1176 @ sp needed
1177 .LVL87:
1178 0078 10BD pop {r4, pc}
1179 .L85:
1180 007a C046 .align 2
1181 .L84:
1182 007c 1FFEFFFF .word -481
1183 .cfi_endproc
1184 .LFE55:
1186 .section .text.HAL_UART_AbortTransmit,"ax",%progbits
1187 .align 1
1188 .global HAL_UART_AbortTransmit
1189 .syntax unified
1190 .code 16
1191 .thumb_func
1192 .fpu softvfp
1194 HAL_UART_AbortTransmit:
1195 .LFB56:
1282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
1196 .loc 1 1282 0
1197 .cfi_startproc
1198 @ args = 0, pretend = 0, frame = 0
1199 @ frame_needed = 0, uses_anonymous_args = 0
1200 .LVL88:
1201 0000 10B5 push {r4, lr}
1202 .LCFI7:
1203 .cfi_def_cfa_offset 8
1204 .cfi_offset 4, -8
1205 .cfi_offset 14, -4
1206 0002 0400 movs r4, r0
1284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1207 .loc 1 1284 0
1208 0004 0268 ldr r2, [r0]
1209 0006 1368 ldr r3, [r2]
1210 0008 C021 movs r1, #192
1211 000a 8B43 bics r3, r1
1212 000c 1360 str r3, [r2]
1287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1213 .loc 1 1287 0
1214 000e 0368 ldr r3, [r0]
1215 0010 9A68 ldr r2, [r3, #8]
1216 0012 1206 lsls r2, r2, #24
1217 0014 0BD5 bpl .L87
1289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1218 .loc 1 1289 0
ARM GAS /tmp/cc7An1gz.s page 67
1219 0016 9A68 ldr r2, [r3, #8]
1220 0018 4039 subs r1, r1, #64
1221 001a 8A43 bics r2, r1
1222 001c 9A60 str r2, [r3, #8]
1292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1223 .loc 1 1292 0
1224 001e 036E ldr r3, [r0, #96]
1225 0020 002B cmp r3, #0
1226 0022 04D0 beq .L87
1296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1227 .loc 1 1296 0
1228 0024 0022 movs r2, #0
1229 0026 9A63 str r2, [r3, #56]
1298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1230 .loc 1 1298 0
1231 0028 006E ldr r0, [r0, #96]
1232 .LVL89:
1233 002a FFF7FEFF bl HAL_DMA_Abort
1234 .LVL90:
1235 .L87:
1303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1236 .loc 1 1303 0
1237 002e 5223 movs r3, #82
1238 0030 0022 movs r2, #0
1239 0032 E252 strh r2, [r4, r3]
1306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1240 .loc 1 1306 0
1241 0034 1733 adds r3, r3, #23
1242 0036 2032 adds r2, r2, #32
1243 0038 E254 strb r2, [r4, r3]
1309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1244 .loc 1 1309 0
1245 003a 0020 movs r0, #0
1246 @ sp needed
1247 .LVL91:
1248 003c 10BD pop {r4, pc}
1249 .cfi_endproc
1250 .LFE56:
1252 .section .text.HAL_UART_AbortReceive,"ax",%progbits
1253 .align 1
1254 .global HAL_UART_AbortReceive
1255 .syntax unified
1256 .code 16
1257 .thumb_func
1258 .fpu softvfp
1260 HAL_UART_AbortReceive:
1261 .LFB57:
1324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
1262 .loc 1 1324 0
1263 .cfi_startproc
1264 @ args = 0, pretend = 0, frame = 0
1265 @ frame_needed = 0, uses_anonymous_args = 0
1266 .LVL92:
1267 0000 10B5 push {r4, lr}
1268 .LCFI8:
1269 .cfi_def_cfa_offset 8
1270 .cfi_offset 4, -8
ARM GAS /tmp/cc7An1gz.s page 68
1271 .cfi_offset 14, -4
1272 0002 0400 movs r4, r0
1326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1273 .loc 1 1326 0
1274 0004 0268 ldr r2, [r0]
1275 0006 1368 ldr r3, [r2]
1276 0008 1149 ldr r1, .L90
1277 000a 0B40 ands r3, r1
1278 000c 1360 str r3, [r2]
1327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1279 .loc 1 1327 0
1280 000e 0268 ldr r2, [r0]
1281 0010 9368 ldr r3, [r2, #8]
1282 0012 2331 adds r1, r1, #35
1283 0014 FF31 adds r1, r1, #255
1284 0016 8B43 bics r3, r1
1285 0018 9360 str r3, [r2, #8]
1330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1286 .loc 1 1330 0
1287 001a 0368 ldr r3, [r0]
1288 001c 9A68 ldr r2, [r3, #8]
1289 001e 5206 lsls r2, r2, #25
1290 0020 0BD5 bpl .L89
1332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1291 .loc 1 1332 0
1292 0022 9A68 ldr r2, [r3, #8]
1293 0024 3F31 adds r1, r1, #63
1294 0026 8A43 bics r2, r1
1295 0028 9A60 str r2, [r3, #8]
1335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1296 .loc 1 1335 0
1297 002a 436E ldr r3, [r0, #100]
1298 002c 002B cmp r3, #0
1299 002e 04D0 beq .L89
1339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1300 .loc 1 1339 0
1301 0030 0022 movs r2, #0
1302 0032 9A63 str r2, [r3, #56]
1341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1303 .loc 1 1341 0
1304 0034 406E ldr r0, [r0, #100]
1305 .LVL93:
1306 0036 FFF7FEFF bl HAL_DMA_Abort
1307 .LVL94:
1308 .L89:
1346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1309 .loc 1 1346 0
1310 003a 5A23 movs r3, #90
1311 003c 0022 movs r2, #0
1312 003e E252 strh r2, [r4, r3]
1349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1313 .loc 1 1349 0
1314 0040 2368 ldr r3, [r4]
1315 0042 0F32 adds r2, r2, #15
1316 0044 1A62 str r2, [r3, #32]
1352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1317 .loc 1 1352 0
ARM GAS /tmp/cc7An1gz.s page 69
1318 0046 6A23 movs r3, #106
1319 0048 1132 adds r2, r2, #17
1320 004a E254 strb r2, [r4, r3]
1355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1321 .loc 1 1355 0
1322 004c 0020 movs r0, #0
1323 @ sp needed
1324 .LVL95:
1325 004e 10BD pop {r4, pc}
1326 .L91:
1327 .align 2
1328 .L90:
1329 0050 DFFEFFFF .word -289
1330 .cfi_endproc
1331 .LFE57:
1333 .section .text.HAL_UART_TxCpltCallback,"ax",%progbits
1334 .align 1
1335 .weak HAL_UART_TxCpltCallback
1336 .syntax unified
1337 .code 16
1338 .thumb_func
1339 .fpu softvfp
1341 HAL_UART_TxCpltCallback:
1342 .LFB62:
1777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1343 .loc 1 1777 0
1344 .cfi_startproc
1345 @ args = 0, pretend = 0, frame = 0
1346 @ frame_needed = 0, uses_anonymous_args = 0
1347 @ link register save eliminated.
1348 .LVL96:
1784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1349 .loc 1 1784 0
1350 @ sp needed
1351 0000 7047 bx lr
1352 .cfi_endproc
1353 .LFE62:
1355 .section .text.UART_DMATransmitCplt,"ax",%progbits
1356 .align 1
1357 .syntax unified
1358 .code 16
1359 .thumb_func
1360 .fpu softvfp
1362 UART_DMATransmitCplt:
1363 .LFB84:
2481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART transmit process complete callback.
2486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma)
2490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1364 .loc 1 2490 0
1365 .cfi_startproc
ARM GAS /tmp/cc7An1gz.s page 70
1366 @ args = 0, pretend = 0, frame = 0
1367 @ frame_needed = 0, uses_anonymous_args = 0
1368 .LVL97:
1369 0000 10B5 push {r4, lr}
1370 .LCFI9:
1371 .cfi_def_cfa_offset 8
1372 .cfi_offset 4, -8
1373 .cfi_offset 14, -4
2491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
1374 .loc 1 2491 0
1375 0002 836A ldr r3, [r0, #40]
1376 .LVL98:
2492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* DMA Normal mode */
2494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ( HAL_IS_BIT_CLR(hdma->Instance->CCR, DMA_CCR_CIRC) )
1377 .loc 1 2494 0
1378 0004 0268 ldr r2, [r0]
1379 0006 1268 ldr r2, [r2]
1380 0008 9206 lsls r2, r2, #26
1381 000a 0DD4 bmi .L94
2495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0U;
1382 .loc 1 2496 0
1383 000c 5222 movs r2, #82
1384 000e 0021 movs r1, #0
1385 0010 9952 strh r1, [r3, r2]
2497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the DMA transfer for transmit request by resetting the DMAT bit
2499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** in the UART CR3 register */
2500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
1386 .loc 1 2500 0
1387 0012 1968 ldr r1, [r3]
1388 0014 8A68 ldr r2, [r1, #8]
1389 0016 8020 movs r0, #128
1390 .LVL99:
1391 0018 8243 bics r2, r0
1392 001a 8A60 str r2, [r1, #8]
2501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */
2503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
1393 .loc 1 2503 0
1394 001c 1A68 ldr r2, [r3]
1395 001e 1368 ldr r3, [r2]
1396 .LVL100:
1397 0020 4021 movs r1, #64
1398 0022 0B43 orrs r3, r1
1399 0024 1360 str r3, [r2]
1400 .L93:
2504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* DMA Circular mode */
2506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart);
2509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1401 .loc 1 2511 0
ARM GAS /tmp/cc7An1gz.s page 71
1402 @ sp needed
1403 0026 10BD pop {r4, pc}
1404 .LVL101:
1405 .L94:
2508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1406 .loc 1 2508 0
1407 0028 1800 movs r0, r3
1408 .LVL102:
1409 002a FFF7FEFF bl HAL_UART_TxCpltCallback
1410 .LVL103:
1411 .loc 1 2511 0
1412 002e FAE7 b .L93
1413 .cfi_endproc
1414 .LFE84:
1416 .section .text.HAL_UART_TxHalfCpltCallback,"ax",%progbits
1417 .align 1
1418 .weak HAL_UART_TxHalfCpltCallback
1419 .syntax unified
1420 .code 16
1421 .thumb_func
1422 .fpu softvfp
1424 HAL_UART_TxHalfCpltCallback:
1425 .LFB63:
1792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1426 .loc 1 1792 0
1427 .cfi_startproc
1428 @ args = 0, pretend = 0, frame = 0
1429 @ frame_needed = 0, uses_anonymous_args = 0
1430 @ link register save eliminated.
1431 .LVL104:
1799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1432 .loc 1 1799 0
1433 @ sp needed
1434 0000 7047 bx lr
1435 .cfi_endproc
1436 .LFE63:
1438 .section .text.UART_DMATxHalfCplt,"ax",%progbits
1439 .align 1
1440 .syntax unified
1441 .code 16
1442 .thumb_func
1443 .fpu softvfp
1445 UART_DMATxHalfCplt:
1446 .LFB85:
2512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART transmit process half complete callback.
2515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma)
2519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1447 .loc 1 2519 0
1448 .cfi_startproc
1449 @ args = 0, pretend = 0, frame = 0
1450 @ frame_needed = 0, uses_anonymous_args = 0
1451 .LVL105:
ARM GAS /tmp/cc7An1gz.s page 72
1452 0000 10B5 push {r4, lr}
1453 .LCFI10:
1454 .cfi_def_cfa_offset 8
1455 .cfi_offset 4, -8
1456 .cfi_offset 14, -4
2520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
1457 .loc 1 2520 0
1458 0002 806A ldr r0, [r0, #40]
1459 .LVL106:
2521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback(huart);
1460 .loc 1 2522 0
1461 0004 FFF7FEFF bl HAL_UART_TxHalfCpltCallback
1462 .LVL107:
2523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1463 .loc 1 2523 0
1464 @ sp needed
1465 0008 10BD pop {r4, pc}
1466 .cfi_endproc
1467 .LFE85:
1469 .section .text.HAL_UART_RxCpltCallback,"ax",%progbits
1470 .align 1
1471 .weak HAL_UART_RxCpltCallback
1472 .syntax unified
1473 .code 16
1474 .thumb_func
1475 .fpu softvfp
1477 HAL_UART_RxCpltCallback:
1478 .LFB64:
1807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1479 .loc 1 1807 0
1480 .cfi_startproc
1481 @ args = 0, pretend = 0, frame = 0
1482 @ frame_needed = 0, uses_anonymous_args = 0
1483 @ link register save eliminated.
1484 .LVL108:
1814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1485 .loc 1 1814 0
1486 @ sp needed
1487 0000 7047 bx lr
1488 .cfi_endproc
1489 .LFE64:
1491 .section .text.UART_DMAReceiveCplt,"ax",%progbits
1492 .align 1
1493 .syntax unified
1494 .code 16
1495 .thumb_func
1496 .fpu softvfp
1498 UART_DMAReceiveCplt:
1499 .LFB86:
2524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART receive process complete callback.
2527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
ARM GAS /tmp/cc7An1gz.s page 73
2531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1500 .loc 1 2531 0
1501 .cfi_startproc
1502 @ args = 0, pretend = 0, frame = 0
1503 @ frame_needed = 0, uses_anonymous_args = 0
1504 .LVL109:
1505 0000 10B5 push {r4, lr}
1506 .LCFI11:
1507 .cfi_def_cfa_offset 8
1508 .cfi_offset 4, -8
1509 .cfi_offset 14, -4
2532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
1510 .loc 1 2532 0
1511 0002 836A ldr r3, [r0, #40]
1512 .LVL110:
2533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* DMA Normal mode */
2535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ( HAL_IS_BIT_CLR(hdma->Instance->CCR, DMA_CCR_CIRC) )
1513 .loc 1 2535 0
1514 0004 0268 ldr r2, [r0]
1515 0006 1268 ldr r2, [r2]
1516 0008 9206 lsls r2, r2, #26
1517 000a 15D4 bmi .L100
2536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0U;
1518 .loc 1 2537 0
1519 000c 5A22 movs r2, #90
1520 000e 0021 movs r1, #0
1521 0010 9952 strh r1, [r3, r2]
2538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */
2540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
1522 .loc 1 2540 0
1523 0012 1968 ldr r1, [r3]
1524 0014 0A68 ldr r2, [r1]
1525 0016 0A48 ldr r0, .L101
1526 .LVL111:
1527 0018 0240 ands r2, r0
1528 001a 0A60 str r2, [r1]
2541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1529 .loc 1 2541 0
1530 001c 1968 ldr r1, [r3]
1531 001e 8A68 ldr r2, [r1, #8]
1532 0020 0330 adds r0, r0, #3
1533 0022 FF30 adds r0, r0, #255
1534 0024 8243 bics r2, r0
1535 0026 8A60 str r2, [r1, #8]
2542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by resetting the DMAR bit
2544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** in the UART CR3 register */
2545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
1536 .loc 1 2545 0
1537 0028 1968 ldr r1, [r3]
1538 002a 8A68 ldr r2, [r1, #8]
1539 002c 3F30 adds r0, r0, #63
1540 002e 8243 bics r2, r0
1541 0030 8A60 str r2, [r1, #8]
ARM GAS /tmp/cc7An1gz.s page 74
2546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */
2548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
1542 .loc 1 2548 0
1543 0032 6A22 movs r2, #106
1544 0034 2021 movs r1, #32
1545 0036 9954 strb r1, [r3, r2]
1546 .L100:
2549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart);
1547 .loc 1 2551 0
1548 0038 1800 movs r0, r3
1549 003a FFF7FEFF bl HAL_UART_RxCpltCallback
1550 .LVL112:
2552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1551 .loc 1 2552 0
1552 @ sp needed
1553 003e 10BD pop {r4, pc}
1554 .L102:
1555 .align 2
1556 .L101:
1557 0040 FFFEFFFF .word -257
1558 .cfi_endproc
1559 .LFE86:
1561 .section .text.UART_Receive_IT,"ax",%progbits
1562 .align 1
1563 .syntax unified
1564 .code 16
1565 .thumb_func
1566 .fpu softvfp
1568 UART_Receive_IT:
1569 .LFB96:
2553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART receive process half complete callback.
2556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma)
2560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
2562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_RxHalfCpltCallback(huart);
2564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART communication error callback.
2568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma)
2572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
2574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */
2576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ( (huart->gState == HAL_UART_STATE_BUSY_TX)
ARM GAS /tmp/cc7An1gz.s page 75
2577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** &&(HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) )
2578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
2580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_EndTxTransfer(huart);
2581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */
2584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ( (huart->RxState == HAL_UART_STATE_BUSY_RX)
2585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** &&(HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) )
2586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
2588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_EndRxTransfer(huart);
2589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_DMA;
2592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
2593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART communication abort callback, when initiated by HAL services on Error
2597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (To be called at end of DMA Abort procedure following error occurrence).
2598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma)
2602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
2604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
2605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
2606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
2608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user
2612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (To be called at end of DMA Tx Abort procedure following user abort request).
2613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no
2614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * Abort still ongoing for Rx DMA Handle.
2615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
2619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef* )(hdma->Parent);
2621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL;
2623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check if an Abort process is still ongoing */
2625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmarx != NULL)
2626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmarx->XferAbortCallback != NULL)
2628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return;
2630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba
ARM GAS /tmp/cc7An1gz.s page 76
2634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
2635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
2636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset errorCode */
2638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
2639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the Error flags in the ICR register */
2641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
2642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */
2644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
2645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call user Abort complete callback */
2648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart);
2649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user
2654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (To be called at end of DMA Rx Abort procedure following user abort request).
2655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no
2656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * Abort still ongoing for Tx DMA Handle.
2657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
2661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef* )(hdma->Parent);
2663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL;
2665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check if an Abort process is still ongoing */
2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmatx != NULL)
2668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->hdmatx->XferAbortCallback != NULL)
2670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return;
2672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba
2676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
2677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
2678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Reset errorCode */
2680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
2681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the Error flags in the ICR register */
2683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
2684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */
2686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
2687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call user Abort complete callback */
2690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart);
ARM GAS /tmp/cc7An1gz.s page 77
2691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user by a call to
2696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * HAL_UART_AbortTransmit_IT API (Abort only Tx transfer)
2697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (This callback is executed at end of DMA Tx Abort procedure following user abort reques
2698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * and leads to user Tx Abort Complete callback execution).
2699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
2703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
2705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
2707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->gState to Ready */
2709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
2710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call user Abort complete callback */
2712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart);
2713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user by a call to
2717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * HAL_UART_AbortReceive_IT API (Abort only Rx transfer)
2718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * (This callback is executed at end of DMA Rx Abort procedure following user abort reques
2719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * and leads to user Rx Abort Complete callback execution).
2720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param hdma DMA handle.
2721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval None
2722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
2724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = ( UART_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
2726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
2728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear the Error flags in the ICR register */
2730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
2731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Restore huart->RxState to Ready */
2733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Call user Abort complete callback */
2736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart);
2737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Send an amount of data in interrupt mode.
2741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note Function is called under interruption only, once
2742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Transmit_IT().
2743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
2744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
2745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart)
2747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
ARM GAS /tmp/cc7An1gz.s page 78
2748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t* tmp;
2749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check that a Tx process is ongoing */
2751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX)
2752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->TxXferCount == 0U)
2754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART Transmit Data Register Empty Interrupt */
2756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
2757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */
2759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
2760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
2762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE
2766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmp = (uint16_t*) huart->pTxBuffPtr;
2768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->TDR = (*tmp & (uint16_t)0x01FFU);
2769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->pTxBuffPtr += 2U;
2770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0xFFU);
2774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount--;
2776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
2778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_BUSY;
2783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Wrap up transmission in non-blocking mode.
2788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart pointer to a UART_HandleTypeDef structure that contains
2789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * the configuration information for the specified UART module.
2790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
2791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart)
2793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */
2795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE);
2796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Tx process is ended, restore huart->gState to Ready */
2798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY;
2799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart);
2801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
2803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 79
2805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
2806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @brief Receive an amount of data in interrupt mode.
2807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @note Function is called under interruption only, once
2808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * interruptions have been enabled by HAL_UART_Receive_IT()
2809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @param huart UART handle.
2810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** * @retval HAL status
2811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** */
2812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart)
2813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1570 .loc 1 2813 0
1571 .cfi_startproc
1572 @ args = 0, pretend = 0, frame = 0
1573 @ frame_needed = 0, uses_anonymous_args = 0
1574 .LVL113:
1575 0000 70B5 push {r4, r5, r6, lr}
1576 .LCFI12:
1577 .cfi_def_cfa_offset 16
1578 .cfi_offset 4, -16
1579 .cfi_offset 5, -12
1580 .cfi_offset 6, -8
1581 .cfi_offset 14, -4
2814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t* tmp;
2815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t uhMask = huart->Mask;
1582 .loc 1 2815 0
1583 0002 5C23 movs r3, #92
1584 0004 C35A ldrh r3, [r0, r3]
1585 .LVL114:
2816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t uhdata;
2817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check that a Rx process is ongoing */
2819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(huart->RxState == HAL_UART_STATE_BUSY_RX)
1586 .loc 1 2819 0
1587 0006 6A22 movs r2, #106
1588 0008 825C ldrb r2, [r0, r2]
1589 000a 222A cmp r2, #34
1590 000c 32D1 bne .L104
2820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhdata = (uint16_t) READ_REG(huart->Instance->RDR);
1591 .loc 1 2821 0
1592 000e 0268 ldr r2, [r0]
1593 0010 526A ldr r2, [r2, #36]
1594 0012 94B2 uxth r4, r2
1595 .LVL115:
2822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
1596 .loc 1 2822 0
1597 0014 8021 movs r1, #128
1598 0016 4901 lsls r1, r1, #5
1599 0018 8568 ldr r5, [r0, #8]
1600 001a 8D42 cmp r5, r1
1601 001c 0ED0 beq .L109
1602 .L105:
2823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** tmp = (uint16_t*) huart->pRxBuffPtr ;
2825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *tmp = (uint16_t)(uhdata & uhMask);
2826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->pRxBuffPtr +=2;
2827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
ARM GAS /tmp/cc7An1gz.s page 80
2829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** *huart->pRxBuffPtr++ = (uint8_t)(uhdata & (uint8_t)uhMask);
1603 .loc 1 2830 0
1604 001e DBB2 uxtb r3, r3
1605 .LVL116:
1606 0020 416D ldr r1, [r0, #84]
1607 0022 4C1C adds r4, r1, #1
1608 .LVL117:
1609 0024 4465 str r4, [r0, #84]
1610 .LVL118:
1611 0026 1340 ands r3, r2
1612 0028 0B70 strb r3, [r1]
1613 .LVL119:
1614 .L106:
2831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(--huart->RxXferCount == 0U)
1615 .loc 1 2833 0
1616 002a 5A22 movs r2, #90
1617 002c 835A ldrh r3, [r0, r2]
1618 002e 013B subs r3, r3, #1
1619 0030 9BB2 uxth r3, r3
1620 0032 8352 strh r3, [r0, r2]
1621 0034 002B cmp r3, #0
1622 0036 0BD0 beq .L110
2834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXNE interrupt*/
2836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
2837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */
2839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
2840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */
2842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart);
2845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
2847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_OK;
1623 .loc 1 2849 0
1624 0038 0020 movs r0, #0
1625 .LVL120:
1626 003a 21E0 b .L107
1627 .LVL121:
1628 .L109:
2822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1629 .loc 1 2822 0 discriminator 1
1630 003c 0169 ldr r1, [r0, #16]
1631 003e 0029 cmp r1, #0
1632 0040 EDD1 bne .L105
1633 .LVL122:
2825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->pRxBuffPtr +=2;
1634 .loc 1 2825 0
1635 0042 2340 ands r3, r4
1636 .LVL123:
ARM GAS /tmp/cc7An1gz.s page 81
1637 0044 426D ldr r2, [r0, #84]
1638 0046 1380 strh r3, [r2]
1639 .LVL124:
2826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1640 .loc 1 2826 0
1641 0048 436D ldr r3, [r0, #84]
1642 004a 0233 adds r3, r3, #2
1643 004c 4365 str r3, [r0, #84]
1644 004e ECE7 b .L106
1645 .LVL125:
1646 .L110:
2836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1647 .loc 1 2836 0
1648 0050 0268 ldr r2, [r0]
1649 0052 1368 ldr r3, [r2]
1650 0054 0B49 ldr r1, .L111
1651 0056 0B40 ands r3, r1
1652 0058 1360 str r3, [r2]
2839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1653 .loc 1 2839 0
1654 005a 0268 ldr r2, [r0]
1655 005c 9368 ldr r3, [r2, #8]
1656 005e 2331 adds r1, r1, #35
1657 0060 FF31 adds r1, r1, #255
1658 0062 8B43 bics r3, r1
1659 0064 9360 str r3, [r2, #8]
2842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1660 .loc 1 2842 0
1661 0066 6A23 movs r3, #106
1662 0068 2022 movs r2, #32
1663 006a C254 strb r2, [r0, r3]
2844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1664 .loc 1 2844 0
1665 006c FFF7FEFF bl HAL_UART_RxCpltCallback
1666 .LVL126:
2846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1667 .loc 1 2846 0
1668 0070 0020 movs r0, #0
1669 0072 05E0 b .L107
1670 .LVL127:
1671 .L104:
2850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** else
2852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Clear RXNE interrupt flag */
2854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
1672 .loc 1 2854 0
1673 0074 0268 ldr r2, [r0]
1674 0076 9369 ldr r3, [r2, #24]
1675 .LVL128:
1676 0078 0821 movs r1, #8
1677 007a 0B43 orrs r3, r1
1678 007c 9361 str r3, [r2, #24]
1679 .LVL129:
2855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_BUSY;
1680 .loc 1 2856 0
ARM GAS /tmp/cc7An1gz.s page 82
1681 007e 0220 movs r0, #2
1682 .LVL130:
1683 .L107:
2857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1684 .loc 1 2858 0
1685 @ sp needed
1686 0080 70BD pop {r4, r5, r6, pc}
1687 .L112:
1688 0082 C046 .align 2
1689 .L111:
1690 0084 DFFEFFFF .word -289
1691 .cfi_endproc
1692 .LFE96:
1694 .section .text.HAL_UART_RxHalfCpltCallback,"ax",%progbits
1695 .align 1
1696 .weak HAL_UART_RxHalfCpltCallback
1697 .syntax unified
1698 .code 16
1699 .thumb_func
1700 .fpu softvfp
1702 HAL_UART_RxHalfCpltCallback:
1703 .LFB65:
1822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1704 .loc 1 1822 0
1705 .cfi_startproc
1706 @ args = 0, pretend = 0, frame = 0
1707 @ frame_needed = 0, uses_anonymous_args = 0
1708 @ link register save eliminated.
1709 .LVL131:
1829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1710 .loc 1 1829 0
1711 @ sp needed
1712 0000 7047 bx lr
1713 .cfi_endproc
1714 .LFE65:
1716 .section .text.UART_DMARxHalfCplt,"ax",%progbits
1717 .align 1
1718 .syntax unified
1719 .code 16
1720 .thumb_func
1721 .fpu softvfp
1723 UART_DMARxHalfCplt:
1724 .LFB87:
2560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
1725 .loc 1 2560 0
1726 .cfi_startproc
1727 @ args = 0, pretend = 0, frame = 0
1728 @ frame_needed = 0, uses_anonymous_args = 0
1729 .LVL132:
1730 0000 10B5 push {r4, lr}
1731 .LCFI13:
1732 .cfi_def_cfa_offset 8
1733 .cfi_offset 4, -8
1734 .cfi_offset 14, -4
2561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1735 .loc 1 2561 0
ARM GAS /tmp/cc7An1gz.s page 83
1736 0002 806A ldr r0, [r0, #40]
1737 .LVL133:
2563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1738 .loc 1 2563 0
1739 0004 FFF7FEFF bl HAL_UART_RxHalfCpltCallback
1740 .LVL134:
2564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1741 .loc 1 2564 0
1742 @ sp needed
1743 0008 10BD pop {r4, pc}
1744 .cfi_endproc
1745 .LFE87:
1747 .section .text.HAL_UART_ErrorCallback,"ax",%progbits
1748 .align 1
1749 .weak HAL_UART_ErrorCallback
1750 .syntax unified
1751 .code 16
1752 .thumb_func
1753 .fpu softvfp
1755 HAL_UART_ErrorCallback:
1756 .LFB66:
1837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
1757 .loc 1 1837 0
1758 .cfi_startproc
1759 @ args = 0, pretend = 0, frame = 0
1760 @ frame_needed = 0, uses_anonymous_args = 0
1761 @ link register save eliminated.
1762 .LVL135:
1844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1763 .loc 1 1844 0
1764 @ sp needed
1765 0000 7047 bx lr
1766 .cfi_endproc
1767 .LFE66:
1769 .section .text.UART_DMAError,"ax",%progbits
1770 .align 1
1771 .syntax unified
1772 .code 16
1773 .thumb_func
1774 .fpu softvfp
1776 UART_DMAError:
1777 .LFB88:
2572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
1778 .loc 1 2572 0
1779 .cfi_startproc
1780 @ args = 0, pretend = 0, frame = 0
1781 @ frame_needed = 0, uses_anonymous_args = 0
1782 .LVL136:
1783 0000 10B5 push {r4, lr}
1784 .LCFI14:
1785 .cfi_def_cfa_offset 8
1786 .cfi_offset 4, -8
1787 .cfi_offset 14, -4
2573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1788 .loc 1 2573 0
1789 0002 806A ldr r0, [r0, #40]
1790 .LVL137:
ARM GAS /tmp/cc7An1gz.s page 84
2576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** &&(HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) )
1791 .loc 1 2576 0
1792 0004 6923 movs r3, #105
1793 0006 C35C ldrb r3, [r0, r3]
1794 0008 212B cmp r3, #33
1795 000a 0AD0 beq .L119
1796 .L117:
2584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** &&(HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) )
1797 .loc 1 2584 0
1798 000c 6A23 movs r3, #106
1799 000e C35C ldrb r3, [r0, r3]
1800 0010 222B cmp r3, #34
1801 0012 15D0 beq .L120
1802 .L118:
2591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UART_ErrorCallback(huart);
1803 .loc 1 2591 0
1804 0014 C36E ldr r3, [r0, #108]
1805 0016 1022 movs r2, #16
1806 0018 1343 orrs r3, r2
1807 001a C366 str r3, [r0, #108]
2592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1808 .loc 1 2592 0
1809 001c FFF7FEFF bl HAL_UART_ErrorCallback
1810 .LVL138:
2593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1811 .loc 1 2593 0
1812 @ sp needed
1813 0020 10BD pop {r4, pc}
1814 .LVL139:
1815 .L119:
2577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1816 .loc 1 2577 0
1817 0022 0368 ldr r3, [r0]
1818 0024 9A68 ldr r2, [r3, #8]
1819 0026 1206 lsls r2, r2, #24
1820 0028 F0D5 bpl .L117
2579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_EndTxTransfer(huart);
1821 .loc 1 2579 0
1822 002a 5222 movs r2, #82
1823 002c 0021 movs r1, #0
1824 002e 8152 strh r1, [r0, r2]
1825 .LVL140:
1826 .LBB18:
1827 .LBB19:
2461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1828 .loc 1 2461 0
1829 0030 1A68 ldr r2, [r3]
1830 0032 C031 adds r1, r1, #192
1831 0034 8A43 bics r2, r1
1832 0036 1A60 str r2, [r3]
2464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1833 .loc 1 2464 0
1834 0038 6923 movs r3, #105
1835 003a 2022 movs r2, #32
1836 003c C254 strb r2, [r0, r3]
1837 003e E5E7 b .L117
1838 .LVL141:
ARM GAS /tmp/cc7An1gz.s page 85
1839 .L120:
1840 .LBE19:
1841 .LBE18:
2585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1842 .loc 1 2585 0
1843 0040 0368 ldr r3, [r0]
1844 0042 9A68 ldr r2, [r3, #8]
1845 0044 5206 lsls r2, r2, #25
1846 0046 E5D5 bpl .L118
2587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_EndRxTransfer(huart);
1847 .loc 1 2587 0
1848 0048 5A22 movs r2, #90
1849 004a 0021 movs r1, #0
1850 004c 8152 strh r1, [r0, r2]
1851 .LVL142:
1852 .LBB20:
1853 .LBB21:
2476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
1854 .loc 1 2476 0
1855 004e 1A68 ldr r2, [r3]
1856 0050 0649 ldr r1, .L121
1857 0052 0A40 ands r2, r1
1858 0054 1A60 str r2, [r3]
2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1859 .loc 1 2477 0
1860 0056 0268 ldr r2, [r0]
1861 0058 9368 ldr r3, [r2, #8]
1862 005a 2331 adds r1, r1, #35
1863 005c FF31 adds r1, r1, #255
1864 005e 8B43 bics r3, r1
1865 0060 9360 str r3, [r2, #8]
2480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1866 .loc 1 2480 0
1867 0062 6A23 movs r3, #106
1868 0064 2022 movs r2, #32
1869 0066 C254 strb r2, [r0, r3]
1870 0068 D4E7 b .L118
1871 .L122:
1872 006a C046 .align 2
1873 .L121:
1874 006c DFFEFFFF .word -289
1875 .LBE21:
1876 .LBE20:
1877 .cfi_endproc
1878 .LFE88:
1880 .section .text.HAL_UART_IRQHandler,"ax",%progbits
1881 .align 1
1882 .global HAL_UART_IRQHandler
1883 .syntax unified
1884 .code 16
1885 .thumb_func
1886 .fpu softvfp
1888 HAL_UART_IRQHandler:
1889 .LFB61:
1625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->ISR);
1890 .loc 1 1625 0
1891 .cfi_startproc
ARM GAS /tmp/cc7An1gz.s page 86
1892 @ args = 0, pretend = 0, frame = 0
1893 @ frame_needed = 0, uses_anonymous_args = 0
1894 .LVL143:
1895 0000 70B5 push {r4, r5, r6, lr}
1896 .LCFI15:
1897 .cfi_def_cfa_offset 16
1898 .cfi_offset 4, -16
1899 .cfi_offset 5, -12
1900 .cfi_offset 6, -8
1901 .cfi_offset 14, -4
1902 0002 0400 movs r4, r0
1626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1);
1903 .loc 1 1626 0
1904 0004 0168 ldr r1, [r0]
1905 0006 CB69 ldr r3, [r1, #28]
1906 .LVL144:
1627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t cr3its;
1907 .loc 1 1627 0
1908 0008 0868 ldr r0, [r1]
1909 .LVL145:
1632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (errorflags == RESET)
1910 .loc 1 1632 0
1911 000a 0F22 movs r2, #15
1912 000c 1A40 ands r2, r3
1913 .LVL146:
1633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1914 .loc 1 1633 0
1915 000e 03D1 bne .L124
1636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1916 .loc 1 1636 0
1917 0010 9D06 lsls r5, r3, #26
1918 0012 01D5 bpl .L124
1636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1919 .loc 1 1636 0 is_stmt 0 discriminator 1
1920 0014 8506 lsls r5, r0, #26
1921 0016 66D4 bmi .L144
1922 .L124:
1644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if( (errorflags != RESET)
1923 .loc 1 1644 0 is_stmt 1
1924 0018 8D68 ldr r5, [r1, #8]
1925 .LVL147:
1645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** && ( ((cr3its & USART_CR3_EIE) != RESET)
1926 .loc 1 1645 0
1927 001a 002A cmp r2, #0
1928 001c 79D0 beq .L126
1646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)) )
1929 .loc 1 1646 0
1930 001e 0122 movs r2, #1
1931 .LVL148:
1932 0020 2A40 ands r2, r5
1933 0022 03D1 bne .L127
1647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1934 .loc 1 1647 0
1935 0024 9026 movs r6, #144
1936 0026 7600 lsls r6, r6, #1
1937 0028 3042 tst r0, r6
1938 002a 72D0 beq .L126
ARM GAS /tmp/cc7An1gz.s page 87
1939 .L127:
1650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1940 .loc 1 1650 0
1941 002c DD07 lsls r5, r3, #31
1942 002e 06D5 bpl .L128
1943 .LVL149:
1650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1944 .loc 1 1650 0 is_stmt 0 discriminator 1
1945 0030 C505 lsls r5, r0, #23
1946 0032 04D5 bpl .L128
1652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1947 .loc 1 1652 0 is_stmt 1
1948 0034 0125 movs r5, #1
1949 0036 0D62 str r5, [r1, #32]
1654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1950 .loc 1 1654 0
1951 0038 E16E ldr r1, [r4, #108]
1952 003a 2943 orrs r1, r5
1953 003c E166 str r1, [r4, #108]
1954 .L128:
1658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1955 .loc 1 1658 0
1956 003e 9907 lsls r1, r3, #30
1957 0040 08D5 bpl .L129
1658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1958 .loc 1 1658 0 is_stmt 0 discriminator 1
1959 0042 002A cmp r2, #0
1960 0044 06D0 beq .L129
1660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1961 .loc 1 1660 0 is_stmt 1
1962 0046 2168 ldr r1, [r4]
1963 0048 0225 movs r5, #2
1964 004a 0D62 str r5, [r1, #32]
1662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1965 .loc 1 1662 0
1966 004c E16E ldr r1, [r4, #108]
1967 004e 0235 adds r5, r5, #2
1968 0050 2943 orrs r1, r5
1969 0052 E166 str r1, [r4, #108]
1970 .L129:
1666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1971 .loc 1 1666 0
1972 0054 5907 lsls r1, r3, #29
1973 0056 08D5 bpl .L130
1666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1974 .loc 1 1666 0 is_stmt 0 discriminator 1
1975 0058 002A cmp r2, #0
1976 005a 06D0 beq .L130
1668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1977 .loc 1 1668 0 is_stmt 1
1978 005c 2168 ldr r1, [r4]
1979 005e 0425 movs r5, #4
1980 0060 0D62 str r5, [r1, #32]
1670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
1981 .loc 1 1670 0
1982 0062 E16E ldr r1, [r4, #108]
1983 0064 023D subs r5, r5, #2
ARM GAS /tmp/cc7An1gz.s page 88
1984 0066 2943 orrs r1, r5
1985 0068 E166 str r1, [r4, #108]
1986 .L130:
1674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (((cr1its & USART_CR1_RXNEIE) != RESET) || ((cr3its & USART_CR3_EIE) != RESET)))
1987 .loc 1 1674 0
1988 006a 1907 lsls r1, r3, #28
1989 006c 09D5 bpl .L131
1674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (((cr1its & USART_CR1_RXNEIE) != RESET) || ((cr3its & USART_CR3_EIE) != RESET)))
1990 .loc 1 1674 0 is_stmt 0 discriminator 1
1991 006e 8106 lsls r1, r0, #26
1992 0070 01D4 bmi .L132
1675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
1993 .loc 1 1675 0 is_stmt 1
1994 0072 002A cmp r2, #0
1995 0074 05D0 beq .L131
1996 .L132:
1677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
1997 .loc 1 1677 0
1998 0076 2268 ldr r2, [r4]
1999 0078 0821 movs r1, #8
2000 007a 1162 str r1, [r2, #32]
1679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2001 .loc 1 1679 0
2002 007c E26E ldr r2, [r4, #108]
2003 007e 0A43 orrs r2, r1
2004 0080 E266 str r2, [r4, #108]
2005 .L131:
1683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2006 .loc 1 1683 0
2007 0082 E26E ldr r2, [r4, #108]
2008 0084 002A cmp r2, #0
2009 0086 50D0 beq .L123
1686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2010 .loc 1 1686 0
2011 0088 9B06 lsls r3, r3, #26
2012 008a 01D5 bpl .L133
2013 .LVL150:
1686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2014 .loc 1 1686 0 is_stmt 0 discriminator 1
2015 008c 8306 lsls r3, r0, #26
2016 008e 2ED4 bmi .L145
2017 .LVL151:
2018 .L133:
1693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)))
2019 .loc 1 1693 0 is_stmt 1
2020 0090 E36E ldr r3, [r4, #108]
2021 0092 1B07 lsls r3, r3, #28
2022 0094 03D4 bmi .L134
1694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2023 .loc 1 1694 0 discriminator 1
2024 0096 2368 ldr r3, [r4]
2025 0098 9B68 ldr r3, [r3, #8]
1693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)))
2026 .loc 1 1693 0 discriminator 1
2027 009a 5B06 lsls r3, r3, #25
2028 009c 33D5 bpl .L135
2029 .L134:
ARM GAS /tmp/cc7An1gz.s page 89
2030 .LVL152:
2031 .LBB28:
2032 .LBB29:
2476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
2033 .loc 1 2476 0
2034 009e 2268 ldr r2, [r4]
2035 00a0 1368 ldr r3, [r2]
2036 00a2 4749 ldr r1, .L151
2037 00a4 0B40 ands r3, r1
2038 00a6 1360 str r3, [r2]
2477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2039 .loc 1 2477 0
2040 00a8 2268 ldr r2, [r4]
2041 00aa 9368 ldr r3, [r2, #8]
2042 00ac 2331 adds r1, r1, #35
2043 00ae FF31 adds r1, r1, #255
2044 00b0 8B43 bics r3, r1
2045 00b2 9360 str r3, [r2, #8]
2480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2046 .loc 1 2480 0
2047 00b4 6A23 movs r3, #106
2048 00b6 2022 movs r2, #32
2049 00b8 E254 strb r2, [r4, r3]
2050 .LVL153:
2051 .LBE29:
2052 .LBE28:
1702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2053 .loc 1 1702 0
2054 00ba 2368 ldr r3, [r4]
2055 00bc 9A68 ldr r2, [r3, #8]
2056 00be 5206 lsls r2, r2, #25
2057 00c0 1DD5 bpl .L136
1704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2058 .loc 1 1704 0
2059 00c2 9A68 ldr r2, [r3, #8]
2060 00c4 3F31 adds r1, r1, #63
2061 00c6 8A43 bics r2, r1
2062 00c8 9A60 str r2, [r3, #8]
1707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2063 .loc 1 1707 0
2064 00ca 636E ldr r3, [r4, #100]
2065 00cc 002B cmp r3, #0
2066 00ce 12D0 beq .L137
1711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2067 .loc 1 1711 0
2068 00d0 3C4A ldr r2, .L151+4
2069 00d2 9A63 str r2, [r3, #56]
1714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2070 .loc 1 1714 0
2071 00d4 606E ldr r0, [r4, #100]
2072 00d6 FFF7FEFF bl HAL_DMA_Abort_IT
2073 .LVL154:
2074 00da 0028 cmp r0, #0
2075 00dc 25D0 beq .L123
1717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2076 .loc 1 1717 0
2077 00de 606E ldr r0, [r4, #100]
ARM GAS /tmp/cc7An1gz.s page 90
2078 00e0 836B ldr r3, [r0, #56]
2079 00e2 9847 blx r3
2080 .LVL155:
2081 00e4 21E0 b .L123
2082 .LVL156:
2083 .L144:
1638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return;
2084 .loc 1 1638 0
2085 00e6 2000 movs r0, r4
2086 .LVL157:
2087 00e8 FFF7FEFF bl UART_Receive_IT
2088 .LVL158:
1639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2089 .loc 1 1639 0
2090 00ec 1DE0 b .L123
2091 .LVL159:
2092 .L145:
1688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2093 .loc 1 1688 0
2094 00ee 2000 movs r0, r4
2095 .LVL160:
2096 00f0 FFF7FEFF bl UART_Receive_IT
2097 .LVL161:
2098 00f4 CCE7 b .L133
2099 .L137:
1723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2100 .loc 1 1723 0
2101 00f6 2000 movs r0, r4
2102 00f8 FFF7FEFF bl HAL_UART_ErrorCallback
2103 .LVL162:
2104 00fc 15E0 b .L123
2105 .L136:
1729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2106 .loc 1 1729 0
2107 00fe 2000 movs r0, r4
2108 0100 FFF7FEFF bl HAL_UART_ErrorCallback
2109 .LVL163:
2110 0104 11E0 b .L123
2111 .L135:
1736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE;
2112 .loc 1 1736 0
2113 0106 2000 movs r0, r4
2114 0108 FFF7FEFF bl HAL_UART_ErrorCallback
2115 .LVL164:
1737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2116 .loc 1 1737 0
2117 010c 0023 movs r3, #0
2118 010e E366 str r3, [r4, #108]
2119 0110 0BE0 b .L123
2120 .LVL165:
2121 .L126:
1745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2122 .loc 1 1745 0
2123 0112 DA02 lsls r2, r3, #11
2124 0114 01D5 bpl .L138
1745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2125 .loc 1 1745 0 is_stmt 0 discriminator 1
ARM GAS /tmp/cc7An1gz.s page 91
2126 0116 6A02 lsls r2, r5, #9
2127 0118 08D4 bmi .L146
2128 .L138:
1756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2129 .loc 1 1756 0 is_stmt 1
2130 011a 1A06 lsls r2, r3, #24
2131 011c 01D5 bpl .L139
1756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2132 .loc 1 1756 0 is_stmt 0 discriminator 1
2133 011e 0206 lsls r2, r0, #24
2134 0120 10D4 bmi .L147
2135 .L139:
1763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2136 .loc 1 1763 0 is_stmt 1
2137 0122 5B06 lsls r3, r3, #25
2138 0124 01D5 bpl .L123
2139 .LVL166:
1763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2140 .loc 1 1763 0 is_stmt 0 discriminator 1
2141 0126 4306 lsls r3, r0, #25
2142 0128 3ED4 bmi .L148
2143 .LVL167:
2144 .L123:
1769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2145 .loc 1 1769 0 is_stmt 1
2146 @ sp needed
2147 .LVL168:
2148 012a 70BD pop {r4, r5, r6, pc}
2149 .LVL169:
2150 .L146:
1747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Set the UART state ready to be able to start again the process */
2151 .loc 1 1747 0
2152 012c 8023 movs r3, #128
2153 .LVL170:
2154 012e 5B03 lsls r3, r3, #13
2155 0130 0B62 str r3, [r1, #32]
1749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2156 .loc 1 1749 0
2157 0132 2023 movs r3, #32
2158 0134 6922 movs r2, #105
2159 0136 A354 strb r3, [r4, r2]
1750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_UARTEx_WakeupCallback(huart);
2160 .loc 1 1750 0
2161 0138 0132 adds r2, r2, #1
2162 013a A354 strb r3, [r4, r2]
1751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return;
2163 .loc 1 1751 0
2164 013c 2000 movs r0, r4
2165 .LVL171:
2166 013e FFF7FEFF bl HAL_UARTEx_WakeupCallback
2167 .LVL172:
1752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2168 .loc 1 1752 0
2169 0142 F2E7 b .L123
2170 .LVL173:
2171 .L147:
2172 .LBB30:
ARM GAS /tmp/cc7An1gz.s page 92
2173 .LBB31:
2751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2174 .loc 1 2751 0
2175 0144 6923 movs r3, #105
2176 .LVL174:
2177 0146 E35C ldrb r3, [r4, r3]
2178 0148 212B cmp r3, #33
2179 014a EED1 bne .L123
2753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2180 .loc 1 2753 0
2181 014c 3133 adds r3, r3, #49
2182 014e E35A ldrh r3, [r4, r3]
2183 0150 9BB2 uxth r3, r3
2184 0152 002B cmp r3, #0
2185 0154 10D0 beq .L149
2765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2186 .loc 1 2765 0
2187 0156 8023 movs r3, #128
2188 0158 5B01 lsls r3, r3, #5
2189 015a A268 ldr r2, [r4, #8]
2190 015c 9A42 cmp r2, r3
2191 015e 16D0 beq .L150
2192 .L142:
2773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2193 .loc 1 2773 0
2194 0160 E36C ldr r3, [r4, #76]
2195 0162 5A1C adds r2, r3, #1
2196 0164 E264 str r2, [r4, #76]
2197 0166 1A78 ldrb r2, [r3]
2198 0168 2368 ldr r3, [r4]
2199 016a 9A62 str r2, [r3, #40]
2200 .L143:
2775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2201 .loc 1 2775 0
2202 016c 5222 movs r2, #82
2203 016e A35A ldrh r3, [r4, r2]
2204 0170 013B subs r3, r3, #1
2205 0172 9BB2 uxth r3, r3
2206 0174 A352 strh r3, [r4, r2]
2207 0176 D8E7 b .L123
2208 .L149:
2756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2209 .loc 1 2756 0
2210 0178 2268 ldr r2, [r4]
2211 017a 1368 ldr r3, [r2]
2212 017c 8021 movs r1, #128
2213 017e 8B43 bics r3, r1
2214 0180 1360 str r3, [r2]
2759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2215 .loc 1 2759 0
2216 0182 2268 ldr r2, [r4]
2217 0184 1368 ldr r3, [r2]
2218 0186 4039 subs r1, r1, #64
2219 0188 0B43 orrs r3, r1
2220 018a 1360 str r3, [r2]
2221 018c CDE7 b .L123
2222 .L150:
ARM GAS /tmp/cc7An1gz.s page 93
2765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2223 .loc 1 2765 0
2224 018e 2369 ldr r3, [r4, #16]
2225 0190 002B cmp r3, #0
2226 0192 E5D1 bne .L142
2227 .LVL175:
2768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->pTxBuffPtr += 2U;
2228 .loc 1 2768 0
2229 0194 E36C ldr r3, [r4, #76]
2230 0196 1B88 ldrh r3, [r3]
2231 0198 2268 ldr r2, [r4]
2232 019a DB05 lsls r3, r3, #23
2233 019c DB0D lsrs r3, r3, #23
2234 019e 9362 str r3, [r2, #40]
2235 .LVL176:
2769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2236 .loc 1 2769 0
2237 01a0 E36C ldr r3, [r4, #76]
2238 01a2 0233 adds r3, r3, #2
2239 01a4 E364 str r3, [r4, #76]
2240 01a6 E1E7 b .L143
2241 .LVL177:
2242 .L148:
2243 .LBE31:
2244 .LBE30:
2245 .LBB32:
2246 .LBB33:
2795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2247 .loc 1 2795 0
2248 01a8 0B68 ldr r3, [r1]
2249 01aa 4022 movs r2, #64
2250 01ac 9343 bics r3, r2
2251 01ae 0B60 str r3, [r1]
2798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2252 .loc 1 2798 0
2253 01b0 6923 movs r3, #105
2254 01b2 203A subs r2, r2, #32
2255 01b4 E254 strb r2, [r4, r3]
2800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2256 .loc 1 2800 0
2257 01b6 2000 movs r0, r4
2258 .LVL178:
2259 01b8 FFF7FEFF bl HAL_UART_TxCpltCallback
2260 .LVL179:
2261 01bc B5E7 b .L123
2262 .L152:
2263 01be C046 .align 2
2264 .L151:
2265 01c0 DFFEFFFF .word -289
2266 01c4 00000000 .word UART_DMAAbortOnError
2267 .LBE33:
2268 .LBE32:
2269 .cfi_endproc
2270 .LFE61:
2272 .section .text.UART_DMAAbortOnError,"ax",%progbits
2273 .align 1
2274 .syntax unified
ARM GAS /tmp/cc7An1gz.s page 94
2275 .code 16
2276 .thumb_func
2277 .fpu softvfp
2279 UART_DMAAbortOnError:
2280 .LFB89:
2602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
2281 .loc 1 2602 0
2282 .cfi_startproc
2283 @ args = 0, pretend = 0, frame = 0
2284 @ frame_needed = 0, uses_anonymous_args = 0
2285 .LVL180:
2286 0000 10B5 push {r4, lr}
2287 .LCFI16:
2288 .cfi_def_cfa_offset 8
2289 .cfi_offset 4, -8
2290 .cfi_offset 14, -4
2603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
2291 .loc 1 2603 0
2292 0002 806A ldr r0, [r0, #40]
2293 .LVL181:
2604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = 0;
2294 .loc 1 2604 0
2295 0004 0023 movs r3, #0
2296 0006 5A22 movs r2, #90
2297 0008 8352 strh r3, [r0, r2]
2605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2298 .loc 1 2605 0
2299 000a 083A subs r2, r2, #8
2300 000c 8352 strh r3, [r0, r2]
2607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2301 .loc 1 2607 0
2302 000e FFF7FEFF bl HAL_UART_ErrorCallback
2303 .LVL182:
2608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2304 .loc 1 2608 0
2305 @ sp needed
2306 0012 10BD pop {r4, pc}
2307 .cfi_endproc
2308 .LFE89:
2310 .section .text.HAL_UART_AbortCpltCallback,"ax",%progbits
2311 .align 1
2312 .weak HAL_UART_AbortCpltCallback
2313 .syntax unified
2314 .code 16
2315 .thumb_func
2316 .fpu softvfp
2318 HAL_UART_AbortCpltCallback:
2319 .LFB67:
1852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
2320 .loc 1 1852 0
2321 .cfi_startproc
2322 @ args = 0, pretend = 0, frame = 0
2323 @ frame_needed = 0, uses_anonymous_args = 0
2324 @ link register save eliminated.
2325 .LVL183:
1859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2326 .loc 1 1859 0
ARM GAS /tmp/cc7An1gz.s page 95
2327 @ sp needed
2328 0000 7047 bx lr
2329 .cfi_endproc
2330 .LFE67:
2332 .section .text.HAL_UART_Abort_IT,"ax",%progbits
2333 .align 1
2334 .global HAL_UART_Abort_IT
2335 .syntax unified
2336 .code 16
2337 .thumb_func
2338 .fpu softvfp
2340 HAL_UART_Abort_IT:
2341 .LFB58:
1372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t abortcplt = 1;
2342 .loc 1 1372 0
2343 .cfi_startproc
2344 @ args = 0, pretend = 0, frame = 0
2345 @ frame_needed = 0, uses_anonymous_args = 0
2346 .LVL184:
2347 0000 10B5 push {r4, lr}
2348 .LCFI17:
2349 .cfi_def_cfa_offset 8
2350 .cfi_offset 4, -8
2351 .cfi_offset 14, -4
2352 0002 0400 movs r4, r0
2353 .LVL185:
1376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
2354 .loc 1 1376 0
2355 0004 0268 ldr r2, [r0]
2356 0006 1368 ldr r3, [r2]
2357 0008 3049 ldr r1, .L167
2358 000a 0B40 ands r3, r1
2359 000c 1360 str r3, [r2]
1377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2360 .loc 1 1377 0
2361 000e 0268 ldr r2, [r0]
2362 0010 9368 ldr r3, [r2, #8]
2363 0012 E331 adds r1, r1, #227
2364 0014 FF31 adds r1, r1, #255
2365 0016 8B43 bics r3, r1
2366 0018 9360 str r3, [r2, #8]
1382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2367 .loc 1 1382 0
2368 001a 036E ldr r3, [r0, #96]
2369 001c 002B cmp r3, #0
2370 001e 05D0 beq .L156
1386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2371 .loc 1 1386 0
2372 0020 0268 ldr r2, [r0]
2373 0022 9268 ldr r2, [r2, #8]
2374 0024 1206 lsls r2, r2, #24
2375 0026 1ED5 bpl .L157
1388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2376 .loc 1 1388 0
2377 0028 294A ldr r2, .L167+4
2378 002a 9A63 str r2, [r3, #56]
2379 .L156:
ARM GAS /tmp/cc7An1gz.s page 96
1396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2380 .loc 1 1396 0
2381 002c 636E ldr r3, [r4, #100]
2382 002e 002B cmp r3, #0
2383 0030 05D0 beq .L158
1400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2384 .loc 1 1400 0
2385 0032 2268 ldr r2, [r4]
2386 0034 9268 ldr r2, [r2, #8]
2387 0036 5206 lsls r2, r2, #25
2388 0038 18D5 bpl .L159
1402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2389 .loc 1 1402 0
2390 003a 264A ldr r2, .L167+8
2391 003c 9A63 str r2, [r3, #56]
2392 .L158:
1411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2393 .loc 1 1411 0
2394 003e 2368 ldr r3, [r4]
2395 0040 9A68 ldr r2, [r3, #8]
2396 0042 1206 lsls r2, r2, #24
2397 0044 15D5 bpl .L164
1414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2398 .loc 1 1414 0
2399 0046 9A68 ldr r2, [r3, #8]
2400 0048 8021 movs r1, #128
2401 004a 8A43 bics r2, r1
2402 004c 9A60 str r2, [r3, #8]
1417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2403 .loc 1 1417 0
2404 004e 206E ldr r0, [r4, #96]
2405 .LVL186:
2406 0050 0028 cmp r0, #0
2407 0052 33D0 beq .L165
1423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2408 .loc 1 1423 0
2409 0054 FFF7FEFF bl HAL_DMA_Abort_IT
2410 .LVL187:
2411 0058 0028 cmp r0, #0
2412 005a 31D0 beq .L166
1425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2413 .loc 1 1425 0
2414 005c 236E ldr r3, [r4, #96]
2415 005e 0022 movs r2, #0
2416 0060 9A63 str r2, [r3, #56]
1373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2417 .loc 1 1373 0
2418 0062 0121 movs r1, #1
2419 0064 06E0 b .L160
2420 .LVL188:
2421 .L157:
1392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2422 .loc 1 1392 0
2423 0066 0022 movs r2, #0
2424 0068 9A63 str r2, [r3, #56]
2425 006a DFE7 b .L156
2426 .L159:
ARM GAS /tmp/cc7An1gz.s page 97
1406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2427 .loc 1 1406 0
2428 006c 0022 movs r2, #0
2429 006e 9A63 str r2, [r3, #56]
2430 0070 E5E7 b .L158
2431 .L164:
1373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2432 .loc 1 1373 0
2433 0072 0121 movs r1, #1
2434 .LVL189:
2435 .L160:
1435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2436 .loc 1 1435 0
2437 0074 2368 ldr r3, [r4]
2438 0076 9A68 ldr r2, [r3, #8]
2439 0078 5206 lsls r2, r2, #25
2440 007a 23D5 bpl .L161
1437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2441 .loc 1 1437 0
2442 007c 9A68 ldr r2, [r3, #8]
2443 007e 4020 movs r0, #64
2444 0080 8243 bics r2, r0
2445 0082 9A60 str r2, [r3, #8]
1440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2446 .loc 1 1440 0
2447 0084 606E ldr r0, [r4, #100]
2448 0086 0028 cmp r0, #0
2449 0088 1CD0 beq .L161
1446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2450 .loc 1 1446 0
2451 008a FFF7FEFF bl HAL_DMA_Abort_IT
2452 .LVL190:
2453 008e 0028 cmp r0, #0
2454 0090 1AD0 beq .L162
1448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** abortcplt = 1;
2455 .loc 1 1448 0
2456 0092 636E ldr r3, [r4, #100]
2457 0094 0022 movs r2, #0
2458 0096 9A63 str r2, [r3, #56]
2459 .LVL191:
2460 .L163:
1462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
2461 .loc 1 1462 0
2462 0098 0023 movs r3, #0
2463 009a 5222 movs r2, #82
2464 009c A352 strh r3, [r4, r2]
1463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2465 .loc 1 1463 0
2466 009e 0832 adds r2, r2, #8
2467 00a0 A352 strh r3, [r4, r2]
1466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2468 .loc 1 1466 0
2469 00a2 E366 str r3, [r4, #108]
1469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2470 .loc 1 1469 0
2471 00a4 2368 ldr r3, [r4]
2472 00a6 4B3A subs r2, r2, #75
ARM GAS /tmp/cc7An1gz.s page 98
2473 00a8 1A62 str r2, [r3, #32]
1472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2474 .loc 1 1472 0
2475 00aa 2023 movs r3, #32
2476 00ac 5A32 adds r2, r2, #90
2477 00ae A354 strb r3, [r4, r2]
1473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2478 .loc 1 1473 0
2479 00b0 0132 adds r2, r2, #1
2480 00b2 A354 strb r3, [r4, r2]
1476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2481 .loc 1 1476 0
2482 00b4 2000 movs r0, r4
2483 00b6 FFF7FEFF bl HAL_UART_AbortCpltCallback
2484 .LVL192:
2485 00ba 05E0 b .L162
2486 .LVL193:
2487 .L165:
1373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2488 .loc 1 1373 0
2489 00bc 0121 movs r1, #1
2490 00be D9E7 b .L160
2491 .L166:
1429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2492 .loc 1 1429 0
2493 00c0 0021 movs r1, #0
2494 00c2 D7E7 b .L160
2495 .LVL194:
2496 .L161:
1459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2497 .loc 1 1459 0
2498 00c4 0129 cmp r1, #1
2499 00c6 E7D0 beq .L163
2500 .LVL195:
2501 .L162:
1480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2502 .loc 1 1480 0
2503 00c8 0020 movs r0, #0
2504 @ sp needed
2505 .LVL196:
2506 00ca 10BD pop {r4, pc}
2507 .L168:
2508 .align 2
2509 .L167:
2510 00cc 1FFEFFFF .word -481
2511 00d0 00000000 .word UART_DMATxAbortCallback
2512 00d4 00000000 .word UART_DMARxAbortCallback
2513 .cfi_endproc
2514 .LFE58:
2516 .section .text.UART_DMARxAbortCallback,"ax",%progbits
2517 .align 1
2518 .syntax unified
2519 .code 16
2520 .thumb_func
2521 .fpu softvfp
2523 UART_DMARxAbortCallback:
2524 .LFB91:
ARM GAS /tmp/cc7An1gz.s page 99
2661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef* )(hdma->Parent);
2525 .loc 1 2661 0
2526 .cfi_startproc
2527 @ args = 0, pretend = 0, frame = 0
2528 @ frame_needed = 0, uses_anonymous_args = 0
2529 .LVL197:
2530 0000 10B5 push {r4, lr}
2531 .LCFI18:
2532 .cfi_def_cfa_offset 8
2533 .cfi_offset 4, -8
2534 .cfi_offset 14, -4
2662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2535 .loc 1 2662 0
2536 0002 806A ldr r0, [r0, #40]
2537 .LVL198:
2664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2538 .loc 1 2664 0
2539 0004 436E ldr r3, [r0, #100]
2540 0006 0022 movs r2, #0
2541 0008 9A63 str r2, [r3, #56]
2667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2542 .loc 1 2667 0
2543 000a 036E ldr r3, [r0, #96]
2544 000c 002B cmp r3, #0
2545 000e 03D0 beq .L170
2669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2546 .loc 1 2669 0
2547 0010 9B6B ldr r3, [r3, #56]
2548 0012 002B cmp r3, #0
2549 0014 00D0 beq .L170
2550 .LVL199:
2551 .L169:
2691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2552 .loc 1 2691 0
2553 @ sp needed
2554 0016 10BD pop {r4, pc}
2555 .LVL200:
2556 .L170:
2676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
2557 .loc 1 2676 0
2558 0018 0023 movs r3, #0
2559 001a 5222 movs r2, #82
2560 001c 8352 strh r3, [r0, r2]
2677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2561 .loc 1 2677 0
2562 001e 0832 adds r2, r2, #8
2563 0020 8352 strh r3, [r0, r2]
2680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2564 .loc 1 2680 0
2565 0022 C366 str r3, [r0, #108]
2683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2566 .loc 1 2683 0
2567 0024 0368 ldr r3, [r0]
2568 0026 4B3A subs r2, r2, #75
2569 0028 1A62 str r2, [r3, #32]
2686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2570 .loc 1 2686 0
ARM GAS /tmp/cc7An1gz.s page 100
2571 002a 2023 movs r3, #32
2572 002c 5A32 adds r2, r2, #90
2573 002e 8354 strb r3, [r0, r2]
2687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2574 .loc 1 2687 0
2575 0030 0132 adds r2, r2, #1
2576 0032 8354 strb r3, [r0, r2]
2690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2577 .loc 1 2690 0
2578 0034 FFF7FEFF bl HAL_UART_AbortCpltCallback
2579 .LVL201:
2580 0038 EDE7 b .L169
2581 .cfi_endproc
2582 .LFE91:
2584 .section .text.UART_DMATxAbortCallback,"ax",%progbits
2585 .align 1
2586 .syntax unified
2587 .code 16
2588 .thumb_func
2589 .fpu softvfp
2591 UART_DMATxAbortCallback:
2592 .LFB90:
2619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef* )(hdma->Parent);
2593 .loc 1 2619 0
2594 .cfi_startproc
2595 @ args = 0, pretend = 0, frame = 0
2596 @ frame_needed = 0, uses_anonymous_args = 0
2597 .LVL202:
2598 0000 10B5 push {r4, lr}
2599 .LCFI19:
2600 .cfi_def_cfa_offset 8
2601 .cfi_offset 4, -8
2602 .cfi_offset 14, -4
2620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2603 .loc 1 2620 0
2604 0002 806A ldr r0, [r0, #40]
2605 .LVL203:
2622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2606 .loc 1 2622 0
2607 0004 036E ldr r3, [r0, #96]
2608 0006 0022 movs r2, #0
2609 0008 9A63 str r2, [r3, #56]
2625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2610 .loc 1 2625 0
2611 000a 436E ldr r3, [r0, #100]
2612 000c 002B cmp r3, #0
2613 000e 03D0 beq .L173
2627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2614 .loc 1 2627 0
2615 0010 9B6B ldr r3, [r3, #56]
2616 0012 002B cmp r3, #0
2617 0014 00D0 beq .L173
2618 .LVL204:
2619 .L172:
2649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2620 .loc 1 2649 0
2621 @ sp needed
ARM GAS /tmp/cc7An1gz.s page 101
2622 0016 10BD pop {r4, pc}
2623 .LVL205:
2624 .L173:
2634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = 0;
2625 .loc 1 2634 0
2626 0018 0023 movs r3, #0
2627 001a 5222 movs r2, #82
2628 001c 8352 strh r3, [r0, r2]
2635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2629 .loc 1 2635 0
2630 001e 0832 adds r2, r2, #8
2631 0020 8352 strh r3, [r0, r2]
2638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2632 .loc 1 2638 0
2633 0022 C366 str r3, [r0, #108]
2641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2634 .loc 1 2641 0
2635 0024 0368 ldr r3, [r0]
2636 0026 4B3A subs r2, r2, #75
2637 0028 1A62 str r2, [r3, #32]
2644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
2638 .loc 1 2644 0
2639 002a 2023 movs r3, #32
2640 002c 5A32 adds r2, r2, #90
2641 002e 8354 strb r3, [r0, r2]
2645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2642 .loc 1 2645 0
2643 0030 0132 adds r2, r2, #1
2644 0032 8354 strb r3, [r0, r2]
2648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2645 .loc 1 2648 0
2646 0034 FFF7FEFF bl HAL_UART_AbortCpltCallback
2647 .LVL206:
2648 0038 EDE7 b .L172
2649 .cfi_endproc
2650 .LFE90:
2652 .section .text.HAL_UART_AbortTransmitCpltCallback,"ax",%progbits
2653 .align 1
2654 .weak HAL_UART_AbortTransmitCpltCallback
2655 .syntax unified
2656 .code 16
2657 .thumb_func
2658 .fpu softvfp
2660 HAL_UART_AbortTransmitCpltCallback:
2661 .LFB68:
1867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
2662 .loc 1 1867 0
2663 .cfi_startproc
2664 @ args = 0, pretend = 0, frame = 0
2665 @ frame_needed = 0, uses_anonymous_args = 0
2666 @ link register save eliminated.
2667 .LVL207:
1874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2668 .loc 1 1874 0
2669 @ sp needed
2670 0000 7047 bx lr
2671 .cfi_endproc
ARM GAS /tmp/cc7An1gz.s page 102
2672 .LFE68:
2674 .section .text.HAL_UART_AbortTransmit_IT,"ax",%progbits
2675 .align 1
2676 .global HAL_UART_AbortTransmit_IT
2677 .syntax unified
2678 .code 16
2679 .thumb_func
2680 .fpu softvfp
2682 HAL_UART_AbortTransmit_IT:
2683 .LFB59:
1497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */
2684 .loc 1 1497 0
2685 .cfi_startproc
2686 @ args = 0, pretend = 0, frame = 0
2687 @ frame_needed = 0, uses_anonymous_args = 0
2688 .LVL208:
2689 0000 10B5 push {r4, lr}
2690 .LCFI20:
2691 .cfi_def_cfa_offset 8
2692 .cfi_offset 4, -8
2693 .cfi_offset 14, -4
2694 0002 0400 movs r4, r0
1499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2695 .loc 1 1499 0
2696 0004 0268 ldr r2, [r0]
2697 0006 1368 ldr r3, [r2]
2698 0008 C021 movs r1, #192
2699 000a 8B43 bics r3, r1
2700 000c 1360 str r3, [r2]
1502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2701 .loc 1 1502 0
2702 000e 0368 ldr r3, [r0]
2703 0010 9A68 ldr r2, [r3, #8]
2704 0012 1206 lsls r2, r2, #24
2705 0014 1BD5 bpl .L177
1504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2706 .loc 1 1504 0
2707 0016 9A68 ldr r2, [r3, #8]
2708 0018 4039 subs r1, r1, #64
2709 001a 8A43 bics r2, r1
2710 001c 9A60 str r2, [r3, #8]
1507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2711 .loc 1 1507 0
2712 001e 036E ldr r3, [r0, #96]
2713 0020 002B cmp r3, #0
2714 0022 0BD0 beq .L178
1511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2715 .loc 1 1511 0
2716 0024 0E4A ldr r2, .L180
2717 0026 9A63 str r2, [r3, #56]
1514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2718 .loc 1 1514 0
2719 0028 006E ldr r0, [r0, #96]
2720 .LVL209:
2721 002a FFF7FEFF bl HAL_DMA_Abort_IT
2722 .LVL210:
2723 002e 0028 cmp r0, #0
ARM GAS /tmp/cc7An1gz.s page 103
2724 0030 02D0 beq .L179
1517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2725 .loc 1 1517 0
2726 0032 206E ldr r0, [r4, #96]
2727 0034 836B ldr r3, [r0, #56]
2728 0036 9847 blx r3
2729 .LVL211:
2730 .L179:
1545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2731 .loc 1 1545 0
2732 0038 0020 movs r0, #0
2733 @ sp needed
2734 .LVL212:
2735 003a 10BD pop {r4, pc}
2736 .LVL213:
2737 .L178:
1523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2738 .loc 1 1523 0
2739 003c 5223 movs r3, #82
2740 003e 0022 movs r2, #0
2741 0040 C252 strh r2, [r0, r3]
1526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2742 .loc 1 1526 0
2743 0042 1733 adds r3, r3, #23
2744 0044 2032 adds r2, r2, #32
2745 0046 C254 strb r2, [r0, r3]
1529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2746 .loc 1 1529 0
2747 0048 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback
2748 .LVL214:
2749 004c F4E7 b .L179
2750 .LVL215:
2751 .L177:
1535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2752 .loc 1 1535 0
2753 004e 5223 movs r3, #82
2754 0050 0022 movs r2, #0
2755 0052 C252 strh r2, [r0, r3]
1538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2756 .loc 1 1538 0
2757 0054 1733 adds r3, r3, #23
2758 0056 2032 adds r2, r2, #32
2759 0058 C254 strb r2, [r0, r3]
1541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2760 .loc 1 1541 0
2761 005a FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback
2762 .LVL216:
2763 005e EBE7 b .L179
2764 .L181:
2765 .align 2
2766 .L180:
2767 0060 00000000 .word UART_DMATxOnlyAbortCallback
2768 .cfi_endproc
2769 .LFE59:
2771 .section .text.UART_DMATxOnlyAbortCallback,"ax",%progbits
2772 .align 1
2773 .syntax unified
ARM GAS /tmp/cc7An1gz.s page 104
2774 .code 16
2775 .thumb_func
2776 .fpu softvfp
2778 UART_DMATxOnlyAbortCallback:
2779 .LFB92:
2703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = (UART_HandleTypeDef*)(hdma->Parent);
2780 .loc 1 2703 0
2781 .cfi_startproc
2782 @ args = 0, pretend = 0, frame = 0
2783 @ frame_needed = 0, uses_anonymous_args = 0
2784 .LVL217:
2785 0000 10B5 push {r4, lr}
2786 .LCFI21:
2787 .cfi_def_cfa_offset 8
2788 .cfi_offset 4, -8
2789 .cfi_offset 14, -4
2704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2790 .loc 1 2704 0
2791 0002 806A ldr r0, [r0, #40]
2792 .LVL218:
2706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2793 .loc 1 2706 0
2794 0004 5223 movs r3, #82
2795 0006 0022 movs r2, #0
2796 0008 C252 strh r2, [r0, r3]
2709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2797 .loc 1 2709 0
2798 000a 1733 adds r3, r3, #23
2799 000c 2032 adds r2, r2, #32
2800 000e C254 strb r2, [r0, r3]
2712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2801 .loc 1 2712 0
2802 0010 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback
2803 .LVL219:
2713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2804 .loc 1 2713 0
2805 @ sp needed
2806 0014 10BD pop {r4, pc}
2807 .cfi_endproc
2808 .LFE92:
2810 .section .text.HAL_UART_AbortReceiveCpltCallback,"ax",%progbits
2811 .align 1
2812 .weak HAL_UART_AbortReceiveCpltCallback
2813 .syntax unified
2814 .code 16
2815 .thumb_func
2816 .fpu softvfp
2818 HAL_UART_AbortReceiveCpltCallback:
2819 .LFB69:
1882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */
2820 .loc 1 1882 0
2821 .cfi_startproc
2822 @ args = 0, pretend = 0, frame = 0
2823 @ frame_needed = 0, uses_anonymous_args = 0
2824 @ link register save eliminated.
2825 .LVL220:
1889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 105
2826 .loc 1 1889 0
2827 @ sp needed
2828 0000 7047 bx lr
2829 .cfi_endproc
2830 .LFE69:
2832 .section .text.HAL_UART_AbortReceive_IT,"ax",%progbits
2833 .align 1
2834 .global HAL_UART_AbortReceive_IT
2835 .syntax unified
2836 .code 16
2837 .thumb_func
2838 .fpu softvfp
2840 HAL_UART_AbortReceive_IT:
2841 .LFB60:
1562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
2842 .loc 1 1562 0
2843 .cfi_startproc
2844 @ args = 0, pretend = 0, frame = 0
2845 @ frame_needed = 0, uses_anonymous_args = 0
2846 .LVL221:
2847 0000 10B5 push {r4, lr}
2848 .LCFI22:
2849 .cfi_def_cfa_offset 8
2850 .cfi_offset 4, -8
2851 .cfi_offset 14, -4
2852 0002 0400 movs r4, r0
1564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
2853 .loc 1 1564 0
2854 0004 0268 ldr r2, [r0]
2855 0006 1368 ldr r3, [r2]
2856 0008 1B49 ldr r1, .L188
2857 000a 0B40 ands r3, r1
2858 000c 1360 str r3, [r2]
1565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2859 .loc 1 1565 0
2860 000e 0268 ldr r2, [r0]
2861 0010 9368 ldr r3, [r2, #8]
2862 0012 2331 adds r1, r1, #35
2863 0014 FF31 adds r1, r1, #255
2864 0016 8B43 bics r3, r1
2865 0018 9360 str r3, [r2, #8]
1568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2866 .loc 1 1568 0
2867 001a 0368 ldr r3, [r0]
2868 001c 9A68 ldr r2, [r3, #8]
2869 001e 5206 lsls r2, r2, #25
2870 0020 1ED5 bpl .L185
1570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2871 .loc 1 1570 0
2872 0022 9A68 ldr r2, [r3, #8]
2873 0024 3F31 adds r1, r1, #63
2874 0026 8A43 bics r2, r1
2875 0028 9A60 str r2, [r3, #8]
1573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2876 .loc 1 1573 0
2877 002a 436E ldr r3, [r0, #100]
2878 002c 002B cmp r3, #0
ARM GAS /tmp/cc7An1gz.s page 106
2879 002e 0BD0 beq .L186
1577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2880 .loc 1 1577 0
2881 0030 124A ldr r2, .L188+4
2882 0032 9A63 str r2, [r3, #56]
1580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
2883 .loc 1 1580 0
2884 0034 406E ldr r0, [r0, #100]
2885 .LVL222:
2886 0036 FFF7FEFF bl HAL_DMA_Abort_IT
2887 .LVL223:
2888 003a 0028 cmp r0, #0
2889 003c 02D0 beq .L187
1583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2890 .loc 1 1583 0
2891 003e 606E ldr r0, [r4, #100]
2892 0040 836B ldr r3, [r0, #56]
2893 0042 9847 blx r3
2894 .LVL224:
2895 .L187:
1617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2896 .loc 1 1617 0
2897 0044 0020 movs r0, #0
2898 @ sp needed
2899 .LVL225:
2900 0046 10BD pop {r4, pc}
2901 .LVL226:
2902 .L186:
1589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2903 .loc 1 1589 0
2904 0048 5A23 movs r3, #90
2905 004a 0022 movs r2, #0
2906 004c C252 strh r2, [r0, r3]
1592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2907 .loc 1 1592 0
2908 004e 0368 ldr r3, [r0]
2909 0050 0F32 adds r2, r2, #15
2910 0052 1A62 str r2, [r3, #32]
1595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2911 .loc 1 1595 0
2912 0054 6A23 movs r3, #106
2913 0056 1132 adds r2, r2, #17
2914 0058 C254 strb r2, [r0, r3]
1598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2915 .loc 1 1598 0
2916 005a FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback
2917 .LVL227:
2918 005e F1E7 b .L187
2919 .LVL228:
2920 .L185:
1604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2921 .loc 1 1604 0
2922 0060 5A22 movs r2, #90
2923 0062 0021 movs r1, #0
2924 0064 8152 strh r1, [r0, r2]
1607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2925 .loc 1 1607 0
ARM GAS /tmp/cc7An1gz.s page 107
2926 0066 4B3A subs r2, r2, #75
2927 0068 1A62 str r2, [r3, #32]
1610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2928 .loc 1 1610 0
2929 006a 6A23 movs r3, #106
2930 006c 1132 adds r2, r2, #17
2931 006e C254 strb r2, [r0, r3]
1613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2932 .loc 1 1613 0
2933 0070 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback
2934 .LVL229:
2935 0074 E6E7 b .L187
2936 .L189:
2937 0076 C046 .align 2
2938 .L188:
2939 0078 DFFEFFFF .word -289
2940 007c 00000000 .word UART_DMARxOnlyAbortCallback
2941 .cfi_endproc
2942 .LFE60:
2944 .section .text.UART_DMARxOnlyAbortCallback,"ax",%progbits
2945 .align 1
2946 .syntax unified
2947 .code 16
2948 .thumb_func
2949 .fpu softvfp
2951 UART_DMARxOnlyAbortCallback:
2952 .LFB93:
2724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** UART_HandleTypeDef* huart = ( UART_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
2953 .loc 1 2724 0
2954 .cfi_startproc
2955 @ args = 0, pretend = 0, frame = 0
2956 @ frame_needed = 0, uses_anonymous_args = 0
2957 .LVL230:
2958 0000 10B5 push {r4, lr}
2959 .LCFI23:
2960 .cfi_def_cfa_offset 8
2961 .cfi_offset 4, -8
2962 .cfi_offset 14, -4
2725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2963 .loc 1 2725 0
2964 0002 806A ldr r0, [r0, #40]
2965 .LVL231:
2727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2966 .loc 1 2727 0
2967 0004 5A23 movs r3, #90
2968 0006 0022 movs r2, #0
2969 0008 C252 strh r2, [r0, r3]
2730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2970 .loc 1 2730 0
2971 000a 0368 ldr r3, [r0]
2972 000c 0F32 adds r2, r2, #15
2973 000e 1A62 str r2, [r3, #32]
2733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2974 .loc 1 2733 0
2975 0010 6A23 movs r3, #106
2976 0012 1132 adds r2, r2, #17
2977 0014 C254 strb r2, [r0, r3]
ARM GAS /tmp/cc7An1gz.s page 108
2736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
2978 .loc 1 2736 0
2979 0016 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback
2980 .LVL232:
2737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
2981 .loc 1 2737 0
2982 @ sp needed
2983 001a 10BD pop {r4, pc}
2984 .cfi_endproc
2985 .LFE93:
2987 .section .text.HAL_MultiProcessor_EnterMuteMode,"ax",%progbits
2988 .align 1
2989 .global HAL_MultiProcessor_EnterMuteMode
2990 .syntax unified
2991 .code 16
2992 .thumb_func
2993 .fpu softvfp
2995 HAL_MultiProcessor_EnterMuteMode:
2996 .LFB72:
1966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST);
2997 .loc 1 1966 0
2998 .cfi_startproc
2999 @ args = 0, pretend = 0, frame = 0
3000 @ frame_needed = 0, uses_anonymous_args = 0
3001 @ link register save eliminated.
3002 .LVL233:
1967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3003 .loc 1 1967 0
3004 0000 0268 ldr r2, [r0]
3005 0002 9369 ldr r3, [r2, #24]
3006 0004 0421 movs r1, #4
3007 0006 0B43 orrs r3, r1
3008 0008 9361 str r3, [r2, #24]
1968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3009 .loc 1 1968 0
3010 @ sp needed
3011 000a 7047 bx lr
3012 .cfi_endproc
3013 .LFE72:
3015 .section .text.HAL_HalfDuplex_EnableTransmitter,"ax",%progbits
3016 .align 1
3017 .global HAL_HalfDuplex_EnableTransmitter
3018 .syntax unified
3019 .code 16
3020 .thumb_func
3021 .fpu softvfp
3023 HAL_HalfDuplex_EnableTransmitter:
3024 .LFB73:
1976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
3025 .loc 1 1976 0
3026 .cfi_startproc
3027 @ args = 0, pretend = 0, frame = 0
3028 @ frame_needed = 0, uses_anonymous_args = 0
3029 .LVL234:
3030 0000 30B5 push {r4, r5, lr}
3031 .LCFI24:
3032 .cfi_def_cfa_offset 12
ARM GAS /tmp/cc7An1gz.s page 109
3033 .cfi_offset 4, -12
3034 .cfi_offset 5, -8
3035 .cfi_offset 14, -4
1978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
3036 .loc 1 1978 0
3037 0002 6823 movs r3, #104
3038 0004 C35C ldrb r3, [r0, r3]
3039 0006 012B cmp r3, #1
3040 0008 15D0 beq .L194
1978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
3041 .loc 1 1978 0 is_stmt 0 discriminator 2
3042 000a 6822 movs r2, #104
3043 000c 0123 movs r3, #1
3044 000e 8354 strb r3, [r0, r2]
1979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3045 .loc 1 1979 0 is_stmt 1 discriminator 2
3046 0010 6921 movs r1, #105
3047 0012 2333 adds r3, r3, #35
3048 0014 4354 strb r3, [r0, r1]
1982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the USART's transmit interface by setting the TE bit in the USART CR1 register */
3049 .loc 1 1982 0 discriminator 2
3050 0016 0468 ldr r4, [r0]
3051 0018 2368 ldr r3, [r4]
3052 001a 0C25 movs r5, #12
3053 001c AB43 bics r3, r5
3054 001e 2360 str r3, [r4]
1984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3055 .loc 1 1984 0 discriminator 2
3056 0020 0468 ldr r4, [r0]
3057 0022 2368 ldr r3, [r4]
3058 0024 043D subs r5, r5, #4
3059 0026 2B43 orrs r3, r5
3060 0028 2360 str r3, [r4]
1986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3061 .loc 1 1986 0 discriminator 2
3062 002a 2023 movs r3, #32
3063 002c 4354 strb r3, [r0, r1]
1989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3064 .loc 1 1989 0 discriminator 2
3065 002e 0023 movs r3, #0
3066 0030 8354 strb r3, [r0, r2]
1991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3067 .loc 1 1991 0 discriminator 2
3068 0032 0020 movs r0, #0
3069 .LVL235:
3070 .L193:
1992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3071 .loc 1 1992 0
3072 @ sp needed
3073 0034 30BD pop {r4, r5, pc}
3074 .LVL236:
3075 .L194:
1978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
3076 .loc 1 1978 0
3077 0036 0220 movs r0, #2
3078 .LVL237:
3079 0038 FCE7 b .L193
ARM GAS /tmp/cc7An1gz.s page 110
3080 .cfi_endproc
3081 .LFE73:
3083 .section .text.HAL_HalfDuplex_EnableReceiver,"ax",%progbits
3084 .align 1
3085 .global HAL_HalfDuplex_EnableReceiver
3086 .syntax unified
3087 .code 16
3088 .thumb_func
3089 .fpu softvfp
3091 HAL_HalfDuplex_EnableReceiver:
3092 .LFB74:
2000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
3093 .loc 1 2000 0
3094 .cfi_startproc
3095 @ args = 0, pretend = 0, frame = 0
3096 @ frame_needed = 0, uses_anonymous_args = 0
3097 .LVL238:
3098 0000 30B5 push {r4, r5, lr}
3099 .LCFI25:
3100 .cfi_def_cfa_offset 12
3101 .cfi_offset 4, -12
3102 .cfi_offset 5, -8
3103 .cfi_offset 14, -4
2002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
3104 .loc 1 2002 0
3105 0002 6823 movs r3, #104
3106 0004 C35C ldrb r3, [r0, r3]
3107 0006 012B cmp r3, #1
3108 0008 15D0 beq .L197
2002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
3109 .loc 1 2002 0 is_stmt 0 discriminator 2
3110 000a 6822 movs r2, #104
3111 000c 0123 movs r3, #1
3112 000e 8354 strb r3, [r0, r2]
2003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3113 .loc 1 2003 0 is_stmt 1 discriminator 2
3114 0010 6921 movs r1, #105
3115 0012 2333 adds r3, r3, #35
3116 0014 4354 strb r3, [r0, r1]
2006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Enable the USART's receive interface by setting the RE bit in the USART CR1 register */
3117 .loc 1 2006 0 discriminator 2
3118 0016 0468 ldr r4, [r0]
3119 0018 2368 ldr r3, [r4]
3120 001a 0C25 movs r5, #12
3121 001c AB43 bics r3, r5
3122 001e 2360 str r3, [r4]
2008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3123 .loc 1 2008 0 discriminator 2
3124 0020 0468 ldr r4, [r0]
3125 0022 2368 ldr r3, [r4]
3126 0024 083D subs r5, r5, #8
3127 0026 2B43 orrs r3, r5
3128 0028 2360 str r3, [r4]
2010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Unlocked */
3129 .loc 1 2010 0 discriminator 2
3130 002a 2023 movs r3, #32
3131 002c 4354 strb r3, [r0, r1]
ARM GAS /tmp/cc7An1gz.s page 111
2012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3132 .loc 1 2012 0 discriminator 2
3133 002e 0023 movs r3, #0
3134 0030 8354 strb r3, [r0, r2]
2014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3135 .loc 1 2014 0 discriminator 2
3136 0032 0020 movs r0, #0
3137 .LVL239:
3138 .L196:
2015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3139 .loc 1 2015 0
3140 @ sp needed
3141 0034 30BD pop {r4, r5, pc}
3142 .LVL240:
3143 .L197:
2002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY;
3144 .loc 1 2002 0
3145 0036 0220 movs r0, #2
3146 .LVL241:
3147 0038 FCE7 b .L196
3148 .cfi_endproc
3149 .LFE74:
3151 .section .text.HAL_LIN_SendBreak,"ax",%progbits
3152 .align 1
3153 .global HAL_LIN_SendBreak
3154 .syntax unified
3155 .code 16
3156 .thumb_func
3157 .fpu softvfp
3159 HAL_LIN_SendBreak:
3160 .LFB75:
2024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the parameters */
3161 .loc 1 2024 0
3162 .cfi_startproc
3163 @ args = 0, pretend = 0, frame = 0
3164 @ frame_needed = 0, uses_anonymous_args = 0
3165 .LVL242:
3166 0000 30B5 push {r4, r5, lr}
3167 .LCFI26:
3168 .cfi_def_cfa_offset 12
3169 .cfi_offset 4, -12
3170 .cfi_offset 5, -8
3171 .cfi_offset 14, -4
2029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3172 .loc 1 2029 0
3173 0002 6823 movs r3, #104
3174 0004 C35C ldrb r3, [r0, r3]
3175 0006 012B cmp r3, #1
3176 0008 10D0 beq .L200
2029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3177 .loc 1 2029 0 is_stmt 0 discriminator 2
3178 000a 6822 movs r2, #104
3179 000c 0123 movs r3, #1
3180 000e 8354 strb r3, [r0, r2]
2031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3181 .loc 1 2031 0 is_stmt 1 discriminator 2
3182 0010 6921 movs r1, #105
ARM GAS /tmp/cc7An1gz.s page 112
3183 0012 2333 adds r3, r3, #35
3184 0014 4354 strb r3, [r0, r1]
2034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3185 .loc 1 2034 0 discriminator 2
3186 0016 0468 ldr r4, [r0]
3187 0018 A369 ldr r3, [r4, #24]
3188 001a 0225 movs r5, #2
3189 001c 2B43 orrs r3, r5
3190 001e A361 str r3, [r4, #24]
2036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3191 .loc 1 2036 0 discriminator 2
3192 0020 2023 movs r3, #32
3193 0022 4354 strb r3, [r0, r1]
2039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3194 .loc 1 2039 0 discriminator 2
3195 0024 0023 movs r3, #0
3196 0026 8354 strb r3, [r0, r2]
2041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3197 .loc 1 2041 0 discriminator 2
3198 0028 0020 movs r0, #0
3199 .LVL243:
3200 .L199:
2042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3201 .loc 1 2042 0
3202 @ sp needed
3203 002a 30BD pop {r4, r5, pc}
3204 .LVL244:
3205 .L200:
2029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3206 .loc 1 2029 0
3207 002c 0220 movs r0, #2
3208 .LVL245:
3209 002e FCE7 b .L199
3210 .cfi_endproc
3211 .LFE75:
3213 .section .text.HAL_UART_GetState,"ax",%progbits
3214 .align 1
3215 .global HAL_UART_GetState
3216 .syntax unified
3217 .code 16
3218 .thumb_func
3219 .fpu softvfp
3221 HAL_UART_GetState:
3222 .LFB76:
2072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t temp1= 0x00U, temp2 = 0x00U;
3223 .loc 1 2072 0
3224 .cfi_startproc
3225 @ args = 0, pretend = 0, frame = 0
3226 @ frame_needed = 0, uses_anonymous_args = 0
3227 @ link register save eliminated.
3228 .LVL246:
2074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** temp2 = huart->RxState;
3229 .loc 1 2074 0
3230 0000 6923 movs r3, #105
3231 0002 C35C ldrb r3, [r0, r3]
3232 .LVL247:
2075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 113
3233 .loc 1 2075 0
3234 0004 6A22 movs r2, #106
3235 0006 805C ldrb r0, [r0, r2]
3236 .LVL248:
2077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3237 .loc 1 2077 0
3238 0008 1843 orrs r0, r3
3239 .LVL249:
2078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3240 .loc 1 2078 0
3241 @ sp needed
3242 000a 7047 bx lr
3243 .cfi_endproc
3244 .LFE76:
3246 .section .text.HAL_UART_GetError,"ax",%progbits
3247 .align 1
3248 .global HAL_UART_GetError
3249 .syntax unified
3250 .code 16
3251 .thumb_func
3252 .fpu softvfp
3254 HAL_UART_GetError:
3255 .LFB77:
2087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return huart->ErrorCode;
3256 .loc 1 2087 0
3257 .cfi_startproc
3258 @ args = 0, pretend = 0, frame = 0
3259 @ frame_needed = 0, uses_anonymous_args = 0
3260 @ link register save eliminated.
3261 .LVL250:
2088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3262 .loc 1 2088 0
3263 0000 C06E ldr r0, [r0, #108]
3264 .LVL251:
2089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /**
3265 .loc 1 2089 0
3266 @ sp needed
3267 0002 7047 bx lr
3268 .cfi_endproc
3269 .LFE77:
3271 .global __aeabi_uldivmod
3272 .global __aeabi_uidiv
3273 .section .text.UART_SetConfig,"ax",%progbits
3274 .align 1
3275 .global UART_SetConfig
3276 .syntax unified
3277 .code 16
3278 .thumb_func
3279 .fpu softvfp
3281 UART_SetConfig:
3282 .LFB78:
2108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t tmpreg = 0x00000000U;
3283 .loc 1 2108 0
3284 .cfi_startproc
3285 @ args = 0, pretend = 0, frame = 0
3286 @ frame_needed = 0, uses_anonymous_args = 0
3287 .LVL252:
ARM GAS /tmp/cc7An1gz.s page 114
3288 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
3289 .LCFI27:
3290 .cfi_def_cfa_offset 24
3291 .cfi_offset 3, -24
3292 .cfi_offset 4, -20
3293 .cfi_offset 5, -16
3294 .cfi_offset 6, -12
3295 .cfi_offset 7, -8
3296 .cfi_offset 14, -4
3297 0002 0400 movs r4, r0
3298 .LVL253:
2118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3299 .loc 1 2118 0
3300 0004 0168 ldr r1, [r0]
2141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, UART_CR1_FIELDS, tmpreg);
3301 .loc 1 2141 0
3302 0006 8368 ldr r3, [r0, #8]
3303 0008 0269 ldr r2, [r0, #16]
3304 000a 1343 orrs r3, r2
3305 000c 4269 ldr r2, [r0, #20]
3306 000e 1343 orrs r3, r2
3307 0010 C269 ldr r2, [r0, #28]
3308 0012 1343 orrs r3, r2
3309 .LVL254:
2142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3310 .loc 1 2142 0
3311 0014 0A68 ldr r2, [r1]
3312 0016 BE48 ldr r0, .L271
3313 .LVL255:
3314 0018 0240 ands r2, r0
3315 001a 1343 orrs r3, r2
3316 .LVL256:
3317 001c 0B60 str r3, [r1]
3318 .LVL257:
2147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3319 .loc 1 2147 0
3320 001e 2268 ldr r2, [r4]
3321 0020 5368 ldr r3, [r2, #4]
3322 0022 BC49 ldr r1, .L271+4
3323 0024 0B40 ands r3, r1
3324 0026 E168 ldr r1, [r4, #12]
3325 0028 0B43 orrs r3, r1
3326 002a 5360 str r3, [r2, #4]
2155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if (!(UART_INSTANCE_LOWPOWER(huart)))
3327 .loc 1 2155 0
3328 002c A169 ldr r1, [r4, #24]
3329 .LVL258:
2156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3330 .loc 1 2156 0
3331 002e 2268 ldr r2, [r4]
3332 0030 B94B ldr r3, .L271+8
3333 0032 9A42 cmp r2, r3
3334 0034 01D0 beq .L204
2158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3335 .loc 1 2158 0
3336 0036 236A ldr r3, [r4, #32]
3337 0038 1943 orrs r1, r3
ARM GAS /tmp/cc7An1gz.s page 115
3338 .LVL259:
3339 .L204:
2160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3340 .loc 1 2160 0
3341 003a 9368 ldr r3, [r2, #8]
3342 003c B748 ldr r0, .L271+12
3343 003e 0340 ands r3, r0
3344 0040 0B43 orrs r3, r1
3345 0042 9360 str r3, [r2, #8]
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3346 .loc 1 2163 0
3347 0044 2368 ldr r3, [r4]
3348 0046 B64A ldr r2, .L271+16
3349 0048 9342 cmp r3, r2
3350 004a 20D0 beq .L262
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3351 .loc 1 2163 0 is_stmt 0 discriminator 2
3352 004c B54A ldr r2, .L271+20
3353 004e 9342 cmp r3, r2
3354 0050 31D0 beq .L263
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3355 .loc 1 2163 0 discriminator 14
3356 0052 B54A ldr r2, .L271+24
3357 0054 9342 cmp r3, r2
3358 0056 63D0 beq .L248
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3359 .loc 1 2163 0 discriminator 26
3360 0058 B44A ldr r2, .L271+28
3361 005a 9342 cmp r3, r2
3362 005c 62D0 beq .L249
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3363 .loc 1 2163 0 discriminator 28
3364 005e AE4A ldr r2, .L271+8
3365 0060 9342 cmp r3, r2
3366 0062 3DD0 beq .L264
2110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t brrtemp = 0x0000U;
3367 .loc 1 2110 0 is_stmt 1
3368 0064 1025 movs r5, #16
3369 .LVL260:
3370 .L209:
2164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3371 .loc 1 2164 0
3372 0066 0220 movs r0, #2
3373 0068 FFF7FEFF bl HAL_RCCEx_GetPeriphCLKFreq
3374 .LVL261:
2167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3375 .loc 1 2167 0
3376 006c 2668 ldr r6, [r4]
3377 006e AA4B ldr r3, .L271+8
3378 0070 9E42 cmp r6, r3
3379 0072 5BD0 beq .L265
2224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3380 .loc 1 2224 0
3381 0074 8023 movs r3, #128
3382 0076 1B02 lsls r3, r3, #8
3383 0078 E269 ldr r2, [r4, #28]
3384 007a 9A42 cmp r2, r3
ARM GAS /tmp/cc7An1gz.s page 116
3385 007c 00D1 bne .LCB2994
3386 007e 90E0 b .L266 @long jump
3387 .LCB2994:
2262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3388 .loc 1 2262 0
3389 0080 082D cmp r5, #8
3390 0082 00D9 bls .LCB2996
3391 0084 66E1 b .L260 @long jump
3392 .LCB2996:
3393 0086 AD00 lsls r5, r5, #2
3394 .LVL262:
3395 0088 A94B ldr r3, .L271+32
3396 008a 5B59 ldr r3, [r3, r5]
3397 008c 9F46 mov pc, r3
3398 .section .rodata.UART_SetConfig,"a",%progbits
3399 .align 2
3400 .L240:
3401 0000 56020000 .word .L239
3402 0004 72020000 .word .L241
3403 0008 8E020000 .word .L242
3404 000c 54030000 .word .L260
3405 0010 C6020000 .word .L243
3406 0014 54030000 .word .L260
3407 0018 54030000 .word .L260
3408 001c 54030000 .word .L260
3409 0020 E2020000 .word .L244
3410 .section .text.UART_SetConfig
3411 .LVL263:
3412 .L262:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3413 .loc 1 2163 0 discriminator 1
3414 008e A94B ldr r3, .L271+36
3415 0090 DA6C ldr r2, [r3, #76]
3416 0092 0323 movs r3, #3
3417 0094 1340 ands r3, r2
3418 0096 012B cmp r3, #1
3419 0098 09D0 beq .L207
3420 009a 002B cmp r3, #0
3421 009c 05D0 beq .L208
3422 009e 022B cmp r3, #2
3423 00a0 3AD0 beq .L246
3424 00a2 032B cmp r3, #3
3425 00a4 05D0 beq .L210
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3426 .loc 1 2163 0 is_stmt 0 discriminator 3
3427 00a6 1025 movs r5, #16
3428 00a8 DDE7 b .L209
3429 .L208:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3430 .loc 1 2163 0
3431 00aa 0125 movs r5, #1
3432 00ac DBE7 b .L209
3433 .L207:
3434 .LVL264:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3435 .loc 1 2163 0 discriminator 5
3436 00ae 0425 movs r5, #4
ARM GAS /tmp/cc7An1gz.s page 117
3437 00b0 D9E7 b .L209
3438 .LVL265:
3439 .L210:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3440 .loc 1 2163 0 discriminator 7
3441 00b2 0825 movs r5, #8
3442 00b4 D7E7 b .L209
3443 .LVL266:
3444 .L263:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3445 .loc 1 2163 0 discriminator 13
3446 00b6 9F4B ldr r3, .L271+36
3447 00b8 DA6C ldr r2, [r3, #76]
3448 00ba 0C23 movs r3, #12
3449 00bc 1340 ands r3, r2
3450 00be 042B cmp r3, #4
3451 00c0 0AD0 beq .L213
3452 00c2 05D9 bls .L267
3453 00c4 082B cmp r3, #8
3454 00c6 29D0 beq .L247
3455 00c8 0C2B cmp r3, #12
3456 00ca 07D1 bne .L212
3457 .LVL267:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3458 .loc 1 2163 0 discriminator 19
3459 00cc 0825 movs r5, #8
3460 00ce CAE7 b .L209
3461 .LVL268:
3462 .L267:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3463 .loc 1 2163 0 discriminator 13
3464 00d0 002B cmp r3, #0
3465 00d2 03D1 bne .L212
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3466 .loc 1 2163 0
3467 00d4 0025 movs r5, #0
3468 00d6 C6E7 b .L209
3469 .L213:
3470 .LVL269:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3471 .loc 1 2163 0 discriminator 17
3472 00d8 0425 movs r5, #4
3473 00da C4E7 b .L209
3474 .LVL270:
3475 .L212:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3476 .loc 1 2163 0 discriminator 15
3477 00dc 1025 movs r5, #16
3478 00de C2E7 b .L209
3479 .L264:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3480 .loc 1 2163 0 discriminator 29
3481 00e0 944B ldr r3, .L271+36
3482 00e2 DB6C ldr r3, [r3, #76]
3483 00e4 C022 movs r2, #192
3484 00e6 1201 lsls r2, r2, #4
3485 00e8 1340 ands r3, r2
ARM GAS /tmp/cc7An1gz.s page 118
3486 00ea 8022 movs r2, #128
3487 00ec D200 lsls r2, r2, #3
3488 00ee 9342 cmp r3, r2
3489 00f0 0ED0 beq .L218
3490 00f2 09D9 bls .L268
3491 00f4 8022 movs r2, #128
3492 00f6 1201 lsls r2, r2, #4
3493 00f8 9342 cmp r3, r2
3494 00fa 15D0 beq .L251
3495 00fc C022 movs r2, #192
3496 00fe 1201 lsls r2, r2, #4
3497 0100 9342 cmp r3, r2
3498 0102 07D1 bne .L217
3499 .LVL271:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3500 .loc 1 2163 0 discriminator 34
3501 0104 0825 movs r5, #8
3502 0106 AEE7 b .L209
3503 .LVL272:
3504 .L268:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3505 .loc 1 2163 0 discriminator 29
3506 0108 002B cmp r3, #0
3507 010a 03D1 bne .L217
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3508 .loc 1 2163 0
3509 010c 0025 movs r5, #0
3510 010e AAE7 b .L209
3511 .L218:
3512 .LVL273:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3513 .loc 1 2163 0 discriminator 32
3514 0110 0425 movs r5, #4
3515 0112 A8E7 b .L209
3516 .LVL274:
3517 .L217:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3518 .loc 1 2163 0 discriminator 30
3519 0114 1025 movs r5, #16
3520 0116 A6E7 b .L209
3521 .L246:
2163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t frequency = HAL_RCCEx_GetPeriphCLKFreq(RCC_PERIPHCLK_USART2);
3522 .loc 1 2163 0
3523 0118 0225 movs r5, #2
3524 011a A4E7 b .L209
3525 .L247:
3526 011c 0225 movs r5, #2
3527 011e A2E7 b .L209
3528 .L248:
3529 0120 0025 movs r5, #0
3530 0122 A0E7 b .L209
3531 .L249:
3532 0124 0025 movs r5, #0
3533 0126 9EE7 b .L209
3534 .L251:
3535 0128 0225 movs r5, #2
3536 012a 9CE7 b .L209
ARM GAS /tmp/cc7An1gz.s page 119
3537 .LVL275:
3538 .L265:
2172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3539 .loc 1 2172 0 is_stmt 1
3540 012c 022D cmp r5, #2
3541 012e 2DD0 beq .L224
3542 0130 07D9 bls .L269
3543 0132 042D cmp r5, #4
3544 0134 30D0 beq .L227
3545 0136 082D cmp r5, #8
3546 0138 00D0 beq .LCB3172
3547 013a DFE0 b .L252 @long jump
3548 .LCB3172:
2191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3549 .loc 1 2191 0
3550 013c 8020 movs r0, #128
3551 .LVL276:
3552 013e 0002 lsls r0, r0, #8
3553 0140 07E0 b .L228
3554 .LVL277:
3555 .L269:
2172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3556 .loc 1 2172 0
3557 0142 002D cmp r5, #0
3558 0144 00D0 beq .LCB3182
3559 0146 D9E0 b .L252 @long jump
3560 .LCB3182:
2175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3561 .loc 1 2175 0
3562 0148 FFF7FEFF bl HAL_RCC_GetPCLK1Freq
3563 .LVL278:
3564 .L229:
2200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3565 .loc 1 2200 0
3566 014c 0028 cmp r0, #0
3567 014e 00D1 bne .LCB3193
3568 0150 D6E0 b .L270 @long jump
3569 .LCB3193:
3570 .LVL279:
3571 .L228:
2203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (tmpreg > (4096 * huart->Init.BaudRate) ))
3572 .loc 1 2203 0
3573 0152 6268 ldr r2, [r4, #4]
3574 0154 5300 lsls r3, r2, #1
3575 0156 9B18 adds r3, r3, r2
3576 0158 8342 cmp r3, r0
3577 015a 00D9 bls .LCB3200
3578 015c D2E0 b .L256 @long jump
3579 .LCB3200:
2204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3580 .loc 1 2204 0 discriminator 1
3581 015e 1303 lsls r3, r2, #12
2203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** (tmpreg > (4096 * huart->Init.BaudRate) ))
3582 .loc 1 2203 0 discriminator 1
3583 0160 8342 cmp r3, r0
3584 0162 00D2 bcs .LCB3203
3585 0164 D0E0 b .L257 @long jump
ARM GAS /tmp/cc7An1gz.s page 120
3586 .LCB3203:
2210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3587 .loc 1 2210 0
3588 0166 070E lsrs r7, r0, #24
3589 0168 0602 lsls r6, r0, #8
3590 016a 5008 lsrs r0, r2, #1
3591 016c 0021 movs r1, #0
3592 016e 8019 adds r0, r0, r6
3593 0170 7941 adcs r1, r1, r7
3594 0172 0023 movs r3, #0
3595 0174 FFF7FEFF bl __aeabi_uldivmod
3596 .LVL280:
2212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3597 .loc 1 2212 0
3598 0178 6F4B ldr r3, .L271+40
3599 017a C218 adds r2, r0, r3
3600 017c 6F4B ldr r3, .L271+44
3601 017e 9A42 cmp r2, r3
3602 0180 00D9 bls .LCB3220
3603 0182 C3E0 b .L258 @long jump
3604 .LCB3220:
2214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3605 .loc 1 2214 0
3606 0184 2368 ldr r3, [r4]
3607 0186 D860 str r0, [r3, #12]
3608 0188 0020 movs r0, #0
3609 .LVL281:
3610 018a 22E0 b .L223
3611 .LVL282:
3612 .L224:
2178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3613 .loc 1 2178 0
3614 018c 694B ldr r3, .L271+36
3615 018e 1B68 ldr r3, [r3]
3616 0190 DB06 lsls r3, r3, #27
3617 0192 04D4 bmi .L254
2184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3618 .loc 1 2184 0
3619 0194 6A48 ldr r0, .L271+48
3620 .LVL283:
3621 0196 DCE7 b .L228
3622 .LVL284:
3623 .L227:
2188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3624 .loc 1 2188 0
3625 0198 FFF7FEFF bl HAL_RCC_GetSysClockFreq
3626 .LVL285:
2189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE:
3627 .loc 1 2189 0
3628 019c D6E7 b .L229
3629 .LVL286:
3630 .L254:
2180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3631 .loc 1 2180 0
3632 019e 6948 ldr r0, .L271+52
3633 .LVL287:
3634 01a0 D7E7 b .L228
ARM GAS /tmp/cc7An1gz.s page 121
3635 .LVL288:
3636 .L266:
2226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3637 .loc 1 2226 0
3638 01a2 082D cmp r5, #8
3639 01a4 54D8 bhi .L259
3640 01a6 AD00 lsls r5, r5, #2
3641 .LVL289:
3642 01a8 674B ldr r3, .L271+56
3643 01aa 5B59 ldr r3, [r3, r5]
3644 01ac 9F46 mov pc, r3
3645 .section .rodata.UART_SetConfig
3646 .align 2
3647 .L233:
3648 0024 AE010000 .word .L232
3649 0028 D4010000 .word .L234
3650 002c EC010000 .word .L235
3651 0030 50020000 .word .L259
3652 0034 20020000 .word .L236
3653 0038 50020000 .word .L259
3654 003c 50020000 .word .L259
3655 0040 50020000 .word .L259
3656 0044 38020000 .word .L237
3657 .section .text.UART_SetConfig
3658 .L232:
2229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3659 .loc 1 2229 0
3660 01ae 4000 lsls r0, r0, #1
3661 .LVL290:
3662 01b0 6368 ldr r3, [r4, #4]
3663 01b2 5B08 lsrs r3, r3, #1
3664 01b4 C018 adds r0, r0, r3
3665 01b6 6168 ldr r1, [r4, #4]
3666 01b8 FFF7FEFF bl __aeabi_uidiv
3667 .LVL291:
3668 01bc 83B2 uxth r3, r0
3669 .LVL292:
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3670 .loc 1 2113 0
3671 01be 0020 movs r0, #0
3672 .LVL293:
3673 .L231:
2256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** brrtemp |= (uint16_t)((uint16_t)(usartdiv & (uint16_t)0x000FU) >> (uint16_t)1U);
3674 .loc 1 2256 0
3675 01c0 0F22 movs r2, #15
3676 01c2 1900 movs r1, r3
3677 01c4 9143 bics r1, r2
3678 .LVL294:
2257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->Instance->BRR = brrtemp;
3679 .loc 1 2257 0
3680 01c6 5B10 asrs r3, r3, #1
3681 .LVL295:
3682 01c8 083A subs r2, r2, #8
3683 01ca 1340 ands r3, r2
3684 01cc 0B43 orrs r3, r1
3685 .LVL296:
2258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
ARM GAS /tmp/cc7An1gz.s page 122
3686 .loc 1 2258 0
3687 01ce 2268 ldr r2, [r4]
3688 01d0 D360 str r3, [r2, #12]
3689 .LVL297:
3690 .L223:
2295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3691 .loc 1 2295 0
3692 @ sp needed
3693 .LVL298:
3694 01d2 F8BD pop {r3, r4, r5, r6, r7, pc}
3695 .LVL299:
3696 .L234:
2232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3697 .loc 1 2232 0
3698 01d4 FFF7FEFF bl HAL_RCC_GetPCLK2Freq
3699 .LVL300:
3700 01d8 4000 lsls r0, r0, #1
3701 01da 6368 ldr r3, [r4, #4]
3702 01dc 5B08 lsrs r3, r3, #1
3703 01de C018 adds r0, r0, r3
3704 01e0 6168 ldr r1, [r4, #4]
3705 01e2 FFF7FEFF bl __aeabi_uidiv
3706 .LVL301:
3707 01e6 83B2 uxth r3, r0
3708 .LVL302:
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3709 .loc 1 2113 0
3710 01e8 0020 movs r0, #0
2233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI:
3711 .loc 1 2233 0
3712 01ea E9E7 b .L231
3713 .LVL303:
3714 .L235:
2235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3715 .loc 1 2235 0
3716 01ec 514B ldr r3, .L271+36
3717 01ee 1B68 ldr r3, [r3]
3718 01f0 DB06 lsls r3, r3, #27
3719 01f2 0AD5 bpl .L238
2237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3720 .loc 1 2237 0
3721 01f4 6368 ldr r3, [r4, #4]
3722 01f6 5808 lsrs r0, r3, #1
3723 .LVL304:
3724 01f8 544B ldr r3, .L271+60
3725 01fa 9C46 mov ip, r3
3726 01fc 6044 add r0, r0, ip
3727 01fe 6168 ldr r1, [r4, #4]
3728 0200 FFF7FEFF bl __aeabi_uidiv
3729 .LVL305:
3730 0204 83B2 uxth r3, r0
3731 .LVL306:
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3732 .loc 1 2113 0
3733 0206 0020 movs r0, #0
3734 0208 DAE7 b .L231
3735 .LVL307:
ARM GAS /tmp/cc7An1gz.s page 123
3736 .L238:
2241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3737 .loc 1 2241 0
3738 020a 6368 ldr r3, [r4, #4]
3739 020c 5808 lsrs r0, r3, #1
3740 .LVL308:
3741 020e 504B ldr r3, .L271+64
3742 0210 9C46 mov ip, r3
3743 0212 6044 add r0, r0, ip
3744 0214 6168 ldr r1, [r4, #4]
3745 0216 FFF7FEFF bl __aeabi_uidiv
3746 .LVL309:
3747 021a 83B2 uxth r3, r0
3748 .LVL310:
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3749 .loc 1 2113 0
3750 021c 0020 movs r0, #0
3751 021e CFE7 b .L231
3752 .LVL311:
3753 .L236:
2245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3754 .loc 1 2245 0
3755 0220 FFF7FEFF bl HAL_RCC_GetSysClockFreq
3756 .LVL312:
3757 0224 4000 lsls r0, r0, #1
3758 0226 6368 ldr r3, [r4, #4]
3759 0228 5B08 lsrs r3, r3, #1
3760 022a C018 adds r0, r0, r3
3761 022c 6168 ldr r1, [r4, #4]
3762 022e FFF7FEFF bl __aeabi_uidiv
3763 .LVL313:
3764 0232 83B2 uxth r3, r0
3765 .LVL314:
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3766 .loc 1 2113 0
3767 0234 0020 movs r0, #0
2246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE:
3768 .loc 1 2246 0
3769 0236 C3E7 b .L231
3770 .LVL315:
3771 .L237:
2248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3772 .loc 1 2248 0
3773 0238 6368 ldr r3, [r4, #4]
3774 023a 5808 lsrs r0, r3, #1
3775 .LVL316:
3776 023c 8023 movs r3, #128
3777 023e 5B02 lsls r3, r3, #9
3778 0240 9C46 mov ip, r3
3779 0242 6044 add r0, r0, ip
3780 0244 6168 ldr r1, [r4, #4]
3781 0246 FFF7FEFF bl __aeabi_uidiv
3782 .LVL317:
3783 024a 83B2 uxth r3, r0
3784 .LVL318:
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3785 .loc 1 2113 0
ARM GAS /tmp/cc7An1gz.s page 124
3786 024c 0020 movs r0, #0
2249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_UNDEFINED:
3787 .loc 1 2249 0
3788 024e B7E7 b .L231
3789 .LVL319:
3790 .L259:
2252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3791 .loc 1 2252 0
3792 0250 0120 movs r0, #1
3793 .LVL320:
2112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** HAL_StatusTypeDef ret = HAL_OK;
3794 .loc 1 2112 0
3795 0252 0023 movs r3, #0
3796 0254 B4E7 b .L231
3797 .LVL321:
3798 .L239:
2265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3799 .loc 1 2265 0
3800 0256 FFF7FEFF bl HAL_RCC_GetPCLK1Freq
3801 .LVL322:
3802 025a 6368 ldr r3, [r4, #4]
3803 025c 5B08 lsrs r3, r3, #1
3804 025e C018 adds r0, r0, r3
3805 0260 6168 ldr r1, [r4, #4]
3806 0262 FFF7FEFF bl __aeabi_uidiv
3807 .LVL323:
3808 0266 2368 ldr r3, [r4]
3809 0268 0004 lsls r0, r0, #16
3810 026a 000C lsrs r0, r0, #16
3811 026c D860 str r0, [r3, #12]
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3812 .loc 1 2113 0
3813 026e 0020 movs r0, #0
2266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_PCLK2:
3814 .loc 1 2266 0
3815 0270 AFE7 b .L223
3816 .LVL324:
3817 .L241:
2268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3818 .loc 1 2268 0
3819 0272 FFF7FEFF bl HAL_RCC_GetPCLK2Freq
3820 .LVL325:
3821 0276 6368 ldr r3, [r4, #4]
3822 0278 5B08 lsrs r3, r3, #1
3823 027a C018 adds r0, r0, r3
3824 027c 6168 ldr r1, [r4, #4]
3825 027e FFF7FEFF bl __aeabi_uidiv
3826 .LVL326:
3827 0282 2368 ldr r3, [r4]
3828 0284 0004 lsls r0, r0, #16
3829 0286 000C lsrs r0, r0, #16
3830 0288 D860 str r0, [r3, #12]
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3831 .loc 1 2113 0
3832 028a 0020 movs r0, #0
2269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_HSI:
3833 .loc 1 2269 0
ARM GAS /tmp/cc7An1gz.s page 125
3834 028c A1E7 b .L223
3835 .LVL327:
3836 .L242:
2271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3837 .loc 1 2271 0
3838 028e 294B ldr r3, .L271+36
3839 0290 1B68 ldr r3, [r3]
3840 0292 DB06 lsls r3, r3, #27
3841 0294 0BD5 bpl .L245
2273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3842 .loc 1 2273 0
3843 0296 6168 ldr r1, [r4, #4]
3844 0298 4808 lsrs r0, r1, #1
3845 .LVL328:
3846 029a 2A4B ldr r3, .L271+52
3847 029c 9C46 mov ip, r3
3848 029e 6044 add r0, r0, ip
3849 02a0 FFF7FEFF bl __aeabi_uidiv
3850 .LVL329:
3851 02a4 0004 lsls r0, r0, #16
3852 02a6 000C lsrs r0, r0, #16
3853 02a8 F060 str r0, [r6, #12]
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3854 .loc 1 2113 0
3855 02aa 0020 movs r0, #0
3856 02ac 91E7 b .L223
3857 .LVL330:
3858 .L245:
2277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3859 .loc 1 2277 0
3860 02ae 6168 ldr r1, [r4, #4]
3861 02b0 4808 lsrs r0, r1, #1
3862 .LVL331:
3863 02b2 234B ldr r3, .L271+48
3864 02b4 9C46 mov ip, r3
3865 02b6 6044 add r0, r0, ip
3866 02b8 FFF7FEFF bl __aeabi_uidiv
3867 .LVL332:
3868 02bc 0004 lsls r0, r0, #16
3869 02be 000C lsrs r0, r0, #16
3870 02c0 F060 str r0, [r6, #12]
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3871 .loc 1 2113 0
3872 02c2 0020 movs r0, #0
3873 02c4 85E7 b .L223
3874 .LVL333:
3875 .L243:
2281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3876 .loc 1 2281 0
3877 02c6 FFF7FEFF bl HAL_RCC_GetSysClockFreq
3878 .LVL334:
3879 02ca 6368 ldr r3, [r4, #4]
3880 02cc 5B08 lsrs r3, r3, #1
3881 02ce C018 adds r0, r0, r3
3882 02d0 6168 ldr r1, [r4, #4]
3883 02d2 FFF7FEFF bl __aeabi_uidiv
3884 .LVL335:
ARM GAS /tmp/cc7An1gz.s page 126
3885 02d6 2368 ldr r3, [r4]
3886 02d8 0004 lsls r0, r0, #16
3887 02da 000C lsrs r0, r0, #16
3888 02dc D860 str r0, [r3, #12]
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3889 .loc 1 2113 0
3890 02de 0020 movs r0, #0
2282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_LSE:
3891 .loc 1 2282 0
3892 02e0 77E7 b .L223
3893 .LVL336:
3894 .L244:
2284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3895 .loc 1 2284 0
3896 02e2 6168 ldr r1, [r4, #4]
3897 02e4 4808 lsrs r0, r1, #1
3898 .LVL337:
3899 02e6 8023 movs r3, #128
3900 02e8 1B02 lsls r3, r3, #8
3901 02ea 9C46 mov ip, r3
3902 02ec 6044 add r0, r0, ip
3903 02ee FFF7FEFF bl __aeabi_uidiv
3904 .LVL338:
3905 02f2 0004 lsls r0, r0, #16
3906 02f4 000C lsrs r0, r0, #16
3907 02f6 F060 str r0, [r6, #12]
2113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
3908 .loc 1 2113 0
3909 02f8 0020 movs r0, #0
2285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** case UART_CLOCKSOURCE_UNDEFINED:
3910 .loc 1 2285 0
3911 02fa 6AE7 b .L223
3912 .LVL339:
3913 .L252:
2195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3914 .loc 1 2195 0
3915 02fc 0120 movs r0, #1
3916 .LVL340:
3917 02fe 68E7 b .L223
3918 .LVL341:
3919 .L270:
3920 0300 0020 movs r0, #0
3921 .LVL342:
3922 0302 66E7 b .L223
3923 .L256:
2206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3924 .loc 1 2206 0
3925 0304 0120 movs r0, #1
3926 0306 64E7 b .L223
3927 .L257:
3928 0308 0120 movs r0, #1
3929 030a 62E7 b .L223
3930 .LVL343:
3931 .L258:
2218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3932 .loc 1 2218 0
3933 030c 0120 movs r0, #1
ARM GAS /tmp/cc7An1gz.s page 127
3934 .LVL344:
3935 030e 60E7 b .L223
3936 .L272:
3937 .align 2
3938 .L271:
3939 0310 F369FFEF .word -268473869
3940 0314 FFCFFFFF .word -12289
3941 0318 00480040 .word 1073760256
3942 031c FFF4FFFF .word -2817
3943 0320 00380140 .word 1073821696
3944 0324 00440040 .word 1073759232
3945 0328 004C0040 .word 1073761280
3946 032c 00500040 .word 1073762304
3947 0330 00000000 .word .L240
3948 0334 00100240 .word 1073876992
3949 0338 00FDFFFF .word -768
3950 033c FFFC0F00 .word 1047807
3951 0340 0024F400 .word 16000000
3952 0344 00093D00 .word 4000000
3953 0348 24000000 .word .L233
3954 034c 00127A00 .word 8000000
3955 0350 0048E801 .word 32000000
3956 .LVL345:
3957 .L260:
2288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** break;
3958 .loc 1 2288 0
3959 0354 0120 movs r0, #1
3960 .LVL346:
3961 0356 3CE7 b .L223
3962 .cfi_endproc
3963 .LFE78:
3965 .section .text.UART_AdvFeatureConfig,"ax",%progbits
3966 .align 1
3967 .global UART_AdvFeatureConfig
3968 .syntax unified
3969 .code 16
3970 .thumb_func
3971 .fpu softvfp
3973 UART_AdvFeatureConfig:
3974 .LFB79:
2303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check whether the set of advanced features to configure is properly set */
3975 .loc 1 2303 0
3976 .cfi_startproc
3977 @ args = 0, pretend = 0, frame = 0
3978 @ frame_needed = 0, uses_anonymous_args = 0
3979 @ link register save eliminated.
3980 .LVL347:
2308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3981 .loc 1 2308 0
3982 0000 436A ldr r3, [r0, #36]
3983 0002 DB07 lsls r3, r3, #31
3984 0004 06D5 bpl .L274
2311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3985 .loc 1 2311 0
3986 0006 0268 ldr r2, [r0]
3987 0008 5368 ldr r3, [r2, #4]
3988 000a 2C49 ldr r1, .L283
ARM GAS /tmp/cc7An1gz.s page 128
3989 000c 0B40 ands r3, r1
3990 000e 816A ldr r1, [r0, #40]
3991 0010 0B43 orrs r3, r1
3992 0012 5360 str r3, [r2, #4]
3993 .L274:
2315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
3994 .loc 1 2315 0
3995 0014 436A ldr r3, [r0, #36]
3996 0016 9B07 lsls r3, r3, #30
3997 0018 06D5 bpl .L275
2318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
3998 .loc 1 2318 0
3999 001a 0268 ldr r2, [r0]
4000 001c 5368 ldr r3, [r2, #4]
4001 001e 2849 ldr r1, .L283+4
4002 0020 0B40 ands r3, r1
4003 0022 C16A ldr r1, [r0, #44]
4004 0024 0B43 orrs r3, r1
4005 0026 5360 str r3, [r2, #4]
4006 .L275:
2322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4007 .loc 1 2322 0
4008 0028 436A ldr r3, [r0, #36]
4009 002a 5B07 lsls r3, r3, #29
4010 002c 06D5 bpl .L276
2325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4011 .loc 1 2325 0
4012 002e 0268 ldr r2, [r0]
4013 0030 5368 ldr r3, [r2, #4]
4014 0032 2449 ldr r1, .L283+8
4015 0034 0B40 ands r3, r1
4016 0036 016B ldr r1, [r0, #48]
4017 0038 0B43 orrs r3, r1
4018 003a 5360 str r3, [r2, #4]
4019 .L276:
2329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4020 .loc 1 2329 0
4021 003c 436A ldr r3, [r0, #36]
4022 003e 1B07 lsls r3, r3, #28
4023 0040 06D5 bpl .L277
2332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4024 .loc 1 2332 0
4025 0042 0268 ldr r2, [r0]
4026 0044 5368 ldr r3, [r2, #4]
4027 0046 2049 ldr r1, .L283+12
4028 0048 0B40 ands r3, r1
4029 004a 416B ldr r1, [r0, #52]
4030 004c 0B43 orrs r3, r1
4031 004e 5360 str r3, [r2, #4]
4032 .L277:
2336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4033 .loc 1 2336 0
4034 0050 436A ldr r3, [r0, #36]
4035 0052 DB06 lsls r3, r3, #27
4036 0054 06D5 bpl .L278
2339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4037 .loc 1 2339 0
ARM GAS /tmp/cc7An1gz.s page 129
4038 0056 0268 ldr r2, [r0]
4039 0058 9368 ldr r3, [r2, #8]
4040 005a 1C49 ldr r1, .L283+16
4041 005c 0B40 ands r3, r1
4042 005e 816B ldr r1, [r0, #56]
4043 0060 0B43 orrs r3, r1
4044 0062 9360 str r3, [r2, #8]
4045 .L278:
2343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4046 .loc 1 2343 0
4047 0064 436A ldr r3, [r0, #36]
4048 0066 9B06 lsls r3, r3, #26
4049 0068 06D5 bpl .L279
2346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4050 .loc 1 2346 0
4051 006a 0268 ldr r2, [r0]
4052 006c 9368 ldr r3, [r2, #8]
4053 006e 1849 ldr r1, .L283+20
4054 0070 0B40 ands r3, r1
4055 0072 C16B ldr r1, [r0, #60]
4056 0074 0B43 orrs r3, r1
4057 0076 9360 str r3, [r2, #8]
4058 .L279:
2350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4059 .loc 1 2350 0
4060 0078 436A ldr r3, [r0, #36]
4061 007a 5B06 lsls r3, r3, #25
4062 007c 0BD5 bpl .L280
2354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* set auto Baudrate detection parameters if detection is enabled */
4063 .loc 1 2354 0
4064 007e 0268 ldr r2, [r0]
4065 0080 5368 ldr r3, [r2, #4]
4066 0082 1449 ldr r1, .L283+24
4067 0084 0B40 ands r3, r1
4068 0086 016C ldr r1, [r0, #64]
4069 0088 0B43 orrs r3, r1
4070 008a 5360 str r3, [r2, #4]
2356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4071 .loc 1 2356 0
4072 008c 8023 movs r3, #128
4073 008e 5B03 lsls r3, r3, #13
4074 0090 026C ldr r2, [r0, #64]
4075 0092 9A42 cmp r2, r3
4076 0094 0AD0 beq .L282
4077 .L280:
2364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4078 .loc 1 2364 0
4079 0096 436A ldr r3, [r0, #36]
4080 0098 1B06 lsls r3, r3, #24
4081 009a 06D5 bpl .L273
2367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4082 .loc 1 2367 0
4083 009c 0268 ldr r2, [r0]
4084 009e 5368 ldr r3, [r2, #4]
4085 00a0 0D49 ldr r1, .L283+28
4086 00a2 0B40 ands r3, r1
4087 00a4 816C ldr r1, [r0, #72]
ARM GAS /tmp/cc7An1gz.s page 130
4088 00a6 0B43 orrs r3, r1
4089 00a8 5360 str r3, [r2, #4]
4090 .L273:
2369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4091 .loc 1 2369 0
4092 @ sp needed
4093 00aa 7047 bx lr
4094 .L282:
2359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4095 .loc 1 2359 0
4096 00ac 0268 ldr r2, [r0]
4097 00ae 5368 ldr r3, [r2, #4]
4098 00b0 0A49 ldr r1, .L283+32
4099 00b2 0B40 ands r3, r1
4100 00b4 416C ldr r1, [r0, #68]
4101 00b6 0B43 orrs r3, r1
4102 00b8 5360 str r3, [r2, #4]
4103 00ba ECE7 b .L280
4104 .L284:
4105 .align 2
4106 .L283:
4107 00bc FFFFFDFF .word -131073
4108 00c0 FFFFFEFF .word -65537
4109 00c4 FFFFFBFF .word -262145
4110 00c8 FF7FFFFF .word -32769
4111 00cc FFEFFFFF .word -4097
4112 00d0 FFDFFFFF .word -8193
4113 00d4 FFFFEFFF .word -1048577
4114 00d8 FFFFF7FF .word -524289
4115 00dc FFFF9FFF .word -6291457
4116 .cfi_endproc
4117 .LFE79:
4119 .section .text.UART_WaitOnFlagUntilTimeout,"ax",%progbits
4120 .align 1
4121 .global UART_WaitOnFlagUntilTimeout
4122 .syntax unified
4123 .code 16
4124 .thumb_func
4125 .fpu softvfp
4127 UART_WaitOnFlagUntilTimeout:
4128 .LFB81:
2427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Wait until flag is set */
4129 .loc 1 2427 0
4130 .cfi_startproc
4131 @ args = 4, pretend = 0, frame = 0
4132 @ frame_needed = 0, uses_anonymous_args = 0
4133 .LVL348:
4134 0000 F0B5 push {r4, r5, r6, r7, lr}
4135 .LCFI28:
4136 .cfi_def_cfa_offset 20
4137 .cfi_offset 4, -20
4138 .cfi_offset 5, -16
4139 .cfi_offset 6, -12
4140 .cfi_offset 7, -8
4141 .cfi_offset 14, -4
4142 0002 C646 mov lr, r8
4143 0004 00B5 push {lr}
ARM GAS /tmp/cc7An1gz.s page 131
4144 .LCFI29:
4145 .cfi_def_cfa_offset 24
4146 .cfi_offset 8, -24
4147 0006 0600 movs r6, r0
4148 0008 0C00 movs r4, r1
4149 000a 1700 movs r7, r2
4150 000c 9846 mov r8, r3
4151 000e 069D ldr r5, [sp, #24]
4152 .LVL349:
4153 .L287:
2429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4154 .loc 1 2429 0
4155 0010 3368 ldr r3, [r6]
4156 0012 DB69 ldr r3, [r3, #28]
4157 0014 2340 ands r3, r4
4158 0016 1B1B subs r3, r3, r4
4159 0018 5A42 rsbs r2, r3, #0
4160 001a 5341 adcs r3, r3, r2
4161 001c BB42 cmp r3, r7
4162 001e 1ED1 bne .L291
2432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4163 .loc 1 2432 0
4164 0020 6B1C adds r3, r5, #1
4165 0022 F5D0 beq .L287
2434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4166 .loc 1 2434 0
4167 0024 002D cmp r5, #0
4168 0026 05D0 beq .L288
2434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4169 .loc 1 2434 0 is_stmt 0 discriminator 1
4170 0028 FFF7FEFF bl HAL_GetTick
4171 .LVL350:
4172 002c 4346 mov r3, r8
4173 002e C01A subs r0, r0, r3
4174 0030 A842 cmp r0, r5
4175 0032 EDD9 bls .L287
4176 .L288:
2437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
4177 .loc 1 2437 0 is_stmt 1
4178 0034 3268 ldr r2, [r6]
4179 0036 1368 ldr r3, [r2]
4180 0038 0B49 ldr r1, .L292
4181 003a 0B40 ands r3, r1
4182 003c 1360 str r3, [r2]
2438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4183 .loc 1 2438 0
4184 003e 3268 ldr r2, [r6]
4185 0040 9368 ldr r3, [r2, #8]
4186 0042 A331 adds r1, r1, #163
4187 0044 FF31 adds r1, r1, #255
4188 0046 8B43 bics r3, r1
4189 0048 9360 str r3, [r2, #8]
2440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
4190 .loc 1 2440 0
4191 004a 2023 movs r3, #32
4192 004c 6922 movs r2, #105
4193 004e B354 strb r3, [r6, r2]
ARM GAS /tmp/cc7An1gz.s page 132
2441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4194 .loc 1 2441 0
4195 0050 0132 adds r2, r2, #1
4196 0052 B354 strb r3, [r6, r2]
2444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** return HAL_TIMEOUT;
4197 .loc 1 2444 0
4198 0054 4833 adds r3, r3, #72
4199 0056 0022 movs r2, #0
4200 0058 F254 strb r2, [r6, r3]
2445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4201 .loc 1 2445 0
4202 005a 0320 movs r0, #3
4203 005c 00E0 b .L289
4204 .L291:
2449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4205 .loc 1 2449 0
4206 005e 0020 movs r0, #0
4207 .L289:
2450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4208 .loc 1 2450 0
4209 @ sp needed
4210 .LVL351:
4211 .LVL352:
4212 .LVL353:
4213 0060 04BC pop {r2}
4214 0062 9046 mov r8, r2
4215 0064 F0BD pop {r4, r5, r6, r7, pc}
4216 .L293:
4217 0066 C046 .align 2
4218 .L292:
4219 0068 5FFEFFFF .word -417
4220 .cfi_endproc
4221 .LFE81:
4223 .section .text.HAL_UART_Transmit,"ax",%progbits
4224 .align 1
4225 .global HAL_UART_Transmit
4226 .syntax unified
4227 .code 16
4228 .thumb_func
4229 .fpu softvfp
4231 HAL_UART_Transmit:
4232 .LFB46:
659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t* tmp;
4233 .loc 1 659 0
4234 .cfi_startproc
4235 @ args = 0, pretend = 0, frame = 8
4236 @ frame_needed = 0, uses_anonymous_args = 0
4237 .LVL354:
4238 0000 F0B5 push {r4, r5, r6, r7, lr}
4239 .LCFI30:
4240 .cfi_def_cfa_offset 20
4241 .cfi_offset 4, -20
4242 .cfi_offset 5, -16
4243 .cfi_offset 6, -12
4244 .cfi_offset 7, -8
4245 .cfi_offset 14, -4
4246 0002 85B0 sub sp, sp, #20
ARM GAS /tmp/cc7An1gz.s page 133
4247 .LCFI31:
4248 .cfi_def_cfa_offset 40
4249 0004 0400 movs r4, r0
4250 0006 0E00 movs r6, r1
4251 0008 1700 movs r7, r2
4252 000a 1D00 movs r5, r3
4253 .LVL355:
664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4254 .loc 1 664 0
4255 000c 6923 movs r3, #105
4256 .LVL356:
4257 000e C35C ldrb r3, [r0, r3]
4258 0010 202B cmp r3, #32
4259 0012 59D1 bne .L301
666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4260 .loc 1 666 0
4261 0014 0029 cmp r1, #0
4262 0016 5AD0 beq .L302
666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4263 .loc 1 666 0 is_stmt 0 discriminator 1
4264 0018 002A cmp r2, #0
4265 001a 5AD0 beq .L303
674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4266 .loc 1 674 0 is_stmt 1
4267 001c 8023 movs r3, #128
4268 001e 5B01 lsls r3, r3, #5
4269 0020 8268 ldr r2, [r0, #8]
4270 .LVL357:
4271 0022 9A42 cmp r2, r3
4272 0024 13D0 beq .L308
4273 .L296:
683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4274 .loc 1 683 0
4275 0026 6823 movs r3, #104
4276 0028 E35C ldrb r3, [r4, r3]
4277 002a 012B cmp r3, #1
4278 002c 53D0 beq .L305
683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4279 .loc 1 683 0 is_stmt 0 discriminator 2
4280 002e 6823 movs r3, #104
4281 0030 0122 movs r2, #1
4282 0032 E254 strb r2, [r4, r3]
685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX;
4283 .loc 1 685 0 is_stmt 1 discriminator 2
4284 0034 0023 movs r3, #0
4285 0036 E366 str r3, [r4, #108]
686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4286 .loc 1 686 0 discriminator 2
4287 0038 6933 adds r3, r3, #105
4288 003a 2032 adds r2, r2, #32
4289 003c E254 strb r2, [r4, r3]
689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4290 .loc 1 689 0 discriminator 2
4291 003e FFF7FEFF bl HAL_GetTick
4292 .LVL358:
4293 0042 0390 str r0, [sp, #12]
4294 .LVL359:
ARM GAS /tmp/cc7An1gz.s page 134
691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->TxXferCount = Size;
4295 .loc 1 691 0 discriminator 2
4296 0044 5023 movs r3, #80
4297 0046 E752 strh r7, [r4, r3]
692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** while(huart->TxXferCount > 0U)
4298 .loc 1 692 0 discriminator 2
4299 0048 0233 adds r3, r3, #2
4300 004a E752 strh r7, [r4, r3]
693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4301 .loc 1 693 0 discriminator 2
4302 004c 0AE0 b .L297
4303 .LVL360:
4304 .L308:
674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4305 .loc 1 674 0 discriminator 1
4306 004e 0369 ldr r3, [r0, #16]
4307 0050 002B cmp r3, #0
4308 0052 E8D1 bne .L296
676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4309 .loc 1 676 0
4310 0054 CB07 lsls r3, r1, #31
4311 0056 E6D5 bpl .L296
678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4312 .loc 1 678 0
4313 0058 0120 movs r0, #1
4314 .LVL361:
4315 005a 36E0 b .L295
4316 .LVL362:
4317 .L298:
708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4318 .loc 1 708 0
4319 005c 3278 ldrb r2, [r6]
4320 005e 2368 ldr r3, [r4]
4321 0060 9A62 str r2, [r3, #40]
4322 0062 0136 adds r6, r6, #1
4323 .LVL363:
4324 .L297:
693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4325 .loc 1 693 0
4326 0064 5223 movs r3, #82
4327 0066 E35A ldrh r3, [r4, r3]
4328 0068 9BB2 uxth r3, r3
4329 006a 002B cmp r3, #0
4330 006c 1CD0 beq .L309
695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
4331 .loc 1 695 0
4332 006e 5222 movs r2, #82
4333 0070 A35A ldrh r3, [r4, r2]
4334 0072 013B subs r3, r3, #1
4335 0074 9BB2 uxth r3, r3
4336 0076 A352 strh r3, [r4, r2]
696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4337 .loc 1 696 0
4338 0078 0095 str r5, [sp]
4339 007a 039B ldr r3, [sp, #12]
4340 007c 0022 movs r2, #0
4341 007e 8021 movs r1, #128
ARM GAS /tmp/cc7An1gz.s page 135
4342 0080 2000 movs r0, r4
4343 0082 FFF7FEFF bl UART_WaitOnFlagUntilTimeout
4344 .LVL364:
4345 0086 0028 cmp r0, #0
4346 0088 27D1 bne .L306
700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4347 .loc 1 700 0
4348 008a 8023 movs r3, #128
4349 008c 5B01 lsls r3, r3, #5
4350 008e A268 ldr r2, [r4, #8]
4351 0090 9A42 cmp r2, r3
4352 0092 E3D1 bne .L298
700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4353 .loc 1 700 0 is_stmt 0 discriminator 1
4354 0094 2369 ldr r3, [r4, #16]
4355 0096 002B cmp r3, #0
4356 0098 E0D1 bne .L298
4357 .LVL365:
703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** pData += 2U;
4358 .loc 1 703 0 is_stmt 1
4359 009a 3388 ldrh r3, [r6]
4360 009c 2268 ldr r2, [r4]
4361 009e DB05 lsls r3, r3, #23
4362 00a0 DB0D lsrs r3, r3, #23
4363 00a2 9362 str r3, [r2, #40]
704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4364 .loc 1 704 0
4365 00a4 0236 adds r6, r6, #2
4366 .LVL366:
4367 00a6 DDE7 b .L297
4368 .LVL367:
4369 .L309:
711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4370 .loc 1 711 0
4371 00a8 0095 str r5, [sp]
4372 00aa 039B ldr r3, [sp, #12]
4373 00ac 0022 movs r2, #0
4374 00ae 4021 movs r1, #64
4375 00b0 2000 movs r0, r4
4376 00b2 FFF7FEFF bl UART_WaitOnFlagUntilTimeout
4377 .LVL368:
4378 00b6 0028 cmp r0, #0
4379 00b8 11D1 bne .L307
717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4380 .loc 1 717 0
4381 00ba 6923 movs r3, #105
4382 00bc 2022 movs r2, #32
4383 00be E254 strb r2, [r4, r3]
720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4384 .loc 1 720 0
4385 00c0 013B subs r3, r3, #1
4386 00c2 0022 movs r2, #0
4387 00c4 E254 strb r2, [r4, r3]
722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4388 .loc 1 722 0
4389 00c6 00E0 b .L295
4390 .LVL369:
ARM GAS /tmp/cc7An1gz.s page 136
4391 .L301:
726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4392 .loc 1 726 0
4393 00c8 0220 movs r0, #2
4394 .LVL370:
4395 .L295:
728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4396 .loc 1 728 0
4397 00ca 05B0 add sp, sp, #20
4398 @ sp needed
4399 .LVL371:
4400 .LVL372:
4401 .LVL373:
4402 00cc F0BD pop {r4, r5, r6, r7, pc}
4403 .LVL374:
4404 .L302:
668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4405 .loc 1 668 0
4406 00ce 0120 movs r0, #1
4407 .LVL375:
4408 00d0 FBE7 b .L295
4409 .LVL376:
4410 .L303:
4411 00d2 0120 movs r0, #1
4412 .LVL377:
4413 00d4 F9E7 b .L295
4414 .LVL378:
4415 .L305:
683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4416 .loc 1 683 0
4417 00d6 0220 movs r0, #2
4418 .LVL379:
4419 00d8 F7E7 b .L295
4420 .LVL380:
4421 .L306:
698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4422 .loc 1 698 0
4423 00da 0320 movs r0, #3
4424 00dc F5E7 b .L295
4425 .L307:
713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4426 .loc 1 713 0
4427 00de 0320 movs r0, #3
4428 00e0 F3E7 b .L295
4429 .cfi_endproc
4430 .LFE46:
4432 .section .text.HAL_UART_Receive,"ax",%progbits
4433 .align 1
4434 .global HAL_UART_Receive
4435 .syntax unified
4436 .code 16
4437 .thumb_func
4438 .fpu softvfp
4440 HAL_UART_Receive:
4441 .LFB47:
743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint16_t* tmp;
4442 .loc 1 743 0
ARM GAS /tmp/cc7An1gz.s page 137
4443 .cfi_startproc
4444 @ args = 0, pretend = 0, frame = 8
4445 @ frame_needed = 0, uses_anonymous_args = 0
4446 .LVL381:
4447 0000 F0B5 push {r4, r5, r6, r7, lr}
4448 .LCFI32:
4449 .cfi_def_cfa_offset 20
4450 .cfi_offset 4, -20
4451 .cfi_offset 5, -16
4452 .cfi_offset 6, -12
4453 .cfi_offset 7, -8
4454 .cfi_offset 14, -4
4455 0002 85B0 sub sp, sp, #20
4456 .LCFI33:
4457 .cfi_def_cfa_offset 40
4458 0004 0400 movs r4, r0
4459 0006 0F00 movs r7, r1
4460 0008 1600 movs r6, r2
4461 000a 1D00 movs r5, r3
4462 .LVL382:
749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4463 .loc 1 749 0
4464 000c 6A23 movs r3, #106
4465 .LVL383:
4466 000e C35C ldrb r3, [r0, r3]
4467 0010 202B cmp r3, #32
4468 0012 00D0 beq .LCB4183
4469 0014 83E0 b .L323 @long jump
4470 .LCB4183:
751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4471 .loc 1 751 0
4472 0016 0029 cmp r1, #0
4473 0018 00D1 bne .LCB4185
4474 001a 83E0 b .L324 @long jump
4475 .LCB4185:
751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4476 .loc 1 751 0 is_stmt 0 discriminator 1
4477 001c 002A cmp r2, #0
4478 001e 00D1 bne .LCB4187
4479 0020 82E0 b .L325 @long jump
4480 .LCB4187:
759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4481 .loc 1 759 0 is_stmt 1
4482 0022 8023 movs r3, #128
4483 0024 5B01 lsls r3, r3, #5
4484 0026 8268 ldr r2, [r0, #8]
4485 .LVL384:
4486 0028 9A42 cmp r2, r3
4487 002a 21D0 beq .L329
4488 .L312:
768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4489 .loc 1 768 0
4490 002c 6823 movs r3, #104
4491 002e E35C ldrb r3, [r4, r3]
4492 0030 012B cmp r3, #1
4493 0032 00D1 bne .LCB4199
4494 0034 7AE0 b .L327 @long jump
ARM GAS /tmp/cc7An1gz.s page 138
4495 .LCB4199:
768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4496 .loc 1 768 0 is_stmt 0 discriminator 2
4497 0036 6823 movs r3, #104
4498 0038 0122 movs r2, #1
4499 003a E254 strb r2, [r4, r3]
770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX;
4500 .loc 1 770 0 is_stmt 1 discriminator 2
4501 003c 0023 movs r3, #0
4502 003e E366 str r3, [r4, #108]
771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4503 .loc 1 771 0 discriminator 2
4504 0040 6A33 adds r3, r3, #106
4505 0042 2132 adds r2, r2, #33
4506 0044 E254 strb r2, [r4, r3]
774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4507 .loc 1 774 0 discriminator 2
4508 0046 FFF7FEFF bl HAL_GetTick
4509 .LVL385:
4510 004a 0390 str r0, [sp, #12]
4511 .LVL386:
776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxXferCount = Size;
4512 .loc 1 776 0 discriminator 2
4513 004c 5823 movs r3, #88
4514 004e E652 strh r6, [r4, r3]
777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4515 .loc 1 777 0 discriminator 2
4516 0050 0233 adds r3, r3, #2
4517 0052 E652 strh r6, [r4, r3]
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4518 .loc 1 780 0 discriminator 2
4519 0054 A368 ldr r3, [r4, #8]
4520 0056 8022 movs r2, #128
4521 0058 5201 lsls r2, r2, #5
4522 005a 9342 cmp r3, r2
4523 005c 0FD0 beq .L330
4524 005e 002B cmp r3, #0
4525 0060 1CD1 bne .L316
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4526 .loc 1 780 0 is_stmt 0 discriminator 5
4527 0062 2369 ldr r3, [r4, #16]
4528 0064 002B cmp r3, #0
4529 0066 15D1 bne .L317
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4530 .loc 1 780 0 discriminator 7
4531 0068 5C33 adds r3, r3, #92
4532 006a FF22 movs r2, #255
4533 006c E252 strh r2, [r4, r3]
4534 006e 19E0 b .L315
4535 .LVL387:
4536 .L329:
759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4537 .loc 1 759 0 is_stmt 1 discriminator 1
4538 0070 0369 ldr r3, [r0, #16]
4539 0072 002B cmp r3, #0
4540 0074 DAD1 bne .L312
761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
ARM GAS /tmp/cc7An1gz.s page 139
4541 .loc 1 761 0
4542 0076 CB07 lsls r3, r1, #31
4543 0078 D8D5 bpl .L312
763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4544 .loc 1 763 0
4545 007a 0120 movs r0, #1
4546 .LVL388:
4547 007c 50E0 b .L311
4548 .LVL389:
4549 .L330:
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4550 .loc 1 780 0 discriminator 1
4551 007e 2369 ldr r3, [r4, #16]
4552 0080 002B cmp r3, #0
4553 0082 03D1 bne .L314
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4554 .loc 1 780 0 is_stmt 0 discriminator 3
4555 0084 5C33 adds r3, r3, #92
4556 0086 2B4A ldr r2, .L333
4557 0088 E252 strh r2, [r4, r3]
4558 008a 0BE0 b .L315
4559 .L314:
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4560 .loc 1 780 0 discriminator 4
4561 008c 5C23 movs r3, #92
4562 008e FF22 movs r2, #255
4563 0090 E252 strh r2, [r4, r3]
4564 0092 07E0 b .L315
4565 .L317:
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4566 .loc 1 780 0 discriminator 8
4567 0094 5C23 movs r3, #92
4568 0096 7F22 movs r2, #127
4569 0098 E252 strh r2, [r4, r3]
4570 009a 03E0 b .L315
4571 .L316:
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4572 .loc 1 780 0 discriminator 6
4573 009c 8022 movs r2, #128
4574 009e 5205 lsls r2, r2, #21
4575 00a0 9342 cmp r3, r2
4576 00a2 02D0 beq .L331
4577 .L315:
781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4578 .loc 1 781 0 is_stmt 1
4579 00a4 5C23 movs r3, #92
4580 00a6 E65A ldrh r6, [r4, r3]
4581 .LVL390:
784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4582 .loc 1 784 0
4583 00a8 10E0 b .L319
4584 .LVL391:
4585 .L331:
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4586 .loc 1 780 0 discriminator 9
4587 00aa 2369 ldr r3, [r4, #16]
4588 00ac 002B cmp r3, #0
ARM GAS /tmp/cc7An1gz.s page 140
4589 00ae 03D1 bne .L318
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4590 .loc 1 780 0 is_stmt 0 discriminator 10
4591 00b0 5C33 adds r3, r3, #92
4592 00b2 7F22 movs r2, #127
4593 00b4 E252 strh r2, [r4, r3]
4594 00b6 F5E7 b .L315
4595 .L318:
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uhMask = huart->Mask;
4596 .loc 1 780 0 discriminator 11
4597 00b8 5C23 movs r3, #92
4598 00ba 3F22 movs r2, #63
4599 00bc E252 strh r2, [r4, r3]
4600 00be F1E7 b .L315
4601 .LVL392:
4602 .L320:
799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4603 .loc 1 799 0 is_stmt 1
4604 00c0 2368 ldr r3, [r4]
4605 00c2 5B6A ldr r3, [r3, #36]
4606 00c4 F2B2 uxtb r2, r6
4607 .LVL393:
4608 00c6 1340 ands r3, r2
4609 00c8 3B70 strb r3, [r7]
4610 00ca 0137 adds r7, r7, #1
4611 .LVL394:
4612 .L319:
784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4613 .loc 1 784 0
4614 00cc 5A23 movs r3, #90
4615 00ce E35A ldrh r3, [r4, r3]
4616 00d0 9BB2 uxth r3, r3
4617 00d2 002B cmp r3, #0
4618 00d4 1BD0 beq .L332
786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK)
4619 .loc 1 786 0
4620 00d6 5A22 movs r2, #90
4621 00d8 A35A ldrh r3, [r4, r2]
4622 00da 013B subs r3, r3, #1
4623 00dc 9BB2 uxth r3, r3
4624 00de A352 strh r3, [r4, r2]
787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4625 .loc 1 787 0
4626 00e0 0095 str r5, [sp]
4627 00e2 039B ldr r3, [sp, #12]
4628 00e4 0022 movs r2, #0
4629 00e6 2021 movs r1, #32
4630 00e8 2000 movs r0, r4
4631 00ea FFF7FEFF bl UART_WaitOnFlagUntilTimeout
4632 .LVL395:
4633 00ee 0028 cmp r0, #0
4634 00f0 1ED1 bne .L328
791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4635 .loc 1 791 0
4636 00f2 8023 movs r3, #128
4637 00f4 5B01 lsls r3, r3, #5
4638 00f6 A268 ldr r2, [r4, #8]
ARM GAS /tmp/cc7An1gz.s page 141
4639 00f8 9A42 cmp r2, r3
4640 00fa E1D1 bne .L320
791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4641 .loc 1 791 0 is_stmt 0 discriminator 1
4642 00fc 2369 ldr r3, [r4, #16]
4643 00fe 002B cmp r3, #0
4644 0100 DED1 bne .L320
4645 .LVL396:
794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** pData +=2U;
4646 .loc 1 794 0 is_stmt 1
4647 0102 2368 ldr r3, [r4]
4648 0104 5B6A ldr r3, [r3, #36]
4649 0106 3340 ands r3, r6
4650 0108 3B80 strh r3, [r7]
795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4651 .loc 1 795 0
4652 010a 0237 adds r7, r7, #2
4653 .LVL397:
4654 010c DEE7 b .L319
4655 .LVL398:
4656 .L332:
804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4657 .loc 1 804 0
4658 010e 6A33 adds r3, r3, #106
4659 0110 2022 movs r2, #32
4660 0112 E254 strb r2, [r4, r3]
807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4661 .loc 1 807 0
4662 0114 023B subs r3, r3, #2
4663 0116 0022 movs r2, #0
4664 0118 E254 strb r2, [r4, r3]
809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4665 .loc 1 809 0
4666 011a 0020 movs r0, #0
4667 011c 00E0 b .L311
4668 .LVL399:
4669 .L323:
813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4670 .loc 1 813 0
4671 011e 0220 movs r0, #2
4672 .LVL400:
4673 .L311:
815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4674 .loc 1 815 0
4675 0120 05B0 add sp, sp, #20
4676 @ sp needed
4677 .LVL401:
4678 .LVL402:
4679 .LVL403:
4680 0122 F0BD pop {r4, r5, r6, r7, pc}
4681 .LVL404:
4682 .L324:
753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4683 .loc 1 753 0
4684 0124 0120 movs r0, #1
4685 .LVL405:
4686 0126 FBE7 b .L311
ARM GAS /tmp/cc7An1gz.s page 142
4687 .LVL406:
4688 .L325:
4689 0128 0120 movs r0, #1
4690 .LVL407:
4691 012a F9E7 b .L311
4692 .LVL408:
4693 .L327:
768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4694 .loc 1 768 0
4695 012c 0220 movs r0, #2
4696 .LVL409:
4697 012e F7E7 b .L311
4698 .LVL410:
4699 .L328:
789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4700 .loc 1 789 0
4701 0130 0320 movs r0, #3
4702 0132 F5E7 b .L311
4703 .L334:
4704 .align 2
4705 .L333:
4706 0134 FF010000 .word 511
4707 .cfi_endproc
4708 .LFE47:
4710 .section .text.UART_CheckIdleState,"ax",%progbits
4711 .align 1
4712 .global UART_CheckIdleState
4713 .syntax unified
4714 .code 16
4715 .thumb_func
4716 .fpu softvfp
4718 UART_CheckIdleState:
4719 .LFB80:
2377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** uint32_t tickstart = 0;
4720 .loc 1 2377 0
4721 .cfi_startproc
4722 @ args = 0, pretend = 0, frame = 0
4723 @ frame_needed = 0, uses_anonymous_args = 0
4724 .LVL411:
4725 0000 30B5 push {r4, r5, lr}
4726 .LCFI34:
4727 .cfi_def_cfa_offset 12
4728 .cfi_offset 4, -12
4729 .cfi_offset 5, -8
4730 .cfi_offset 14, -4
4731 0002 83B0 sub sp, sp, #12
4732 .LCFI35:
4733 .cfi_def_cfa_offset 24
4734 0004 0400 movs r4, r0
4735 .LVL412:
2381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4736 .loc 1 2381 0
4737 0006 0023 movs r3, #0
4738 0008 C366 str r3, [r0, #108]
2384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4739 .loc 1 2384 0
4740 000a FFF7FEFF bl HAL_GetTick
ARM GAS /tmp/cc7An1gz.s page 143
4741 .LVL413:
4742 000e 0500 movs r5, r0
4743 .LVL414:
2387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4744 .loc 1 2387 0
4745 0010 2368 ldr r3, [r4]
4746 0012 1B68 ldr r3, [r3]
4747 0014 1B07 lsls r3, r3, #28
4748 0016 0ED4 bmi .L341
4749 .LVL415:
4750 .L336:
2397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4751 .loc 1 2397 0
4752 0018 2368 ldr r3, [r4]
4753 001a 1B68 ldr r3, [r3]
4754 001c 5B07 lsls r3, r3, #29
4755 001e 17D4 bmi .L342
4756 .L338:
2408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY;
4757 .loc 1 2408 0
4758 0020 2023 movs r3, #32
4759 0022 6922 movs r2, #105
4760 0024 A354 strb r3, [r4, r2]
2409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4761 .loc 1 2409 0
4762 0026 0132 adds r2, r2, #1
4763 0028 A354 strb r3, [r4, r2]
2412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4764 .loc 1 2412 0
4765 002a 4833 adds r3, r3, #72
4766 002c 0022 movs r2, #0
4767 002e E254 strb r2, [r4, r3]
2414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4768 .loc 1 2414 0
4769 0030 0020 movs r0, #0
4770 .L337:
2415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4771 .loc 1 2415 0
4772 0032 03B0 add sp, sp, #12
4773 @ sp needed
4774 .LVL416:
4775 .LVL417:
4776 0034 30BD pop {r4, r5, pc}
4777 .LVL418:
4778 .L341:
2390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4779 .loc 1 2390 0
4780 0036 8021 movs r1, #128
4781 0038 0C4B ldr r3, .L343
4782 003a 0093 str r3, [sp]
4783 003c 0300 movs r3, r0
4784 003e 0022 movs r2, #0
4785 0040 8903 lsls r1, r1, #14
4786 0042 2000 movs r0, r4
4787 .LVL419:
4788 0044 FFF7FEFF bl UART_WaitOnFlagUntilTimeout
4789 .LVL420:
ARM GAS /tmp/cc7An1gz.s page 144
4790 0048 0028 cmp r0, #0
4791 004a E5D0 beq .L336
2393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4792 .loc 1 2393 0
4793 004c 0320 movs r0, #3
4794 004e F0E7 b .L337
4795 .L342:
2400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4796 .loc 1 2400 0
4797 0050 8021 movs r1, #128
4798 0052 064B ldr r3, .L343
4799 0054 0093 str r3, [sp]
4800 0056 2B00 movs r3, r5
4801 0058 0022 movs r2, #0
4802 005a C903 lsls r1, r1, #15
4803 005c 2000 movs r0, r4
4804 005e FFF7FEFF bl UART_WaitOnFlagUntilTimeout
4805 .LVL421:
4806 0062 0028 cmp r0, #0
4807 0064 DCD0 beq .L338
2403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4808 .loc 1 2403 0
4809 0066 0320 movs r0, #3
4810 0068 E3E7 b .L337
4811 .L344:
4812 006a C046 .align 2
4813 .L343:
4814 006c FFFFFF01 .word 33554431
4815 .cfi_endproc
4816 .LFE80:
4818 .section .text.HAL_UART_Init,"ax",%progbits
4819 .align 1
4820 .global HAL_UART_Init
4821 .syntax unified
4822 .code 16
4823 .thumb_func
4824 .fpu softvfp
4826 HAL_UART_Init:
4827 .LFB39:
226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
4828 .loc 1 226 0
4829 .cfi_startproc
4830 @ args = 0, pretend = 0, frame = 0
4831 @ frame_needed = 0, uses_anonymous_args = 0
4832 .LVL422:
4833 0000 10B5 push {r4, lr}
4834 .LCFI36:
4835 .cfi_def_cfa_offset 8
4836 .cfi_offset 4, -8
4837 .cfi_offset 14, -4
4838 0002 041E subs r4, r0, #0
228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4839 .loc 1 228 0
4840 0004 30D0 beq .L349
244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4841 .loc 1 244 0
4842 0006 6923 movs r3, #105
ARM GAS /tmp/cc7An1gz.s page 145
4843 0008 C35C ldrb r3, [r0, r3]
4844 000a 002B cmp r3, #0
4845 000c 22D0 beq .L350
4846 .LVL423:
4847 .L347:
253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4848 .loc 1 253 0
4849 000e 6923 movs r3, #105
4850 0010 2422 movs r2, #36
4851 0012 E254 strb r2, [r4, r3]
256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4852 .loc 1 256 0
4853 0014 2268 ldr r2, [r4]
4854 0016 1368 ldr r3, [r2]
4855 0018 0121 movs r1, #1
4856 001a 8B43 bics r3, r1
4857 001c 1360 str r3, [r2]
259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4858 .loc 1 259 0
4859 001e 636A ldr r3, [r4, #36]
4860 0020 002B cmp r3, #0
4861 0022 1DD1 bne .L351
4862 .L348:
264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4863 .loc 1 264 0
4864 0024 2000 movs r0, r4
4865 0026 FFF7FEFF bl UART_SetConfig
4866 .LVL424:
4867 002a 0128 cmp r0, #1
4868 002c 11D0 beq .L346
272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
4869 .loc 1 272 0
4870 002e 2268 ldr r2, [r4]
4871 0030 5368 ldr r3, [r2, #4]
4872 0032 0E49 ldr r1, .L352
4873 0034 0B40 ands r3, r1
4874 0036 5360 str r3, [r2, #4]
273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4875 .loc 1 273 0
4876 0038 2268 ldr r2, [r4]
4877 003a 9368 ldr r3, [r2, #8]
4878 003c 2A21 movs r1, #42
4879 003e 8B43 bics r3, r1
4880 0040 9360 str r3, [r2, #8]
276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4881 .loc 1 276 0
4882 0042 2268 ldr r2, [r4]
4883 0044 1368 ldr r3, [r2]
4884 0046 2939 subs r1, r1, #41
4885 0048 0B43 orrs r3, r1
4886 004a 1360 str r3, [r2]
279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4887 .loc 1 279 0
4888 004c 2000 movs r0, r4
4889 004e FFF7FEFF bl UART_CheckIdleState
4890 .LVL425:
4891 .L346:
ARM GAS /tmp/cc7An1gz.s page 146
280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4892 .loc 1 280 0
4893 @ sp needed
4894 .LVL426:
4895 0052 10BD pop {r4, pc}
4896 .LVL427:
4897 .L350:
247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4898 .loc 1 247 0
4899 0054 6833 adds r3, r3, #104
4900 0056 0022 movs r2, #0
4901 0058 C254 strb r2, [r0, r3]
250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4902 .loc 1 250 0
4903 005a FFF7FEFF bl HAL_UART_MspInit
4904 .LVL428:
4905 005e D6E7 b .L347
4906 .L351:
261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4907 .loc 1 261 0
4908 0060 2000 movs r0, r4
4909 0062 FFF7FEFF bl UART_AdvFeatureConfig
4910 .LVL429:
4911 0066 DDE7 b .L348
4912 .LVL430:
4913 .L349:
230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
4914 .loc 1 230 0
4915 0068 0120 movs r0, #1
4916 .LVL431:
4917 006a F2E7 b .L346
4918 .L353:
4919 .align 2
4920 .L352:
4921 006c FFB7FFFF .word -18433
4922 .cfi_endproc
4923 .LFE39:
4925 .section .text.HAL_HalfDuplex_Init,"ax",%progbits
4926 .align 1
4927 .global HAL_HalfDuplex_Init
4928 .syntax unified
4929 .code 16
4930 .thumb_func
4931 .fpu softvfp
4933 HAL_HalfDuplex_Init:
4934 .LFB40:
289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
4935 .loc 1 289 0
4936 .cfi_startproc
4937 @ args = 0, pretend = 0, frame = 0
4938 @ frame_needed = 0, uses_anonymous_args = 0
4939 .LVL432:
4940 0000 10B5 push {r4, lr}
4941 .LCFI37:
4942 .cfi_def_cfa_offset 8
4943 .cfi_offset 4, -8
4944 .cfi_offset 14, -4
ARM GAS /tmp/cc7An1gz.s page 147
4945 0002 041E subs r4, r0, #0
291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4946 .loc 1 291 0
4947 0004 35D0 beq .L358
299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4948 .loc 1 299 0
4949 0006 6923 movs r3, #105
4950 0008 C35C ldrb r3, [r0, r3]
4951 000a 002B cmp r3, #0
4952 000c 27D0 beq .L359
4953 .LVL433:
4954 .L356:
308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4955 .loc 1 308 0
4956 000e 6923 movs r3, #105
4957 0010 2422 movs r2, #36
4958 0012 E254 strb r2, [r4, r3]
311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4959 .loc 1 311 0
4960 0014 2268 ldr r2, [r4]
4961 0016 1368 ldr r3, [r2]
4962 0018 0121 movs r1, #1
4963 001a 8B43 bics r3, r1
4964 001c 1360 str r3, [r2]
314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4965 .loc 1 314 0
4966 001e 636A ldr r3, [r4, #36]
4967 0020 002B cmp r3, #0
4968 0022 22D1 bne .L360
4969 .L357:
319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
4970 .loc 1 319 0
4971 0024 2000 movs r0, r4
4972 0026 FFF7FEFF bl UART_SetConfig
4973 .LVL434:
4974 002a 0128 cmp r0, #1
4975 002c 16D0 beq .L355
327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN));
4976 .loc 1 327 0
4977 002e 2268 ldr r2, [r4]
4978 0030 5368 ldr r3, [r2, #4]
4979 0032 1149 ldr r1, .L361
4980 0034 0B40 ands r3, r1
4981 0036 5360 str r3, [r2, #4]
328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4982 .loc 1 328 0
4983 0038 2268 ldr r2, [r4]
4984 003a 9368 ldr r3, [r2, #8]
4985 003c 2221 movs r1, #34
4986 003e 8B43 bics r3, r1
4987 0040 9360 str r3, [r2, #8]
331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4988 .loc 1 331 0
4989 0042 2268 ldr r2, [r4]
4990 0044 9368 ldr r3, [r2, #8]
4991 0046 1A39 subs r1, r1, #26
4992 0048 0B43 orrs r3, r1
ARM GAS /tmp/cc7An1gz.s page 148
4993 004a 9360 str r3, [r2, #8]
334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
4994 .loc 1 334 0
4995 004c 2268 ldr r2, [r4]
4996 004e 1368 ldr r3, [r2]
4997 0050 0739 subs r1, r1, #7
4998 0052 0B43 orrs r3, r1
4999 0054 1360 str r3, [r2]
337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5000 .loc 1 337 0
5001 0056 2000 movs r0, r4
5002 0058 FFF7FEFF bl UART_CheckIdleState
5003 .LVL435:
5004 .L355:
338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5005 .loc 1 338 0
5006 @ sp needed
5007 .LVL436:
5008 005c 10BD pop {r4, pc}
5009 .LVL437:
5010 .L359:
302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5011 .loc 1 302 0
5012 005e 6833 adds r3, r3, #104
5013 0060 0022 movs r2, #0
5014 0062 C254 strb r2, [r0, r3]
305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5015 .loc 1 305 0
5016 0064 FFF7FEFF bl HAL_UART_MspInit
5017 .LVL438:
5018 0068 D1E7 b .L356
5019 .L360:
316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5020 .loc 1 316 0
5021 006a 2000 movs r0, r4
5022 006c FFF7FEFF bl UART_AdvFeatureConfig
5023 .LVL439:
5024 0070 D8E7 b .L357
5025 .LVL440:
5026 .L358:
293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5027 .loc 1 293 0
5028 0072 0120 movs r0, #1
5029 .LVL441:
5030 0074 F2E7 b .L355
5031 .L362:
5032 0076 C046 .align 2
5033 .L361:
5034 0078 FFB7FFFF .word -18433
5035 .cfi_endproc
5036 .LFE40:
5038 .section .text.HAL_LIN_Init,"ax",%progbits
5039 .align 1
5040 .global HAL_LIN_Init
5041 .syntax unified
5042 .code 16
5043 .thumb_func
ARM GAS /tmp/cc7An1gz.s page 149
5044 .fpu softvfp
5046 HAL_LIN_Init:
5047 .LFB41:
352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
5048 .loc 1 352 0
5049 .cfi_startproc
5050 @ args = 0, pretend = 0, frame = 0
5051 @ frame_needed = 0, uses_anonymous_args = 0
5052 .LVL442:
5053 0000 70B5 push {r4, r5, r6, lr}
5054 .LCFI38:
5055 .cfi_def_cfa_offset 16
5056 .cfi_offset 4, -16
5057 .cfi_offset 5, -12
5058 .cfi_offset 6, -8
5059 .cfi_offset 14, -4
5060 0002 0400 movs r4, r0
5061 0004 0D00 movs r5, r1
354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5062 .loc 1 354 0
5063 0006 0028 cmp r0, #0
5064 0008 44D0 beq .L367
365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5065 .loc 1 365 0
5066 000a 8023 movs r3, #128
5067 000c 1B02 lsls r3, r3, #8
5068 000e C269 ldr r2, [r0, #28]
5069 0010 9A42 cmp r2, r3
5070 0012 41D0 beq .L368
370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5071 .loc 1 370 0
5072 0014 8368 ldr r3, [r0, #8]
5073 0016 002B cmp r3, #0
5074 0018 40D1 bne .L369
375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5075 .loc 1 375 0
5076 001a 6933 adds r3, r3, #105
5077 001c C35C ldrb r3, [r0, r3]
5078 001e 002B cmp r3, #0
5079 0020 2ED0 beq .L370
5080 .LVL443:
5081 .L365:
384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5082 .loc 1 384 0
5083 0022 6923 movs r3, #105
5084 0024 2422 movs r2, #36
5085 0026 E254 strb r2, [r4, r3]
387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5086 .loc 1 387 0
5087 0028 2268 ldr r2, [r4]
5088 002a 1368 ldr r3, [r2]
5089 002c 0121 movs r1, #1
5090 002e 8B43 bics r3, r1
5091 0030 1360 str r3, [r2]
390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5092 .loc 1 390 0
5093 0032 636A ldr r3, [r4, #36]
ARM GAS /tmp/cc7An1gz.s page 150
5094 0034 002B cmp r3, #0
5095 0036 29D1 bne .L371
5096 .L366:
395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5097 .loc 1 395 0
5098 0038 2000 movs r0, r4
5099 003a FFF7FEFF bl UART_SetConfig
5100 .LVL444:
5101 003e 0128 cmp r0, #1
5102 0040 29D0 beq .L364
403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN));
5103 .loc 1 403 0
5104 0042 2268 ldr r2, [r4]
5105 0044 5368 ldr r3, [r2, #4]
5106 0046 1649 ldr r1, .L372
5107 0048 0B40 ands r3, r1
5108 004a 5360 str r3, [r2, #4]
404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5109 .loc 1 404 0
5110 004c 2268 ldr r2, [r4]
5111 004e 9368 ldr r3, [r2, #8]
5112 0050 2A21 movs r1, #42
5113 0052 8B43 bics r3, r1
5114 0054 9360 str r3, [r2, #8]
407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5115 .loc 1 407 0
5116 0056 2268 ldr r2, [r4]
5117 0058 5168 ldr r1, [r2, #4]
5118 005a 8023 movs r3, #128
5119 005c DB01 lsls r3, r3, #7
5120 005e 0B43 orrs r3, r1
5121 0060 5360 str r3, [r2, #4]
410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5122 .loc 1 410 0
5123 0062 2268 ldr r2, [r4]
5124 0064 5368 ldr r3, [r2, #4]
5125 0066 2021 movs r1, #32
5126 0068 8B43 bics r3, r1
5127 006a 1D43 orrs r5, r3
5128 .LVL445:
5129 006c 5560 str r5, [r2, #4]
413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5130 .loc 1 413 0
5131 006e 2268 ldr r2, [r4]
5132 0070 1368 ldr r3, [r2]
5133 0072 1F39 subs r1, r1, #31
5134 0074 0B43 orrs r3, r1
5135 0076 1360 str r3, [r2]
416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5136 .loc 1 416 0
5137 0078 2000 movs r0, r4
5138 007a FFF7FEFF bl UART_CheckIdleState
5139 .LVL446:
5140 007e 0AE0 b .L364
5141 .LVL447:
5142 .L370:
378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
ARM GAS /tmp/cc7An1gz.s page 151
5143 .loc 1 378 0
5144 0080 6833 adds r3, r3, #104
5145 0082 0022 movs r2, #0
5146 0084 C254 strb r2, [r0, r3]
381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5147 .loc 1 381 0
5148 0086 FFF7FEFF bl HAL_UART_MspInit
5149 .LVL448:
5150 008a CAE7 b .L365
5151 .L371:
392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5152 .loc 1 392 0
5153 008c 2000 movs r0, r4
5154 008e FFF7FEFF bl UART_AdvFeatureConfig
5155 .LVL449:
5156 0092 D1E7 b .L366
5157 .LVL450:
5158 .L367:
356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5159 .loc 1 356 0
5160 0094 0120 movs r0, #1
5161 .LVL451:
5162 .L364:
417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5163 .loc 1 417 0
5164 @ sp needed
5165 .LVL452:
5166 0096 70BD pop {r4, r5, r6, pc}
5167 .LVL453:
5168 .L368:
367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5169 .loc 1 367 0
5170 0098 0120 movs r0, #1
5171 .LVL454:
5172 009a FCE7 b .L364
5173 .LVL455:
5174 .L369:
372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5175 .loc 1 372 0
5176 009c 0120 movs r0, #1
5177 .LVL456:
5178 009e FAE7 b .L364
5179 .L373:
5180 .align 2
5181 .L372:
5182 00a0 FFF7FFFF .word -2049
5183 .cfi_endproc
5184 .LFE41:
5186 .section .text.HAL_MultiProcessor_Init,"ax",%progbits
5187 .align 1
5188 .global HAL_MultiProcessor_Init
5189 .syntax unified
5190 .code 16
5191 .thumb_func
5192 .fpu softvfp
5194 HAL_MultiProcessor_Init:
5195 .LFB42:
ARM GAS /tmp/cc7An1gz.s page 152
439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Check the UART handle allocation */
5196 .loc 1 439 0
5197 .cfi_startproc
5198 @ args = 0, pretend = 0, frame = 0
5199 @ frame_needed = 0, uses_anonymous_args = 0
5200 .LVL457:
5201 0000 70B5 push {r4, r5, r6, lr}
5202 .LCFI39:
5203 .cfi_def_cfa_offset 16
5204 .cfi_offset 4, -16
5205 .cfi_offset 5, -12
5206 .cfi_offset 6, -8
5207 .cfi_offset 14, -4
5208 0002 0400 movs r4, r0
5209 0004 0D00 movs r5, r1
5210 0006 1600 movs r6, r2
441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5211 .loc 1 441 0
5212 0008 0028 cmp r0, #0
5213 000a 42D0 beq .L379
449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5214 .loc 1 449 0
5215 000c 6923 movs r3, #105
5216 000e C35C ldrb r3, [r0, r3]
5217 0010 002B cmp r3, #0
5218 0012 2CD0 beq .L380
5219 .LVL458:
5220 .L376:
458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5221 .loc 1 458 0
5222 0014 6923 movs r3, #105
5223 0016 2422 movs r2, #36
5224 0018 E254 strb r2, [r4, r3]
461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5225 .loc 1 461 0
5226 001a 2268 ldr r2, [r4]
5227 001c 1368 ldr r3, [r2]
5228 001e 0121 movs r1, #1
5229 0020 8B43 bics r3, r1
5230 0022 1360 str r3, [r2]
464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5231 .loc 1 464 0
5232 0024 636A ldr r3, [r4, #36]
5233 0026 002B cmp r3, #0
5234 0028 27D1 bne .L381
5235 .L377:
469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5236 .loc 1 469 0
5237 002a 2000 movs r0, r4
5238 002c FFF7FEFF bl UART_SetConfig
5239 .LVL459:
5240 0030 0128 cmp r0, #1
5241 0032 1BD0 beq .L375
477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
5242 .loc 1 477 0
5243 0034 2268 ldr r2, [r4]
5244 0036 5368 ldr r3, [r2, #4]
ARM GAS /tmp/cc7An1gz.s page 153
5245 0038 1749 ldr r1, .L383
5246 003a 0B40 ands r3, r1
5247 003c 5360 str r3, [r2, #4]
478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5248 .loc 1 478 0
5249 003e 2268 ldr r2, [r4]
5250 0040 9368 ldr r3, [r2, #8]
5251 0042 2A21 movs r1, #42
5252 0044 8B43 bics r3, r1
5253 0046 9360 str r3, [r2, #8]
480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** {
5254 .loc 1 480 0
5255 0048 8023 movs r3, #128
5256 004a 1B01 lsls r3, r3, #4
5257 004c 9E42 cmp r6, r3
5258 004e 18D0 beq .L382
5259 .L378:
487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5260 .loc 1 487 0
5261 0050 2368 ldr r3, [r4]
5262 0052 1A68 ldr r2, [r3]
5263 0054 1149 ldr r1, .L383+4
5264 0056 0A40 ands r2, r1
5265 0058 3243 orrs r2, r6
5266 005a 1A60 str r2, [r3]
490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5267 .loc 1 490 0
5268 005c 2268 ldr r2, [r4]
5269 005e 1368 ldr r3, [r2]
5270 0060 0121 movs r1, #1
5271 0062 0B43 orrs r3, r1
5272 0064 1360 str r3, [r2]
493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5273 .loc 1 493 0
5274 0066 2000 movs r0, r4
5275 0068 FFF7FEFF bl UART_CheckIdleState
5276 .LVL460:
5277 .L375:
494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5278 .loc 1 494 0
5279 @ sp needed
5280 .LVL461:
5281 .LVL462:
5282 006c 70BD pop {r4, r5, r6, pc}
5283 .LVL463:
5284 .L380:
452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5285 .loc 1 452 0
5286 006e 6833 adds r3, r3, #104
5287 0070 0022 movs r2, #0
5288 .LVL464:
5289 0072 C254 strb r2, [r0, r3]
455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5290 .loc 1 455 0
5291 0074 FFF7FEFF bl HAL_UART_MspInit
5292 .LVL465:
5293 0078 CCE7 b .L376
ARM GAS /tmp/cc7An1gz.s page 154
5294 .L381:
466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5295 .loc 1 466 0
5296 007a 2000 movs r0, r4
5297 007c FFF7FEFF bl UART_AdvFeatureConfig
5298 .LVL466:
5299 0080 D3E7 b .L377
5300 .L382:
483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5301 .loc 1 483 0
5302 0082 2268 ldr r2, [r4]
5303 0084 5368 ldr r3, [r2, #4]
5304 0086 1B02 lsls r3, r3, #8
5305 0088 1B0A lsrs r3, r3, #8
5306 008a 2D06 lsls r5, r5, #24
5307 008c 1D43 orrs r5, r3
5308 008e 5560 str r5, [r2, #4]
5309 0090 DEE7 b .L378
5310 .LVL467:
5311 .L379:
443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5312 .loc 1 443 0
5313 0092 0120 movs r0, #1
5314 .LVL468:
5315 0094 EAE7 b .L375
5316 .L384:
5317 0096 C046 .align 2
5318 .L383:
5319 0098 FFB7FFFF .word -18433
5320 009c FFF7FFFF .word -2049
5321 .cfi_endproc
5322 .LFE42:
5324 .section .text.HAL_MultiProcessor_EnableMuteMode,"ax",%progbits
5325 .align 1
5326 .global HAL_MultiProcessor_EnableMuteMode
5327 .syntax unified
5328 .code 16
5329 .thumb_func
5330 .fpu softvfp
5332 HAL_MultiProcessor_EnableMuteMode:
5333 .LFB70:
1924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
5334 .loc 1 1924 0
5335 .cfi_startproc
5336 @ args = 0, pretend = 0, frame = 0
5337 @ frame_needed = 0, uses_anonymous_args = 0
5338 .LVL469:
5339 0000 10B5 push {r4, lr}
5340 .LCFI40:
5341 .cfi_def_cfa_offset 8
5342 .cfi_offset 4, -8
5343 .cfi_offset 14, -4
1926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5344 .loc 1 1926 0
5345 0002 6823 movs r3, #104
5346 0004 C35C ldrb r3, [r0, r3]
5347 0006 012B cmp r3, #1
ARM GAS /tmp/cc7An1gz.s page 155
5348 0008 10D0 beq .L387
1926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5349 .loc 1 1926 0 is_stmt 0 discriminator 2
5350 000a 6823 movs r3, #104
5351 000c 0122 movs r2, #1
5352 000e C254 strb r2, [r0, r3]
1928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5353 .loc 1 1928 0 is_stmt 1 discriminator 2
5354 0010 6832 adds r2, r2, #104
5355 0012 443B subs r3, r3, #68
5356 0014 8354 strb r3, [r0, r2]
1931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5357 .loc 1 1931 0 discriminator 2
5358 0016 0168 ldr r1, [r0]
5359 0018 0C68 ldr r4, [r1]
5360 001a 8023 movs r3, #128
5361 001c 9B01 lsls r3, r3, #6
5362 001e 2343 orrs r3, r4
5363 0020 0B60 str r3, [r1]
1933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5364 .loc 1 1933 0 discriminator 2
5365 0022 2023 movs r3, #32
5366 0024 8354 strb r3, [r0, r2]
1935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5367 .loc 1 1935 0 discriminator 2
5368 0026 FFF7FEFF bl UART_CheckIdleState
5369 .LVL470:
5370 .L386:
1936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5371 .loc 1 1936 0
5372 @ sp needed
5373 002a 10BD pop {r4, pc}
5374 .LVL471:
5375 .L387:
1926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5376 .loc 1 1926 0
5377 002c 0220 movs r0, #2
5378 .LVL472:
5379 002e FCE7 b .L386
5380 .cfi_endproc
5381 .LFE70:
5383 .section .text.HAL_MultiProcessor_DisableMuteMode,"ax",%progbits
5384 .align 1
5385 .global HAL_MultiProcessor_DisableMuteMode
5386 .syntax unified
5387 .code 16
5388 .thumb_func
5389 .fpu softvfp
5391 HAL_MultiProcessor_DisableMuteMode:
5392 .LFB71:
1945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** /* Process Locked */
5393 .loc 1 1945 0
5394 .cfi_startproc
5395 @ args = 0, pretend = 0, frame = 0
5396 @ frame_needed = 0, uses_anonymous_args = 0
5397 .LVL473:
5398 0000 10B5 push {r4, lr}
ARM GAS /tmp/cc7An1gz.s page 156
5399 .LCFI41:
5400 .cfi_def_cfa_offset 8
5401 .cfi_offset 4, -8
5402 .cfi_offset 14, -4
1947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5403 .loc 1 1947 0
5404 0002 6823 movs r3, #104
5405 0004 C35C ldrb r3, [r0, r3]
5406 0006 012B cmp r3, #1
5407 0008 0FD0 beq .L390
1947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5408 .loc 1 1947 0 is_stmt 0 discriminator 2
5409 000a 6823 movs r3, #104
5410 000c 0122 movs r2, #1
5411 000e C254 strb r2, [r0, r3]
1949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5412 .loc 1 1949 0 is_stmt 1 discriminator 2
5413 0010 6832 adds r2, r2, #104
5414 0012 443B subs r3, r3, #68
5415 0014 8354 strb r3, [r0, r2]
1952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5416 .loc 1 1952 0 discriminator 2
5417 0016 0168 ldr r1, [r0]
5418 0018 0B68 ldr r3, [r1]
5419 001a 054C ldr r4, .L391
5420 001c 2340 ands r3, r4
5421 001e 0B60 str r3, [r1]
1954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5422 .loc 1 1954 0 discriminator 2
5423 0020 2023 movs r3, #32
5424 0022 8354 strb r3, [r0, r2]
1956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c **** }
5425 .loc 1 1956 0 discriminator 2
5426 0024 FFF7FEFF bl UART_CheckIdleState
5427 .LVL474:
5428 .L389:
1957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5429 .loc 1 1957 0
5430 @ sp needed
5431 0028 10BD pop {r4, pc}
5432 .LVL475:
5433 .L390:
1947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_uart.c ****
5434 .loc 1 1947 0
5435 002a 0220 movs r0, #2
5436 .LVL476:
5437 002c FCE7 b .L389
5438 .L392:
5439 002e C046 .align 2
5440 .L391:
5441 0030 FFDFFFFF .word -8193
5442 .cfi_endproc
5443 .LFE71:
5445 .text
5446 .Letext0:
5447 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
5448 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h"
ARM GAS /tmp/cc7An1gz.s page 157
5449 .file 4 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
5450 .file 5 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l073xx.h"
5451 .file 6 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h"
5452 .file 7 "/usr/arm-none-eabi/include/sys/lock.h"
5453 .file 8 "/usr/arm-none-eabi/include/sys/_types.h"
5454 .file 9 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
5455 .file 10 "/usr/arm-none-eabi/include/sys/reent.h"
5456 .file 11 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_def.h"
5457 .file 12 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_dma.h"
5458 .file 13 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_uart.h"
5459 .file 14 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal.h"
5460 .file 15 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_rcc_ex.h"
5461 .file 16 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_rcc.h"
5462 .file 17 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_uart_ex.h"
ARM GAS /tmp/cc7An1gz.s page 158
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32l0xx_hal_uart.c
/tmp/cc7An1gz.s:16 .text.HAL_UART_MspInit:0000000000000000 $t
/tmp/cc7An1gz.s:23 .text.HAL_UART_MspInit:0000000000000000 HAL_UART_MspInit
/tmp/cc7An1gz.s:39 .text.HAL_UART_MspDeInit:0000000000000000 $t
/tmp/cc7An1gz.s:46 .text.HAL_UART_MspDeInit:0000000000000000 HAL_UART_MspDeInit
/tmp/cc7An1gz.s:61 .text.HAL_UART_DeInit:0000000000000000 $t
/tmp/cc7An1gz.s:68 .text.HAL_UART_DeInit:0000000000000000 HAL_UART_DeInit
/tmp/cc7An1gz.s:135 .text.HAL_UART_Transmit_IT:0000000000000000 $t
/tmp/cc7An1gz.s:142 .text.HAL_UART_Transmit_IT:0000000000000000 HAL_UART_Transmit_IT
/tmp/cc7An1gz.s:250 .text.HAL_UART_Receive_IT:0000000000000000 $t
/tmp/cc7An1gz.s:257 .text.HAL_UART_Receive_IT:0000000000000000 HAL_UART_Receive_IT
/tmp/cc7An1gz.s:451 .text.HAL_UART_Receive_IT:00000000000000d0 $d
/tmp/cc7An1gz.s:456 .text.HAL_UART_Transmit_DMA:0000000000000000 $t
/tmp/cc7An1gz.s:463 .text.HAL_UART_Transmit_DMA:0000000000000000 HAL_UART_Transmit_DMA
/tmp/cc7An1gz.s:598 .text.HAL_UART_Transmit_DMA:000000000000009c $d
/tmp/cc7An1gz.s:1362 .text.UART_DMATransmitCplt:0000000000000000 UART_DMATransmitCplt
/tmp/cc7An1gz.s:1445 .text.UART_DMATxHalfCplt:0000000000000000 UART_DMATxHalfCplt
/tmp/cc7An1gz.s:1776 .text.UART_DMAError:0000000000000000 UART_DMAError
/tmp/cc7An1gz.s:605 .text.HAL_UART_Receive_DMA:0000000000000000 $t
/tmp/cc7An1gz.s:612 .text.HAL_UART_Receive_DMA:0000000000000000 HAL_UART_Receive_DMA
/tmp/cc7An1gz.s:753 .text.HAL_UART_Receive_DMA:00000000000000a4 $d
/tmp/cc7An1gz.s:1498 .text.UART_DMAReceiveCplt:0000000000000000 UART_DMAReceiveCplt
/tmp/cc7An1gz.s:1723 .text.UART_DMARxHalfCplt:0000000000000000 UART_DMARxHalfCplt
/tmp/cc7An1gz.s:760 .text.HAL_UART_DMAPause:0000000000000000 $t
/tmp/cc7An1gz.s:767 .text.HAL_UART_DMAPause:0000000000000000 HAL_UART_DMAPause
/tmp/cc7An1gz.s:855 .text.HAL_UART_DMAPause:0000000000000068 $d
/tmp/cc7An1gz.s:860 .text.HAL_UART_DMAResume:0000000000000000 $t
/tmp/cc7An1gz.s:867 .text.HAL_UART_DMAResume:0000000000000000 HAL_UART_DMAResume
/tmp/cc7An1gz.s:950 .text.HAL_UART_DMAStop:0000000000000000 $t
/tmp/cc7An1gz.s:957 .text.HAL_UART_DMAStop:0000000000000000 HAL_UART_DMAStop
/tmp/cc7An1gz.s:1069 .text.HAL_UART_DMAStop:000000000000007c $d
/tmp/cc7An1gz.s:1076 .text.HAL_UART_Abort:0000000000000000 $t
/tmp/cc7An1gz.s:1083 .text.HAL_UART_Abort:0000000000000000 HAL_UART_Abort
/tmp/cc7An1gz.s:1182 .text.HAL_UART_Abort:000000000000007c $d
/tmp/cc7An1gz.s:1187 .text.HAL_UART_AbortTransmit:0000000000000000 $t
/tmp/cc7An1gz.s:1194 .text.HAL_UART_AbortTransmit:0000000000000000 HAL_UART_AbortTransmit
/tmp/cc7An1gz.s:1253 .text.HAL_UART_AbortReceive:0000000000000000 $t
/tmp/cc7An1gz.s:1260 .text.HAL_UART_AbortReceive:0000000000000000 HAL_UART_AbortReceive
/tmp/cc7An1gz.s:1329 .text.HAL_UART_AbortReceive:0000000000000050 $d
/tmp/cc7An1gz.s:1334 .text.HAL_UART_TxCpltCallback:0000000000000000 $t
/tmp/cc7An1gz.s:1341 .text.HAL_UART_TxCpltCallback:0000000000000000 HAL_UART_TxCpltCallback
/tmp/cc7An1gz.s:1356 .text.UART_DMATransmitCplt:0000000000000000 $t
/tmp/cc7An1gz.s:1417 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 $t
/tmp/cc7An1gz.s:1424 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 HAL_UART_TxHalfCpltCallback
/tmp/cc7An1gz.s:1439 .text.UART_DMATxHalfCplt:0000000000000000 $t
/tmp/cc7An1gz.s:1470 .text.HAL_UART_RxCpltCallback:0000000000000000 $t
/tmp/cc7An1gz.s:1477 .text.HAL_UART_RxCpltCallback:0000000000000000 HAL_UART_RxCpltCallback
/tmp/cc7An1gz.s:1492 .text.UART_DMAReceiveCplt:0000000000000000 $t
/tmp/cc7An1gz.s:1557 .text.UART_DMAReceiveCplt:0000000000000040 $d
/tmp/cc7An1gz.s:1562 .text.UART_Receive_IT:0000000000000000 $t
/tmp/cc7An1gz.s:1568 .text.UART_Receive_IT:0000000000000000 UART_Receive_IT
/tmp/cc7An1gz.s:1690 .text.UART_Receive_IT:0000000000000084 $d
/tmp/cc7An1gz.s:1695 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 $t
/tmp/cc7An1gz.s:1702 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 HAL_UART_RxHalfCpltCallback
/tmp/cc7An1gz.s:1717 .text.UART_DMARxHalfCplt:0000000000000000 $t
/tmp/cc7An1gz.s:1748 .text.HAL_UART_ErrorCallback:0000000000000000 $t
ARM GAS /tmp/cc7An1gz.s page 159
/tmp/cc7An1gz.s:1755 .text.HAL_UART_ErrorCallback:0000000000000000 HAL_UART_ErrorCallback
/tmp/cc7An1gz.s:1770 .text.UART_DMAError:0000000000000000 $t
/tmp/cc7An1gz.s:1874 .text.UART_DMAError:000000000000006c $d
/tmp/cc7An1gz.s:1881 .text.HAL_UART_IRQHandler:0000000000000000 $t
/tmp/cc7An1gz.s:1888 .text.HAL_UART_IRQHandler:0000000000000000 HAL_UART_IRQHandler
/tmp/cc7An1gz.s:2265 .text.HAL_UART_IRQHandler:00000000000001c0 $d
/tmp/cc7An1gz.s:2279 .text.UART_DMAAbortOnError:0000000000000000 UART_DMAAbortOnError
/tmp/cc7An1gz.s:2273 .text.UART_DMAAbortOnError:0000000000000000 $t
/tmp/cc7An1gz.s:2311 .text.HAL_UART_AbortCpltCallback:0000000000000000 $t
/tmp/cc7An1gz.s:2318 .text.HAL_UART_AbortCpltCallback:0000000000000000 HAL_UART_AbortCpltCallback
/tmp/cc7An1gz.s:2333 .text.HAL_UART_Abort_IT:0000000000000000 $t
/tmp/cc7An1gz.s:2340 .text.HAL_UART_Abort_IT:0000000000000000 HAL_UART_Abort_IT
/tmp/cc7An1gz.s:2510 .text.HAL_UART_Abort_IT:00000000000000cc $d
/tmp/cc7An1gz.s:2591 .text.UART_DMATxAbortCallback:0000000000000000 UART_DMATxAbortCallback
/tmp/cc7An1gz.s:2523 .text.UART_DMARxAbortCallback:0000000000000000 UART_DMARxAbortCallback
/tmp/cc7An1gz.s:2517 .text.UART_DMARxAbortCallback:0000000000000000 $t
/tmp/cc7An1gz.s:2585 .text.UART_DMATxAbortCallback:0000000000000000 $t
/tmp/cc7An1gz.s:2653 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 $t
/tmp/cc7An1gz.s:2660 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 HAL_UART_AbortTransmitCpltCallback
/tmp/cc7An1gz.s:2675 .text.HAL_UART_AbortTransmit_IT:0000000000000000 $t
/tmp/cc7An1gz.s:2682 .text.HAL_UART_AbortTransmit_IT:0000000000000000 HAL_UART_AbortTransmit_IT
/tmp/cc7An1gz.s:2767 .text.HAL_UART_AbortTransmit_IT:0000000000000060 $d
/tmp/cc7An1gz.s:2778 .text.UART_DMATxOnlyAbortCallback:0000000000000000 UART_DMATxOnlyAbortCallback
/tmp/cc7An1gz.s:2772 .text.UART_DMATxOnlyAbortCallback:0000000000000000 $t
/tmp/cc7An1gz.s:2811 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 $t
/tmp/cc7An1gz.s:2818 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 HAL_UART_AbortReceiveCpltCallback
/tmp/cc7An1gz.s:2833 .text.HAL_UART_AbortReceive_IT:0000000000000000 $t
/tmp/cc7An1gz.s:2840 .text.HAL_UART_AbortReceive_IT:0000000000000000 HAL_UART_AbortReceive_IT
/tmp/cc7An1gz.s:2939 .text.HAL_UART_AbortReceive_IT:0000000000000078 $d
/tmp/cc7An1gz.s:2951 .text.UART_DMARxOnlyAbortCallback:0000000000000000 UART_DMARxOnlyAbortCallback
/tmp/cc7An1gz.s:2945 .text.UART_DMARxOnlyAbortCallback:0000000000000000 $t
/tmp/cc7An1gz.s:2988 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 $t
/tmp/cc7An1gz.s:2995 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 HAL_MultiProcessor_EnterMuteMode
/tmp/cc7An1gz.s:3016 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 $t
/tmp/cc7An1gz.s:3023 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 HAL_HalfDuplex_EnableTransmitter
/tmp/cc7An1gz.s:3084 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 $t
/tmp/cc7An1gz.s:3091 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 HAL_HalfDuplex_EnableReceiver
/tmp/cc7An1gz.s:3152 .text.HAL_LIN_SendBreak:0000000000000000 $t
/tmp/cc7An1gz.s:3159 .text.HAL_LIN_SendBreak:0000000000000000 HAL_LIN_SendBreak
/tmp/cc7An1gz.s:3214 .text.HAL_UART_GetState:0000000000000000 $t
/tmp/cc7An1gz.s:3221 .text.HAL_UART_GetState:0000000000000000 HAL_UART_GetState
/tmp/cc7An1gz.s:3247 .text.HAL_UART_GetError:0000000000000000 $t
/tmp/cc7An1gz.s:3254 .text.HAL_UART_GetError:0000000000000000 HAL_UART_GetError
/tmp/cc7An1gz.s:3274 .text.UART_SetConfig:0000000000000000 $t
/tmp/cc7An1gz.s:3281 .text.UART_SetConfig:0000000000000000 UART_SetConfig
/tmp/cc7An1gz.s:3399 .rodata.UART_SetConfig:0000000000000000 $d
/tmp/cc7An1gz.s:3939 .text.UART_SetConfig:0000000000000310 $d
/tmp/cc7An1gz.s:3959 .text.UART_SetConfig:0000000000000354 $t
/tmp/cc7An1gz.s:3966 .text.UART_AdvFeatureConfig:0000000000000000 $t
/tmp/cc7An1gz.s:3973 .text.UART_AdvFeatureConfig:0000000000000000 UART_AdvFeatureConfig
/tmp/cc7An1gz.s:4107 .text.UART_AdvFeatureConfig:00000000000000bc $d
/tmp/cc7An1gz.s:4120 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 $t
/tmp/cc7An1gz.s:4127 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 UART_WaitOnFlagUntilTimeout
/tmp/cc7An1gz.s:4219 .text.UART_WaitOnFlagUntilTimeout:0000000000000068 $d
/tmp/cc7An1gz.s:4224 .text.HAL_UART_Transmit:0000000000000000 $t
/tmp/cc7An1gz.s:4231 .text.HAL_UART_Transmit:0000000000000000 HAL_UART_Transmit
/tmp/cc7An1gz.s:4433 .text.HAL_UART_Receive:0000000000000000 $t
ARM GAS /tmp/cc7An1gz.s page 160
/tmp/cc7An1gz.s:4440 .text.HAL_UART_Receive:0000000000000000 HAL_UART_Receive
/tmp/cc7An1gz.s:4706 .text.HAL_UART_Receive:0000000000000134 $d
/tmp/cc7An1gz.s:4711 .text.UART_CheckIdleState:0000000000000000 $t
/tmp/cc7An1gz.s:4718 .text.UART_CheckIdleState:0000000000000000 UART_CheckIdleState
/tmp/cc7An1gz.s:4814 .text.UART_CheckIdleState:000000000000006c $d
/tmp/cc7An1gz.s:4819 .text.HAL_UART_Init:0000000000000000 $t
/tmp/cc7An1gz.s:4826 .text.HAL_UART_Init:0000000000000000 HAL_UART_Init
/tmp/cc7An1gz.s:4921 .text.HAL_UART_Init:000000000000006c $d
/tmp/cc7An1gz.s:4926 .text.HAL_HalfDuplex_Init:0000000000000000 $t
/tmp/cc7An1gz.s:4933 .text.HAL_HalfDuplex_Init:0000000000000000 HAL_HalfDuplex_Init
/tmp/cc7An1gz.s:5034 .text.HAL_HalfDuplex_Init:0000000000000078 $d
/tmp/cc7An1gz.s:5039 .text.HAL_LIN_Init:0000000000000000 $t
/tmp/cc7An1gz.s:5046 .text.HAL_LIN_Init:0000000000000000 HAL_LIN_Init
/tmp/cc7An1gz.s:5182 .text.HAL_LIN_Init:00000000000000a0 $d
/tmp/cc7An1gz.s:5187 .text.HAL_MultiProcessor_Init:0000000000000000 $t
/tmp/cc7An1gz.s:5194 .text.HAL_MultiProcessor_Init:0000000000000000 HAL_MultiProcessor_Init
/tmp/cc7An1gz.s:5319 .text.HAL_MultiProcessor_Init:0000000000000098 $d
/tmp/cc7An1gz.s:5325 .text.HAL_MultiProcessor_EnableMuteMode:0000000000000000 $t
/tmp/cc7An1gz.s:5332 .text.HAL_MultiProcessor_EnableMuteMode:0000000000000000 HAL_MultiProcessor_EnableMuteMode
/tmp/cc7An1gz.s:5384 .text.HAL_MultiProcessor_DisableMuteMode:0000000000000000 $t
/tmp/cc7An1gz.s:5391 .text.HAL_MultiProcessor_DisableMuteMode:0000000000000000 HAL_MultiProcessor_DisableMuteMode
/tmp/cc7An1gz.s:5441 .text.HAL_MultiProcessor_DisableMuteMode:0000000000000030 $d
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
HAL_DMA_Start_IT
HAL_DMA_Abort
HAL_DMA_Abort_IT
HAL_UARTEx_WakeupCallback
__aeabi_uldivmod
__aeabi_uidiv
HAL_RCCEx_GetPeriphCLKFreq
HAL_RCC_GetPCLK1Freq
HAL_RCC_GetSysClockFreq
HAL_RCC_GetPCLK2Freq
HAL_GetTick