ARM GAS  /tmp/ccvzS1Bu.s 			page 1


   1              		.cpu cortex-m0
   2              		.arch armv6s-m
   3              		.fpu softvfp
   4              		.eabi_attribute 23, 1
   5              		.eabi_attribute 24, 1
   6              		.eabi_attribute 25, 1
   7              		.eabi_attribute 26, 1
   8              		.eabi_attribute 30, 2
   9              		.eabi_attribute 34, 0
  10              		.eabi_attribute 18, 4
  11              		.file	"lcm32f06x_usart.c"
  12              		.text
  13              	.Ltext0:
  14              		.cfi_sections	.debug_frame
  15              		.file 1 "Library/src/lcm32f06x_usart.c"
  16              		.section	.text.USART_DeInit,"ax",%progbits
  17              		.align	1
  18              		.p2align 2,,3
  19              		.global	USART_DeInit
  20              		.syntax unified
  21              		.code	16
  22              		.thumb_func
  24              	USART_DeInit:
  25              	.LVL0:
  26              	.LFB45:
   1:Library/src/lcm32f06x_usart.c **** /**
   2:Library/src/lcm32f06x_usart.c ****   ******************************************************************************
   3:Library/src/lcm32f06x_usart.c ****   * @file    lcm32f06x_usart.c 
   4:Library/src/lcm32f06x_usart.c ****   * @author  System R&D Team
   5:Library/src/lcm32f06x_usart.c ****   * @version V2.0.2
   6:Library/src/lcm32f06x_usart.c ****   * @date    10-April-2025
   7:Library/src/lcm32f06x_usart.c ****   * @brief   There are two USART in lcm32f06x USART0 and USART1 .
   8:Library/src/lcm32f06x_usart.c ****   ******************************************************************************
   9:Library/src/lcm32f06x_usart.c ****   * @attention
  10:Library/src/lcm32f06x_usart.c ****   *
  11:Library/src/lcm32f06x_usart.c ****   * Copyright (c) Hangzhou Lingxin Microelectronics Co.
  12:Library/src/lcm32f06x_usart.c ****   * All rights reserved.
  13:Library/src/lcm32f06x_usart.c ****   *
  14:Library/src/lcm32f06x_usart.c ****   * This software is licensed under terms that can be found in the LICENSE file
  15:Library/src/lcm32f06x_usart.c ****   * in the root directory of this software component.
  16:Library/src/lcm32f06x_usart.c ****   * If no LICENSE file comes with this software, it is provided AS-IS.
  17:Library/src/lcm32f06x_usart.c ****   *
  18:Library/src/lcm32f06x_usart.c ****   ******************************************************************************
  19:Library/src/lcm32f06x_usart.c ****   */
  20:Library/src/lcm32f06x_usart.c **** 
  21:Library/src/lcm32f06x_usart.c **** /* Includes ------------------------------------------------------------------*/
  22:Library/src/lcm32f06x_usart.c **** #include "lcm32f06x_usart.h"
  23:Library/src/lcm32f06x_usart.c **** 
  24:Library/src/lcm32f06x_usart.c **** /* Private define ------------------------------------------------------------*/
  25:Library/src/lcm32f06x_usart.c **** 
  26:Library/src/lcm32f06x_usart.c **** /**
  27:Library/src/lcm32f06x_usart.c ****   * @name   USART_DeInit
  28:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Deinitializes the USARTx peripheral registers to their default reset values.
  29:Library/src/lcm32f06x_usart.c ****   *         CN: 将 USARTx 外设寄存器初始化为其默认重置值。
  30:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
  31:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
  32:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
ARM GAS  /tmp/ccvzS1Bu.s 			page 2


  33:Library/src/lcm32f06x_usart.c ****   * @retval None
  34:Library/src/lcm32f06x_usart.c ****   */
  35:Library/src/lcm32f06x_usart.c **** void USART_DeInit(USART_TypeDef *USARTx)
  36:Library/src/lcm32f06x_usart.c **** {
  27              		.loc 1 36 1 view -0
  28              		.cfi_startproc
  29              		@ args = 0, pretend = 0, frame = 0
  30              		@ frame_needed = 0, uses_anonymous_args = 0
  37:Library/src/lcm32f06x_usart.c **** 
  38:Library/src/lcm32f06x_usart.c ****   if (USARTx == USART0)
  31              		.loc 1 38 3 view .LVU1
  32              		.loc 1 38 6 is_stmt 0 view .LVU2
  33 0000 0E4B     		ldr	r3, .L7
  36:Library/src/lcm32f06x_usart.c **** 
  34              		.loc 1 36 1 view .LVU3
  35 0002 10B5     		push	{r4, lr}
  36              	.LCFI0:
  37              		.cfi_def_cfa_offset 8
  38              		.cfi_offset 4, -8
  39              		.cfi_offset 14, -4
  40              		.loc 1 38 6 view .LVU4
  41 0004 9842     		cmp	r0, r3
  42 0006 03D0     		beq	.L5
  39:Library/src/lcm32f06x_usart.c ****   {
  40:Library/src/lcm32f06x_usart.c ****     RCC_APB0PeriphResetCmd(RCC_APB0Periph_USART0, ENABLE);
  41:Library/src/lcm32f06x_usart.c ****     RCC_APB0PeriphResetCmd(RCC_APB0Periph_USART0, DISABLE);
  42:Library/src/lcm32f06x_usart.c ****   }
  43:Library/src/lcm32f06x_usart.c ****   else if (USARTx == USART1)
  43              		.loc 1 43 8 is_stmt 1 view .LVU5
  44              		.loc 1 43 11 is_stmt 0 view .LVU6
  45 0008 0D4B     		ldr	r3, .L7+4
  46 000a 9842     		cmp	r0, r3
  47 000c 0BD0     		beq	.L6
  48              	.LVL1:
  49              	.L1:
  44:Library/src/lcm32f06x_usart.c ****   {
  45:Library/src/lcm32f06x_usart.c ****     RCC_APB0PeriphResetCmd(RCC_APB0Periph_USART1, ENABLE);
  46:Library/src/lcm32f06x_usart.c ****     RCC_APB0PeriphResetCmd(RCC_APB0Periph_USART1, DISABLE);
  47:Library/src/lcm32f06x_usart.c ****   }
  48:Library/src/lcm32f06x_usart.c **** }
  50              		.loc 1 48 1 view .LVU7
  51              		@ sp needed
  52 000e 10BD     		pop	{r4, pc}
  53              	.LVL2:
  54              	.L5:
  40:Library/src/lcm32f06x_usart.c ****     RCC_APB0PeriphResetCmd(RCC_APB0Periph_USART0, DISABLE);
  55              		.loc 1 40 5 is_stmt 1 view .LVU8
  56 0010 8020     		movs	r0, #128
  57              	.LVL3:
  40:Library/src/lcm32f06x_usart.c ****     RCC_APB0PeriphResetCmd(RCC_APB0Periph_USART0, DISABLE);
  58              		.loc 1 40 5 is_stmt 0 view .LVU9
  59 0012 0121     		movs	r1, #1
  60 0014 8001     		lsls	r0, r0, #6
  61 0016 FFF7FEFF 		bl	RCC_APB0PeriphResetCmd
  62              	.LVL4:
  41:Library/src/lcm32f06x_usart.c ****   }
  63              		.loc 1 41 5 is_stmt 1 view .LVU10
ARM GAS  /tmp/ccvzS1Bu.s 			page 3


  64 001a 8020     		movs	r0, #128
  65 001c 0021     		movs	r1, #0
  66 001e 8001     		lsls	r0, r0, #6
  67 0020 FFF7FEFF 		bl	RCC_APB0PeriphResetCmd
  68              	.LVL5:
  69 0024 F3E7     		b	.L1
  70              	.LVL6:
  71              	.L6:
  45:Library/src/lcm32f06x_usart.c ****     RCC_APB0PeriphResetCmd(RCC_APB0Periph_USART1, DISABLE);
  72              		.loc 1 45 5 view .LVU11
  73 0026 8020     		movs	r0, #128
  74              	.LVL7:
  45:Library/src/lcm32f06x_usart.c ****     RCC_APB0PeriphResetCmd(RCC_APB0Periph_USART1, DISABLE);
  75              		.loc 1 45 5 is_stmt 0 view .LVU12
  76 0028 0121     		movs	r1, #1
  77 002a C001     		lsls	r0, r0, #7
  78 002c FFF7FEFF 		bl	RCC_APB0PeriphResetCmd
  79              	.LVL8:
  46:Library/src/lcm32f06x_usart.c ****   }
  80              		.loc 1 46 5 is_stmt 1 view .LVU13
  81 0030 8020     		movs	r0, #128
  82 0032 0021     		movs	r1, #0
  83 0034 C001     		lsls	r0, r0, #7
  84 0036 FFF7FEFF 		bl	RCC_APB0PeriphResetCmd
  85              	.LVL9:
  86              		.loc 1 48 1 is_stmt 0 view .LVU14
  87 003a E8E7     		b	.L1
  88              	.L8:
  89              		.align	2
  90              	.L7:
  91 003c 00400140 		.word	1073823744
  92 0040 00500140 		.word	1073827840
  93              		.cfi_endproc
  94              	.LFE45:
  96              		.section	.text.USART_BaudRateConfig,"ax",%progbits
  97              		.align	1
  98              		.p2align 2,,3
  99              		.global	USART_BaudRateConfig
 100              		.syntax unified
 101              		.code	16
 102              		.thumb_func
 104              	USART_BaudRateConfig:
 105              	.LVL10:
 106              	.LFB46:
  49:Library/src/lcm32f06x_usart.c **** 
  50:Library/src/lcm32f06x_usart.c **** /**
  51:Library/src/lcm32f06x_usart.c ****   * @name   USART_BaudRateConfig
  52:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Serial Port Baud Rate Configuration.
  53:Library/src/lcm32f06x_usart.c ****   *         CN: 串口波特率配置。
  54:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
  55:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
  56:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设
  57:Library/src/lcm32f06x_usart.c ****   * @param  Baud:
  58:Library/src/lcm32f06x_usart.c ****   *         EN: USART communication baud rate.
  59:Library/src/lcm32f06x_usart.c ****   *         CN: USART 通信波特率
  60:Library/src/lcm32f06x_usart.c ****   * @retval None
  61:Library/src/lcm32f06x_usart.c ****   */
ARM GAS  /tmp/ccvzS1Bu.s 			page 4


  62:Library/src/lcm32f06x_usart.c **** void USART_BaudRateConfig(USART_TypeDef *USARTx, uint32_t Baud)
  63:Library/src/lcm32f06x_usart.c **** {
 107              		.loc 1 63 1 is_stmt 1 view -0
 108              		.cfi_startproc
 109              		@ args = 0, pretend = 0, frame = 48
 110              		@ frame_needed = 0, uses_anonymous_args = 0
  64:Library/src/lcm32f06x_usart.c ****   uint32_t freq;
 111              		.loc 1 64 3 view .LVU16
  65:Library/src/lcm32f06x_usart.c ****   RCC_ClocksTypeDef RCC_Clocks;
 112              		.loc 1 65 3 view .LVU17
  66:Library/src/lcm32f06x_usart.c **** 
  67:Library/src/lcm32f06x_usart.c ****   uint32_t baud16;
 113              		.loc 1 67 3 view .LVU18
  68:Library/src/lcm32f06x_usart.c ****   uint16_t div_int;
 114              		.loc 1 68 3 view .LVU19
  69:Library/src/lcm32f06x_usart.c ****   uint32_t div_frac;
 115              		.loc 1 69 3 view .LVU20
  70:Library/src/lcm32f06x_usart.c **** 
  71:Library/src/lcm32f06x_usart.c ****   RCC_GetClockFreq(&RCC_Clocks);
 116              		.loc 1 71 3 view .LVU21
  63:Library/src/lcm32f06x_usart.c ****   uint32_t freq;
 117              		.loc 1 63 1 is_stmt 0 view .LVU22
 118 0000 F0B5     		push	{r4, r5, r6, r7, lr}
 119              	.LCFI1:
 120              		.cfi_def_cfa_offset 20
 121              		.cfi_offset 4, -20
 122              		.cfi_offset 5, -16
 123              		.cfi_offset 6, -12
 124              		.cfi_offset 7, -8
 125              		.cfi_offset 14, -4
 126 0002 8DB0     		sub	sp, sp, #52
 127              	.LCFI2:
 128              		.cfi_def_cfa_offset 72
  63:Library/src/lcm32f06x_usart.c ****   uint32_t freq;
 129              		.loc 1 63 1 view .LVU23
 130 0004 0700     		movs	r7, r0
 131              		.loc 1 71 3 view .LVU24
 132 0006 6846     		mov	r0, sp
 133              	.LVL11:
  63:Library/src/lcm32f06x_usart.c ****   uint32_t freq;
 134              		.loc 1 63 1 view .LVU25
 135 0008 0C00     		movs	r4, r1
 136              		.loc 1 71 3 view .LVU26
 137 000a FFF7FEFF 		bl	RCC_GetClockFreq
 138              	.LVL12:
  72:Library/src/lcm32f06x_usart.c ****   if (USARTx == USART0)
 139              		.loc 1 72 3 is_stmt 1 view .LVU27
 140              		.loc 1 72 6 is_stmt 0 view .LVU28
 141 000e 0F4B     		ldr	r3, .L14
 142 0010 9F42     		cmp	r7, r3
 143 0012 18D0     		beq	.L12
  73:Library/src/lcm32f06x_usart.c ****   {
  74:Library/src/lcm32f06x_usart.c ****     freq = RCC_Clocks.USART0_Frequency;
  75:Library/src/lcm32f06x_usart.c ****   }
  76:Library/src/lcm32f06x_usart.c ****   else if (USARTx == USART1)
 144              		.loc 1 76 8 is_stmt 1 view .LVU29
 145              		.loc 1 76 11 is_stmt 0 view .LVU30
ARM GAS  /tmp/ccvzS1Bu.s 			page 5


 146 0014 0E4B     		ldr	r3, .L14+4
 147 0016 9F42     		cmp	r7, r3
 148 0018 13D0     		beq	.L13
 149              	.L11:
 150              	.LVL13:
  77:Library/src/lcm32f06x_usart.c ****   {
  78:Library/src/lcm32f06x_usart.c ****     freq = RCC_Clocks.USART1_Frequency;
  79:Library/src/lcm32f06x_usart.c ****   }
  80:Library/src/lcm32f06x_usart.c ****   baud16 = Baud * 16;
 151              		.loc 1 80 3 is_stmt 1 view .LVU31
 152              		.loc 1 80 10 is_stmt 0 view .LVU32
 153 001a 2401     		lsls	r4, r4, #4
 154              	.LVL14:
  81:Library/src/lcm32f06x_usart.c ****   div_int = freq / baud16;
 155              		.loc 1 81 3 is_stmt 1 view .LVU33
  82:Library/src/lcm32f06x_usart.c ****   div_frac = freq - baud16 * div_int;
 156              		.loc 1 82 3 view .LVU34
  81:Library/src/lcm32f06x_usart.c ****   div_int = freq / baud16;
 157              		.loc 1 81 18 is_stmt 0 view .LVU35
 158 001c 2100     		movs	r1, r4
 159 001e 2800     		movs	r0, r5
 160 0020 FFF7FEFF 		bl	__aeabi_uidiv
 161              	.LVL15:
 162 0024 0604     		lsls	r6, r0, #16
 163 0026 360C     		lsrs	r6, r6, #16
 164              	.LVL16:
  83:Library/src/lcm32f06x_usart.c ****   div_frac = (div_frac * 64 + baud16 / 2) / baud16;
 165              		.loc 1 83 3 is_stmt 1 view .LVU36
  82:Library/src/lcm32f06x_usart.c ****   div_frac = freq - baud16 * div_int;
 166              		.loc 1 82 28 is_stmt 0 view .LVU37
 167 0028 3300     		movs	r3, r6
 168 002a 6343     		muls	r3, r4
  82:Library/src/lcm32f06x_usart.c ****   div_frac = freq - baud16 * div_int;
 169              		.loc 1 82 12 view .LVU38
 170 002c ED1A     		subs	r5, r5, r3
 171              	.LVL17:
 172              		.loc 1 83 24 view .LVU39
 173 002e AD01     		lsls	r5, r5, #6
 174              	.LVL18:
 175              		.loc 1 83 38 view .LVU40
 176 0030 6008     		lsrs	r0, r4, #1
 177              		.loc 1 83 12 view .LVU41
 178 0032 2100     		movs	r1, r4
 179              		.loc 1 83 29 view .LVU42
 180 0034 2818     		adds	r0, r5, r0
 181              		.loc 1 83 12 view .LVU43
 182 0036 FFF7FEFF 		bl	__aeabi_uidiv
 183              	.LVL19:
  84:Library/src/lcm32f06x_usart.c ****   USARTx->IBRD = div_int;
 184              		.loc 1 84 3 is_stmt 1 view .LVU44
 185              		.loc 1 84 16 is_stmt 0 view .LVU45
 186 003a 7E62     		str	r6, [r7, #36]
  85:Library/src/lcm32f06x_usart.c ****   USARTx->FBRD = div_frac;
 187              		.loc 1 85 3 is_stmt 1 view .LVU46
 188              		.loc 1 85 16 is_stmt 0 view .LVU47
 189 003c B862     		str	r0, [r7, #40]
  86:Library/src/lcm32f06x_usart.c **** }
ARM GAS  /tmp/ccvzS1Bu.s 			page 6


 190              		.loc 1 86 1 view .LVU48
 191 003e 0DB0     		add	sp, sp, #52
 192              		@ sp needed
 193              	.LVL20:
 194              	.LVL21:
 195              		.loc 1 86 1 view .LVU49
 196 0040 F0BD     		pop	{r4, r5, r6, r7, pc}
 197              	.LVL22:
 198              	.L13:
  78:Library/src/lcm32f06x_usart.c ****   }
 199              		.loc 1 78 5 is_stmt 1 view .LVU50
  78:Library/src/lcm32f06x_usart.c ****   }
 200              		.loc 1 78 10 is_stmt 0 view .LVU51
 201 0042 099D     		ldr	r5, [sp, #36]
 202 0044 E9E7     		b	.L11
 203              	.L12:
  74:Library/src/lcm32f06x_usart.c ****   }
 204              		.loc 1 74 5 is_stmt 1 view .LVU52
  74:Library/src/lcm32f06x_usart.c ****   }
 205              		.loc 1 74 10 is_stmt 0 view .LVU53
 206 0046 089D     		ldr	r5, [sp, #32]
 207              	.LVL23:
  74:Library/src/lcm32f06x_usart.c ****   }
 208              		.loc 1 74 10 view .LVU54
 209 0048 E7E7     		b	.L11
 210              	.L15:
 211 004a C046     		.align	2
 212              	.L14:
 213 004c 00400140 		.word	1073823744
 214 0050 00500140 		.word	1073827840
 215              		.cfi_endproc
 216              	.LFE46:
 218              		.section	.text.USART_Init,"ax",%progbits
 219              		.align	1
 220              		.p2align 2,,3
 221              		.global	USART_Init
 222              		.syntax unified
 223              		.code	16
 224              		.thumb_func
 226              	USART_Init:
 227              	.LVL24:
 228              	.LFB47:
  87:Library/src/lcm32f06x_usart.c **** 
  88:Library/src/lcm32f06x_usart.c **** /**
  89:Library/src/lcm32f06x_usart.c ****   * @name   USART_Init
  90:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Initializes the USARTx peripheral according to the specified.
  91:Library/src/lcm32f06x_usart.c ****   *             parameters in the USART_InitStruct.
  92:Library/src/lcm32f06x_usart.c ****   *         CN: 根据 USART_InitStruct 中指定的参数初始化 USARTx 外设。
  93:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
  94:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
  95:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
  96:Library/src/lcm32f06x_usart.c ****   * @param  USART_InitStruct:
  97:Library/src/lcm32f06x_usart.c ****   *         EN: pointer to a USART_InitTypeDef structure that contains the 
  98:Library/src/lcm32f06x_usart.c ****   *             configuration information for the specified USART peripheral.
  99:Library/src/lcm32f06x_usart.c ****   *         CN: 指向 USART_InitTypeDef 结构的指针，该结构包含指定 USART 外设的配置信息。
 100:Library/src/lcm32f06x_usart.c ****   * @retval None
 101:Library/src/lcm32f06x_usart.c ****   */
ARM GAS  /tmp/ccvzS1Bu.s 			page 7


 102:Library/src/lcm32f06x_usart.c **** void USART_Init(USART_TypeDef *USARTx, USART_InitTypeDef *USART_InitStruct)
 103:Library/src/lcm32f06x_usart.c **** {
 229              		.loc 1 103 1 is_stmt 1 view -0
 230              		.cfi_startproc
 231              		@ args = 0, pretend = 0, frame = 48
 232              		@ frame_needed = 0, uses_anonymous_args = 0
 104:Library/src/lcm32f06x_usart.c ****   uint32_t tmpreg = 0;
 233              		.loc 1 104 3 view .LVU56
 105:Library/src/lcm32f06x_usart.c **** 
 106:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 107:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_BAUDRATE(USART_InitStruct->USART_BaudRate));  
 234              		.loc 1 107 3 view .LVU57
 108:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_WORD_LENGTH(USART_InitStruct->USART_WordLength));
 235              		.loc 1 108 3 view .LVU58
 109:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_STOPBITS(USART_InitStruct->USART_StopBits));
 236              		.loc 1 109 3 view .LVU59
 110:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_PARITY(USART_InitStruct->USART_Parity));
 237              		.loc 1 110 3 view .LVU60
 111:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_MODE(USART_InitStruct->USART_Mode));
 238              		.loc 1 111 3 view .LVU61
 112:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_HARDWARE_FLOW_CONTROL(USART_InitStruct->USART_HardwareFlowControl));
 239              		.loc 1 112 3 view .LVU62
 113:Library/src/lcm32f06x_usart.c ****   
 114:Library/src/lcm32f06x_usart.c ****   /* Disable USART */
 115:Library/src/lcm32f06x_usart.c ****   USARTx->CR &= (uint32_t)(~USART_CR_USARTEN_Msk);
 240              		.loc 1 115 3 view .LVU63
 103:Library/src/lcm32f06x_usart.c ****   uint32_t tmpreg = 0;
 241              		.loc 1 103 1 is_stmt 0 view .LVU64
 242 0000 F0B5     		push	{r4, r5, r6, r7, lr}
 243              	.LCFI3:
 244              		.cfi_def_cfa_offset 20
 245              		.cfi_offset 4, -20
 246              		.cfi_offset 5, -16
 247              		.cfi_offset 6, -12
 248              		.cfi_offset 7, -8
 249              		.cfi_offset 14, -4
 250 0002 C646     		mov	lr, r8
 251              		.loc 1 115 14 view .LVU65
 252 0004 0122     		movs	r2, #1
 103:Library/src/lcm32f06x_usart.c ****   uint32_t tmpreg = 0;
 253              		.loc 1 103 1 view .LVU66
 254 0006 00B5     		push	{lr}
 255              	.LCFI4:
 256              		.cfi_def_cfa_offset 24
 257              		.cfi_offset 8, -24
 258              		.loc 1 115 9 view .LVU67
 259 0008 036B     		ldr	r3, [r0, #48]
 103:Library/src/lcm32f06x_usart.c ****   uint32_t tmpreg = 0;
 260              		.loc 1 103 1 view .LVU68
 261 000a 8CB0     		sub	sp, sp, #48
 262              	.LCFI5:
 263              		.cfi_def_cfa_offset 72
 264              		.loc 1 115 14 view .LVU69
 265 000c 9343     		bics	r3, r2
 266 000e 0363     		str	r3, [r0, #48]
 116:Library/src/lcm32f06x_usart.c **** 
 117:Library/src/lcm32f06x_usart.c ****   USART_BaudRateConfig(USARTx, (USART_InitStruct->USART_BaudRate));
ARM GAS  /tmp/ccvzS1Bu.s 			page 8


 267              		.loc 1 117 3 is_stmt 1 view .LVU70
 103:Library/src/lcm32f06x_usart.c ****   uint32_t tmpreg = 0;
 268              		.loc 1 103 1 is_stmt 0 view .LVU71
 269 0010 0400     		movs	r4, r0
 270              	.LBB4:
 271              	.LBB5:
  71:Library/src/lcm32f06x_usart.c ****   if (USARTx == USART0)
 272              		.loc 1 71 3 view .LVU72
 273 0012 6846     		mov	r0, sp
 274              	.LVL25:
  71:Library/src/lcm32f06x_usart.c ****   if (USARTx == USART0)
 275              		.loc 1 71 3 view .LVU73
 276              	.LBE5:
 277              	.LBE4:
 103:Library/src/lcm32f06x_usart.c ****   uint32_t tmpreg = 0;
 278              		.loc 1 103 1 view .LVU74
 279 0014 0D00     		movs	r5, r1
 280              		.loc 1 117 3 view .LVU75
 281 0016 0F68     		ldr	r7, [r1]
 282              	.LVL26:
 283              	.LBB11:
 284              	.LBI4:
  62:Library/src/lcm32f06x_usart.c **** {
 285              		.loc 1 62 6 is_stmt 1 view .LVU76
 286              	.LBB6:
  64:Library/src/lcm32f06x_usart.c ****   RCC_ClocksTypeDef RCC_Clocks;
 287              		.loc 1 64 3 view .LVU77
  65:Library/src/lcm32f06x_usart.c **** 
 288              		.loc 1 65 3 view .LVU78
  67:Library/src/lcm32f06x_usart.c ****   uint16_t div_int;
 289              		.loc 1 67 3 view .LVU79
  68:Library/src/lcm32f06x_usart.c ****   uint32_t div_frac;
 290              		.loc 1 68 3 view .LVU80
  69:Library/src/lcm32f06x_usart.c **** 
 291              		.loc 1 69 3 view .LVU81
  71:Library/src/lcm32f06x_usart.c ****   if (USARTx == USART0)
 292              		.loc 1 71 3 view .LVU82
 293 0018 FFF7FEFF 		bl	RCC_GetClockFreq
 294              	.LVL27:
  72:Library/src/lcm32f06x_usart.c ****   {
 295              		.loc 1 72 3 view .LVU83
  72:Library/src/lcm32f06x_usart.c ****   {
 296              		.loc 1 72 6 is_stmt 0 view .LVU84
 297 001c 294B     		ldr	r3, .L26
 298 001e 9C42     		cmp	r4, r3
 299 0020 4DD0     		beq	.L22
  76:Library/src/lcm32f06x_usart.c ****   {
 300              		.loc 1 76 8 is_stmt 1 view .LVU85
  76:Library/src/lcm32f06x_usart.c ****   {
 301              		.loc 1 76 11 is_stmt 0 view .LVU86
 302 0022 294B     		ldr	r3, .L26+4
 303 0024 9C42     		cmp	r4, r3
 304 0026 3DD0     		beq	.L23
 305              	.L18:
 306              	.LVL28:
  80:Library/src/lcm32f06x_usart.c ****   div_int = freq / baud16;
 307              		.loc 1 80 3 is_stmt 1 view .LVU87
ARM GAS  /tmp/ccvzS1Bu.s 			page 9


  80:Library/src/lcm32f06x_usart.c ****   div_int = freq / baud16;
 308              		.loc 1 80 10 is_stmt 0 view .LVU88
 309 0028 3B01     		lsls	r3, r7, #4
  81:Library/src/lcm32f06x_usart.c ****   div_frac = freq - baud16 * div_int;
 310              		.loc 1 81 18 view .LVU89
 311 002a 1900     		movs	r1, r3
 312 002c 3000     		movs	r0, r6
  80:Library/src/lcm32f06x_usart.c ****   div_int = freq / baud16;
 313              		.loc 1 80 10 view .LVU90
 314 002e 9846     		mov	r8, r3
 315              	.LVL29:
  81:Library/src/lcm32f06x_usart.c ****   div_frac = freq - baud16 * div_int;
 316              		.loc 1 81 3 is_stmt 1 view .LVU91
  82:Library/src/lcm32f06x_usart.c ****   div_frac = (div_frac * 64 + baud16 / 2) / baud16;
 317              		.loc 1 82 3 view .LVU92
  81:Library/src/lcm32f06x_usart.c ****   div_frac = freq - baud16 * div_int;
 318              		.loc 1 81 18 is_stmt 0 view .LVU93
 319 0030 FFF7FEFF 		bl	__aeabi_uidiv
 320              	.LVL30:
  81:Library/src/lcm32f06x_usart.c ****   div_frac = freq - baud16 * div_int;
 321              		.loc 1 81 18 view .LVU94
 322 0034 0704     		lsls	r7, r0, #16
 323              	.LVL31:
  82:Library/src/lcm32f06x_usart.c ****   div_frac = (div_frac * 64 + baud16 / 2) / baud16;
 324              		.loc 1 82 28 view .LVU95
 325 0036 4046     		mov	r0, r8
  83:Library/src/lcm32f06x_usart.c ****   USARTx->IBRD = div_int;
 326              		.loc 1 83 38 view .LVU96
 327 0038 4346     		mov	r3, r8
 328 003a 3F0C     		lsrs	r7, r7, #16
 329              	.LVL32:
  83:Library/src/lcm32f06x_usart.c ****   USARTx->IBRD = div_int;
 330              		.loc 1 83 3 is_stmt 1 view .LVU97
  82:Library/src/lcm32f06x_usart.c ****   div_frac = (div_frac * 64 + baud16 / 2) / baud16;
 331              		.loc 1 82 28 is_stmt 0 view .LVU98
 332 003c 7843     		muls	r0, r7
  82:Library/src/lcm32f06x_usart.c ****   div_frac = (div_frac * 64 + baud16 / 2) / baud16;
 333              		.loc 1 82 12 view .LVU99
 334 003e 301A     		subs	r0, r6, r0
 335              	.LVL33:
  83:Library/src/lcm32f06x_usart.c ****   USARTx->IBRD = div_int;
 336              		.loc 1 83 38 view .LVU100
 337 0040 5B08     		lsrs	r3, r3, #1
  83:Library/src/lcm32f06x_usart.c ****   USARTx->IBRD = div_int;
 338              		.loc 1 83 24 view .LVU101
 339 0042 8001     		lsls	r0, r0, #6
 340              	.LVL34:
  83:Library/src/lcm32f06x_usart.c ****   USARTx->IBRD = div_int;
 341              		.loc 1 83 29 view .LVU102
 342 0044 C018     		adds	r0, r0, r3
  83:Library/src/lcm32f06x_usart.c ****   USARTx->IBRD = div_int;
 343              		.loc 1 83 12 view .LVU103
 344 0046 4146     		mov	r1, r8
 345 0048 FFF7FEFF 		bl	__aeabi_uidiv
 346              	.LVL35:
  84:Library/src/lcm32f06x_usart.c ****   USARTx->FBRD = div_frac;
 347              		.loc 1 84 3 is_stmt 1 view .LVU104
ARM GAS  /tmp/ccvzS1Bu.s 			page 10


 348              	.LBE6:
 349              	.LBE11:
 118:Library/src/lcm32f06x_usart.c **** 
 119:Library/src/lcm32f06x_usart.c ****   /* Configure the USART Word Length, Parity and Stop_Bits */
 120:Library/src/lcm32f06x_usart.c ****   tmpreg |= ((USART_InitStruct->USART_WordLength) | 
 350              		.loc 1 120 51 is_stmt 0 view .LVU105
 351 004c AA68     		ldr	r2, [r5, #8]
 352 004e 6B68     		ldr	r3, [r5, #4]
 353              	.LBB12:
 354              	.LBB7:
  84:Library/src/lcm32f06x_usart.c ****   USARTx->FBRD = div_frac;
 355              		.loc 1 84 16 view .LVU106
 356 0050 6762     		str	r7, [r4, #36]
  85:Library/src/lcm32f06x_usart.c **** }
 357              		.loc 1 85 3 is_stmt 1 view .LVU107
 358              	.LBE7:
 359              	.LBE12:
 360              		.loc 1 120 51 is_stmt 0 view .LVU108
 361 0052 1343     		orrs	r3, r2
 121:Library/src/lcm32f06x_usart.c ****              (USART_InitStruct->USART_StopBits)   | 
 362              		.loc 1 121 51 view .LVU109
 363 0054 EA68     		ldr	r2, [r5, #12]
 364              	.LBB13:
 365              	.LBB8:
  85:Library/src/lcm32f06x_usart.c **** }
 366              		.loc 1 85 16 view .LVU110
 367 0056 A062     		str	r0, [r4, #40]
 368              	.LVL36:
  85:Library/src/lcm32f06x_usart.c **** }
 369              		.loc 1 85 16 view .LVU111
 370              	.LBE8:
 371              	.LBE13:
 120:Library/src/lcm32f06x_usart.c ****              (USART_InitStruct->USART_StopBits)   | 
 372              		.loc 1 120 3 is_stmt 1 view .LVU112
 373              		.loc 1 121 51 is_stmt 0 view .LVU113
 374 0058 1343     		orrs	r3, r2
 375              	.LVL37:
 122:Library/src/lcm32f06x_usart.c ****              (USART_InitStruct->USART_Parity));
 123:Library/src/lcm32f06x_usart.c ****   USARTx->LCR = tmpreg;
 376              		.loc 1 123 3 is_stmt 1 view .LVU114
 377              		.loc 1 123 15 is_stmt 0 view .LVU115
 378 005a E362     		str	r3, [r4, #44]
 124:Library/src/lcm32f06x_usart.c **** 
 125:Library/src/lcm32f06x_usart.c ****   /* Configure the USART USART_HardwareFlowControl and Mode */
 126:Library/src/lcm32f06x_usart.c ****   tmpreg = USARTx->CR;
 379              		.loc 1 126 3 is_stmt 1 view .LVU116
 380              		.loc 1 126 10 is_stmt 0 view .LVU117
 381 005c 236B     		ldr	r3, [r4, #48]
 382              	.LVL38:
 127:Library/src/lcm32f06x_usart.c ****   tmpreg &= 0xffff07ff;
 383              		.loc 1 127 3 is_stmt 1 view .LVU118
 384              		.loc 1 127 10 is_stmt 0 view .LVU119
 385 005e 1B4A     		ldr	r2, .L26+8
 386 0060 1340     		ands	r3, r2
 387              	.LVL39:
 128:Library/src/lcm32f06x_usart.c ****   tmpreg |= USART_InitStruct->USART_HardwareFlowControl;
 388              		.loc 1 128 3 is_stmt 1 view .LVU120
ARM GAS  /tmp/ccvzS1Bu.s 			page 11


 389              		.loc 1 128 10 is_stmt 0 view .LVU121
 390 0062 6A69     		ldr	r2, [r5, #20]
 391 0064 1343     		orrs	r3, r2
 392              	.LVL40:
 129:Library/src/lcm32f06x_usart.c ****   USARTx->CR = tmpreg;
 393              		.loc 1 129 3 is_stmt 1 view .LVU122
 130:Library/src/lcm32f06x_usart.c **** 
 131:Library/src/lcm32f06x_usart.c ****   tmpreg = USART_InitStruct->USART_Mode;
 132:Library/src/lcm32f06x_usart.c ****   if (tmpreg == (USART_Mode_Rx | USART_Mode_Tx))
 394              		.loc 1 132 6 is_stmt 0 view .LVU123
 395 0066 C022     		movs	r2, #192
 129:Library/src/lcm32f06x_usart.c ****   USARTx->CR = tmpreg;
 396              		.loc 1 129 14 view .LVU124
 397 0068 2363     		str	r3, [r4, #48]
 131:Library/src/lcm32f06x_usart.c ****   if (tmpreg == (USART_Mode_Rx | USART_Mode_Tx))
 398              		.loc 1 131 3 is_stmt 1 view .LVU125
 131:Library/src/lcm32f06x_usart.c ****   if (tmpreg == (USART_Mode_Rx | USART_Mode_Tx))
 399              		.loc 1 131 10 is_stmt 0 view .LVU126
 400 006a 2B69     		ldr	r3, [r5, #16]
 401              	.LVL41:
 402              		.loc 1 132 3 is_stmt 1 view .LVU127
 403              		.loc 1 132 6 is_stmt 0 view .LVU128
 404 006c 9200     		lsls	r2, r2, #2
 405 006e 9342     		cmp	r3, r2
 406 0070 1AD0     		beq	.L24
 133:Library/src/lcm32f06x_usart.c ****   {
 134:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_Mode_Rx;
 135:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_Mode_Tx;
 136:Library/src/lcm32f06x_usart.c ****   }
 137:Library/src/lcm32f06x_usart.c ****   else if (tmpreg == USART_Mode_Tx)
 407              		.loc 1 137 8 is_stmt 1 view .LVU129
 408              		.loc 1 137 11 is_stmt 0 view .LVU130
 409 0072 8022     		movs	r2, #128
 410 0074 5200     		lsls	r2, r2, #1
 411 0076 9342     		cmp	r3, r2
 412 0078 0CD0     		beq	.L25
 138:Library/src/lcm32f06x_usart.c ****   {
 139:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_Mode_Tx;
 140:Library/src/lcm32f06x_usart.c ****     USARTx->CR &= ~USART_Mode_Rx;
 141:Library/src/lcm32f06x_usart.c ****   }
 142:Library/src/lcm32f06x_usart.c ****   else
 143:Library/src/lcm32f06x_usart.c ****   {
 144:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_Mode_Rx;
 413              		.loc 1 144 5 is_stmt 1 view .LVU131
 414              		.loc 1 144 16 is_stmt 0 view .LVU132
 415 007a 8023     		movs	r3, #128
 416              	.LVL42:
 417              		.loc 1 144 11 view .LVU133
 418 007c 226B     		ldr	r2, [r4, #48]
 419              		.loc 1 144 16 view .LVU134
 420 007e 9B00     		lsls	r3, r3, #2
 421 0080 1343     		orrs	r3, r2
 422 0082 2363     		str	r3, [r4, #48]
 145:Library/src/lcm32f06x_usart.c ****     USARTx->CR &= ~USART_Mode_Tx;
 423              		.loc 1 145 5 is_stmt 1 view .LVU135
 424              		.loc 1 145 11 is_stmt 0 view .LVU136
 425 0084 236B     		ldr	r3, [r4, #48]
ARM GAS  /tmp/ccvzS1Bu.s 			page 12


 426              		.loc 1 145 16 view .LVU137
 427 0086 124A     		ldr	r2, .L26+12
 428 0088 1340     		ands	r3, r2
 429 008a 2363     		str	r3, [r4, #48]
 430              	.LVL43:
 431              	.L16:
 146:Library/src/lcm32f06x_usart.c ****   }
 147:Library/src/lcm32f06x_usart.c **** }
 432              		.loc 1 147 1 view .LVU138
 433 008c 0CB0     		add	sp, sp, #48
 434              		@ sp needed
 435              	.LVL44:
 436              	.LVL45:
 437              	.LVL46:
 438              		.loc 1 147 1 view .LVU139
 439 008e 80BC     		pop	{r7}
 440 0090 B846     		mov	r8, r7
 441 0092 F0BD     		pop	{r4, r5, r6, r7, pc}
 442              	.LVL47:
 443              	.L25:
 139:Library/src/lcm32f06x_usart.c ****     USARTx->CR &= ~USART_Mode_Rx;
 444              		.loc 1 139 5 is_stmt 1 view .LVU140
 139:Library/src/lcm32f06x_usart.c ****     USARTx->CR &= ~USART_Mode_Rx;
 445              		.loc 1 139 11 is_stmt 0 view .LVU141
 446 0094 226B     		ldr	r2, [r4, #48]
 139:Library/src/lcm32f06x_usart.c ****     USARTx->CR &= ~USART_Mode_Rx;
 447              		.loc 1 139 16 view .LVU142
 448 0096 1343     		orrs	r3, r2
 449              	.LVL48:
 139:Library/src/lcm32f06x_usart.c ****     USARTx->CR &= ~USART_Mode_Rx;
 450              		.loc 1 139 16 view .LVU143
 451 0098 2363     		str	r3, [r4, #48]
 140:Library/src/lcm32f06x_usart.c ****   }
 452              		.loc 1 140 5 is_stmt 1 view .LVU144
 140:Library/src/lcm32f06x_usart.c ****   }
 453              		.loc 1 140 11 is_stmt 0 view .LVU145
 454 009a 236B     		ldr	r3, [r4, #48]
 140:Library/src/lcm32f06x_usart.c ****   }
 455              		.loc 1 140 16 view .LVU146
 456 009c 0D4A     		ldr	r2, .L26+16
 457 009e 1340     		ands	r3, r2
 458 00a0 2363     		str	r3, [r4, #48]
 459              	.LVL49:
 140:Library/src/lcm32f06x_usart.c ****   }
 460              		.loc 1 140 16 view .LVU147
 461 00a2 F3E7     		b	.L16
 462              	.LVL50:
 463              	.L23:
 464              	.LBB14:
 465              	.LBB9:
  78:Library/src/lcm32f06x_usart.c ****   }
 466              		.loc 1 78 5 is_stmt 1 view .LVU148
  78:Library/src/lcm32f06x_usart.c ****   }
 467              		.loc 1 78 10 is_stmt 0 view .LVU149
 468 00a4 099E     		ldr	r6, [sp, #36]
 469 00a6 BFE7     		b	.L18
 470              	.LVL51:
ARM GAS  /tmp/ccvzS1Bu.s 			page 13


 471              	.L24:
  78:Library/src/lcm32f06x_usart.c ****   }
 472              		.loc 1 78 10 view .LVU150
 473              	.LBE9:
 474              	.LBE14:
 134:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_Mode_Tx;
 475              		.loc 1 134 5 is_stmt 1 view .LVU151
 134:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_Mode_Tx;
 476              		.loc 1 134 16 is_stmt 0 view .LVU152
 477 00a8 8023     		movs	r3, #128
 478              	.LVL52:
 134:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_Mode_Tx;
 479              		.loc 1 134 11 view .LVU153
 480 00aa 226B     		ldr	r2, [r4, #48]
 134:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_Mode_Tx;
 481              		.loc 1 134 16 view .LVU154
 482 00ac 9B00     		lsls	r3, r3, #2
 483 00ae 1343     		orrs	r3, r2
 484 00b0 2363     		str	r3, [r4, #48]
 135:Library/src/lcm32f06x_usart.c ****   }
 485              		.loc 1 135 5 is_stmt 1 view .LVU155
 135:Library/src/lcm32f06x_usart.c ****   }
 486              		.loc 1 135 16 is_stmt 0 view .LVU156
 487 00b2 8023     		movs	r3, #128
 135:Library/src/lcm32f06x_usart.c ****   }
 488              		.loc 1 135 11 view .LVU157
 489 00b4 226B     		ldr	r2, [r4, #48]
 135:Library/src/lcm32f06x_usart.c ****   }
 490              		.loc 1 135 16 view .LVU158
 491 00b6 5B00     		lsls	r3, r3, #1
 492 00b8 1343     		orrs	r3, r2
 493 00ba 2363     		str	r3, [r4, #48]
 494              	.LVL53:
 135:Library/src/lcm32f06x_usart.c ****   }
 495              		.loc 1 135 16 view .LVU159
 496 00bc E6E7     		b	.L16
 497              	.LVL54:
 498              	.L22:
 499              	.LBB15:
 500              	.LBB10:
  74:Library/src/lcm32f06x_usart.c ****   }
 501              		.loc 1 74 5 is_stmt 1 view .LVU160
  74:Library/src/lcm32f06x_usart.c ****   }
 502              		.loc 1 74 10 is_stmt 0 view .LVU161
 503 00be 089E     		ldr	r6, [sp, #32]
 504              	.LVL55:
  74:Library/src/lcm32f06x_usart.c ****   }
 505              		.loc 1 74 10 view .LVU162
 506 00c0 B2E7     		b	.L18
 507              	.L27:
 508 00c2 C046     		.align	2
 509              	.L26:
 510 00c4 00400140 		.word	1073823744
 511 00c8 00500140 		.word	1073827840
 512 00cc FF07FFFF 		.word	-63489
 513 00d0 FFFEFFFF 		.word	-257
 514 00d4 FFFDFFFF 		.word	-513
ARM GAS  /tmp/ccvzS1Bu.s 			page 14


 515              	.LBE10:
 516              	.LBE15:
 517              		.cfi_endproc
 518              	.LFE47:
 520              		.section	.text.USART_StructInit,"ax",%progbits
 521              		.align	1
 522              		.p2align 2,,3
 523              		.global	USART_StructInit
 524              		.syntax unified
 525              		.code	16
 526              		.thumb_func
 528              	USART_StructInit:
 529              	.LVL56:
 530              	.LFB48:
 148:Library/src/lcm32f06x_usart.c **** 
 149:Library/src/lcm32f06x_usart.c **** /**
 150:Library/src/lcm32f06x_usart.c ****   * @name   USART_StructInit
 151:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Fills each USART_InitStruct member with its default value.
 152:Library/src/lcm32f06x_usart.c ****   *         CN: 用默认值填充每个 USART_InitStruct 成员。
 153:Library/src/lcm32f06x_usart.c ****   * @param  USART_InitStruct:
 154:Library/src/lcm32f06x_usart.c ****   *         EN: pointer to a USART_InitTypeDef structure that contains the 
 155:Library/src/lcm32f06x_usart.c ****   *             configuration information for the specified USART peripheral.
 156:Library/src/lcm32f06x_usart.c ****   *         CN: 指向 USART_InitTypeDef 结构的指针，该结构包含指定 USART 外设的配置信息。
 157:Library/src/lcm32f06x_usart.c ****   * @retval None
 158:Library/src/lcm32f06x_usart.c ****   */
 159:Library/src/lcm32f06x_usart.c **** void USART_StructInit(USART_InitTypeDef *USART_InitStruct)
 160:Library/src/lcm32f06x_usart.c **** {
 531              		.loc 1 160 1 is_stmt 1 view -0
 532              		.cfi_startproc
 533              		@ args = 0, pretend = 0, frame = 0
 534              		@ frame_needed = 0, uses_anonymous_args = 0
 535              		@ link register save eliminated.
 161:Library/src/lcm32f06x_usart.c ****   /* USART_InitStruct members default value */
 162:Library/src/lcm32f06x_usart.c ****   USART_InitStruct->USART_BaudRate = 115200;
 536              		.loc 1 162 3 view .LVU164
 537              		.loc 1 162 36 is_stmt 0 view .LVU165
 538 0000 E123     		movs	r3, #225
 163:Library/src/lcm32f06x_usart.c **** 
 164:Library/src/lcm32f06x_usart.c ****   USART_InitStruct->USART_WordLength = USART_WordLength_8b;
 165:Library/src/lcm32f06x_usart.c **** 
 166:Library/src/lcm32f06x_usart.c ****   USART_InitStruct->USART_StopBits = USART_StopBits_1;
 167:Library/src/lcm32f06x_usart.c **** 
 168:Library/src/lcm32f06x_usart.c ****   USART_InitStruct->USART_Parity = USART_Parity_No;
 169:Library/src/lcm32f06x_usart.c **** 
 170:Library/src/lcm32f06x_usart.c ****   USART_InitStruct->USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
 171:Library/src/lcm32f06x_usart.c ****   
 172:Library/src/lcm32f06x_usart.c ****   USART_InitStruct->USART_HardwareFlowControl = USART_HardwareFlowControl_None;
 173:Library/src/lcm32f06x_usart.c **** }
 539              		.loc 1 173 1 view .LVU166
 540              		@ sp needed
 162:Library/src/lcm32f06x_usart.c **** 
 541              		.loc 1 162 36 view .LVU167
 542 0002 5B02     		lsls	r3, r3, #9
 543 0004 0360     		str	r3, [r0]
 164:Library/src/lcm32f06x_usart.c **** 
 544              		.loc 1 164 3 is_stmt 1 view .LVU168
 164:Library/src/lcm32f06x_usart.c **** 
ARM GAS  /tmp/ccvzS1Bu.s 			page 15


 545              		.loc 1 164 38 is_stmt 0 view .LVU169
 546 0006 6023     		movs	r3, #96
 170:Library/src/lcm32f06x_usart.c ****   
 547              		.loc 1 170 32 view .LVU170
 548 0008 C022     		movs	r2, #192
 164:Library/src/lcm32f06x_usart.c **** 
 549              		.loc 1 164 38 view .LVU171
 550 000a 4360     		str	r3, [r0, #4]
 166:Library/src/lcm32f06x_usart.c **** 
 551              		.loc 1 166 3 is_stmt 1 view .LVU172
 166:Library/src/lcm32f06x_usart.c **** 
 552              		.loc 1 166 36 is_stmt 0 view .LVU173
 553 000c 0023     		movs	r3, #0
 170:Library/src/lcm32f06x_usart.c ****   
 554              		.loc 1 170 32 view .LVU174
 555 000e 9200     		lsls	r2, r2, #2
 166:Library/src/lcm32f06x_usart.c **** 
 556              		.loc 1 166 36 view .LVU175
 557 0010 8360     		str	r3, [r0, #8]
 168:Library/src/lcm32f06x_usart.c **** 
 558              		.loc 1 168 3 is_stmt 1 view .LVU176
 168:Library/src/lcm32f06x_usart.c **** 
 559              		.loc 1 168 34 is_stmt 0 view .LVU177
 560 0012 C360     		str	r3, [r0, #12]
 170:Library/src/lcm32f06x_usart.c ****   
 561              		.loc 1 170 3 is_stmt 1 view .LVU178
 170:Library/src/lcm32f06x_usart.c ****   
 562              		.loc 1 170 32 is_stmt 0 view .LVU179
 563 0014 0261     		str	r2, [r0, #16]
 172:Library/src/lcm32f06x_usart.c **** }
 564              		.loc 1 172 3 is_stmt 1 view .LVU180
 172:Library/src/lcm32f06x_usart.c **** }
 565              		.loc 1 172 47 is_stmt 0 view .LVU181
 566 0016 4361     		str	r3, [r0, #20]
 567              		.loc 1 173 1 view .LVU182
 568 0018 7047     		bx	lr
 569              		.cfi_endproc
 570              	.LFE48:
 572 001a C046     		.section	.text.USART_Cmd,"ax",%progbits
 573              		.align	1
 574              		.p2align 2,,3
 575              		.global	USART_Cmd
 576              		.syntax unified
 577              		.code	16
 578              		.thumb_func
 580              	USART_Cmd:
 581              	.LVL57:
 582              	.LFB49:
 174:Library/src/lcm32f06x_usart.c **** 
 175:Library/src/lcm32f06x_usart.c **** /**
 176:Library/src/lcm32f06x_usart.c ****   * @name   USART_Cmd
 177:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enables or disables the specified USARTx peripheral.
 178:Library/src/lcm32f06x_usart.c ****   *         CN: 启用或禁用指定的 USARTx 外设。
 179:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 180:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 181:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 182:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
ARM GAS  /tmp/ccvzS1Bu.s 			page 16


 183:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 184:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 185:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 186:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 187:Library/src/lcm32f06x_usart.c ****   * @retval None
 188:Library/src/lcm32f06x_usart.c ****   */
 189:Library/src/lcm32f06x_usart.c **** void USART_Cmd(USART_TypeDef *USARTx, FunctionalState NewState)
 190:Library/src/lcm32f06x_usart.c **** {
 583              		.loc 1 190 1 is_stmt 1 view -0
 584              		.cfi_startproc
 585              		@ args = 0, pretend = 0, frame = 0
 586              		@ frame_needed = 0, uses_anonymous_args = 0
 587              		@ link register save eliminated.
 191:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 588              		.loc 1 191 3 view .LVU184
 192:Library/src/lcm32f06x_usart.c ****   {
 193:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_CR_USARTEN_Msk;
 589              		.loc 1 193 16 is_stmt 0 view .LVU185
 590 0000 0122     		movs	r2, #1
 591              		.loc 1 193 11 view .LVU186
 592 0002 036B     		ldr	r3, [r0, #48]
 191:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 593              		.loc 1 191 6 view .LVU187
 594 0004 0029     		cmp	r1, #0
 595 0006 02D0     		beq	.L30
 596              		.loc 1 193 5 is_stmt 1 view .LVU188
 597              		.loc 1 193 16 is_stmt 0 view .LVU189
 598 0008 1343     		orrs	r3, r2
 599 000a 0363     		str	r3, [r0, #48]
 600              	.L29:
 194:Library/src/lcm32f06x_usart.c ****   }
 195:Library/src/lcm32f06x_usart.c ****   else
 196:Library/src/lcm32f06x_usart.c ****   {
 197:Library/src/lcm32f06x_usart.c ****     USARTx->CR &= ~USART_CR_USARTEN_Msk;
 198:Library/src/lcm32f06x_usart.c ****   }
 199:Library/src/lcm32f06x_usart.c **** }
 601              		.loc 1 199 1 view .LVU190
 602              		@ sp needed
 603 000c 7047     		bx	lr
 604              	.L30:
 197:Library/src/lcm32f06x_usart.c ****   }
 605              		.loc 1 197 5 is_stmt 1 view .LVU191
 197:Library/src/lcm32f06x_usart.c ****   }
 606              		.loc 1 197 16 is_stmt 0 view .LVU192
 607 000e 9343     		bics	r3, r2
 608 0010 0363     		str	r3, [r0, #48]
 609              		.loc 1 199 1 view .LVU193
 610 0012 FBE7     		b	.L29
 611              		.cfi_endproc
 612              	.LFE49:
 614              		.section	.text.USART_DirectionModeCmd,"ax",%progbits
 615              		.align	1
 616              		.p2align 2,,3
 617              		.global	USART_DirectionModeCmd
 618              		.syntax unified
 619              		.code	16
 620              		.thumb_func
ARM GAS  /tmp/ccvzS1Bu.s 			page 17


 622              	USART_DirectionModeCmd:
 623              	.LVL58:
 624              	.LFB50:
 200:Library/src/lcm32f06x_usart.c **** 
 201:Library/src/lcm32f06x_usart.c **** /**
 202:Library/src/lcm32f06x_usart.c ****   * @name   USART_DirectionModeCmd
 203:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enables or disables the specified USARTx peripheral.
 204:Library/src/lcm32f06x_usart.c ****   *         CN: 启用或禁用 USARTx 的发送或接收。
 205:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 206:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 207:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 208:Library/src/lcm32f06x_usart.c ****   * @param  USART_DirectionMode: 
 209:Library/src/lcm32f06x_usart.c ****   *         EN: Specify the USART direction that needs to be closed.
 210:Library/src/lcm32f06x_usart.c ****   *         CN: 指定需要关闭的 USART 方向。
 211:Library/src/lcm32f06x_usart.c ****   *             @arg USART_Direction_Tx
 212:Library/src/lcm32f06x_usart.c ****   *             @arg USART_Direction_Rx
 213:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 214:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 215:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 216:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 217:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 218:Library/src/lcm32f06x_usart.c ****   * @retval None
 219:Library/src/lcm32f06x_usart.c ****   */
 220:Library/src/lcm32f06x_usart.c **** void USART_DirectionModeCmd(USART_TypeDef *USARTx, uint32_t USART_DirectionMode, FunctionalState Ne
 221:Library/src/lcm32f06x_usart.c **** {
 625              		.loc 1 221 1 is_stmt 1 view -0
 626              		.cfi_startproc
 627              		@ args = 0, pretend = 0, frame = 0
 628              		@ frame_needed = 0, uses_anonymous_args = 0
 629              		@ link register save eliminated.
 222:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 223:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_DIRECTION(USART_DirectionMode));
 630              		.loc 1 223 3 view .LVU195
 224:Library/src/lcm32f06x_usart.c ****   assert_param(IS_FUNCTIONAL_STATE(NewState));
 631              		.loc 1 224 3 view .LVU196
 225:Library/src/lcm32f06x_usart.c **** 
 226:Library/src/lcm32f06x_usart.c ****   if (NewState != ENABLE)
 632              		.loc 1 226 3 view .LVU197
 227:Library/src/lcm32f06x_usart.c ****   {
 228:Library/src/lcm32f06x_usart.c ****     USARTx->CR &= ~USART_DirectionMode;
 633              		.loc 1 228 11 is_stmt 0 view .LVU198
 634 0000 036B     		ldr	r3, [r0, #48]
 226:Library/src/lcm32f06x_usart.c ****   {
 635              		.loc 1 226 6 view .LVU199
 636 0002 012A     		cmp	r2, #1
 637 0004 02D0     		beq	.L33
 638              		.loc 1 228 5 is_stmt 1 view .LVU200
 639              		.loc 1 228 16 is_stmt 0 view .LVU201
 640 0006 8B43     		bics	r3, r1
 641 0008 0363     		str	r3, [r0, #48]
 642              	.L32:
 229:Library/src/lcm32f06x_usart.c ****   }
 230:Library/src/lcm32f06x_usart.c ****   else
 231:Library/src/lcm32f06x_usart.c ****   {
 232:Library/src/lcm32f06x_usart.c ****     USARTx->CR |= USART_DirectionMode;
 233:Library/src/lcm32f06x_usart.c ****   }
 234:Library/src/lcm32f06x_usart.c **** }
ARM GAS  /tmp/ccvzS1Bu.s 			page 18


 643              		.loc 1 234 1 view .LVU202
 644              		@ sp needed
 645 000a 7047     		bx	lr
 646              	.L33:
 232:Library/src/lcm32f06x_usart.c ****   }
 647              		.loc 1 232 5 is_stmt 1 view .LVU203
 232:Library/src/lcm32f06x_usart.c ****   }
 648              		.loc 1 232 16 is_stmt 0 view .LVU204
 649 000c 0B43     		orrs	r3, r1
 650 000e 0363     		str	r3, [r0, #48]
 651              		.loc 1 234 1 view .LVU205
 652 0010 FBE7     		b	.L32
 653              		.cfi_endproc
 654              	.LFE50:
 656 0012 C046     		.section	.text.USART_SendData,"ax",%progbits
 657              		.align	1
 658              		.p2align 2,,3
 659              		.global	USART_SendData
 660              		.syntax unified
 661              		.code	16
 662              		.thumb_func
 664              	USART_SendData:
 665              	.LVL59:
 666              	.LFB51:
 235:Library/src/lcm32f06x_usart.c **** 
 236:Library/src/lcm32f06x_usart.c **** /**
 237:Library/src/lcm32f06x_usart.c ****   * @name   USART_SendData
 238:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Transmits single data through the USARTx peripheral.
 239:Library/src/lcm32f06x_usart.c ****   *         CN: 通过 USARTx 外设传输单个数据。
 240:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 241:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 242:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 243:Library/src/lcm32f06x_usart.c ****   * @param  Data: 
 244:Library/src/lcm32f06x_usart.c ****   *         EN: One byte of data to be sent.
 245:Library/src/lcm32f06x_usart.c ****   *         CN: 要发送的一字节数据。
 246:Library/src/lcm32f06x_usart.c ****   * @retval None
 247:Library/src/lcm32f06x_usart.c ****   */
 248:Library/src/lcm32f06x_usart.c **** void USART_SendData(USART_TypeDef *USARTx, uint8_t Data)
 249:Library/src/lcm32f06x_usart.c **** {
 667              		.loc 1 249 1 is_stmt 1 view -0
 668              		.cfi_startproc
 669              		@ args = 0, pretend = 0, frame = 0
 670              		@ frame_needed = 0, uses_anonymous_args = 0
 671              		@ link register save eliminated.
 250:Library/src/lcm32f06x_usart.c ****   
 251:Library/src/lcm32f06x_usart.c ****   USARTx->DR = Data;
 672              		.loc 1 251 3 view .LVU207
 673              		.loc 1 251 14 is_stmt 0 view .LVU208
 674 0000 0160     		str	r1, [r0]
 252:Library/src/lcm32f06x_usart.c **** }
 675              		.loc 1 252 1 view .LVU209
 676              		@ sp needed
 677 0002 7047     		bx	lr
 678              		.cfi_endproc
 679              	.LFE51:
 681              		.section	.text.USART_ReceiveData,"ax",%progbits
 682              		.align	1
ARM GAS  /tmp/ccvzS1Bu.s 			page 19


 683              		.p2align 2,,3
 684              		.global	USART_ReceiveData
 685              		.syntax unified
 686              		.code	16
 687              		.thumb_func
 689              	USART_ReceiveData:
 690              	.LVL60:
 691              	.LFB52:
 253:Library/src/lcm32f06x_usart.c **** 
 254:Library/src/lcm32f06x_usart.c **** /**
 255:Library/src/lcm32f06x_usart.c ****   * @name   USART_ReceiveData
 256:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Returns the most recent received data by the USARTx peripheral.
 257:Library/src/lcm32f06x_usart.c ****   *         CN: 返回 USARTx 外设最近接收到的数据。
 258:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 259:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 260:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 261:Library/src/lcm32f06x_usart.c ****   * @retval EN: The received data.
 262:Library/src/lcm32f06x_usart.c ****   *         CN: 接收到的数据。
 263:Library/src/lcm32f06x_usart.c ****   */
 264:Library/src/lcm32f06x_usart.c **** uint16_t USART_ReceiveData(USART_TypeDef *USARTx)
 265:Library/src/lcm32f06x_usart.c **** {
 692              		.loc 1 265 1 is_stmt 1 view -0
 693              		.cfi_startproc
 694              		@ args = 0, pretend = 0, frame = 0
 695              		@ frame_needed = 0, uses_anonymous_args = 0
 696              		@ link register save eliminated.
 266:Library/src/lcm32f06x_usart.c ****   uint32_t tmpreg = 0;
 697              		.loc 1 266 3 view .LVU211
 267:Library/src/lcm32f06x_usart.c ****   tmpreg = USARTx->DR;
 698              		.loc 1 267 3 view .LVU212
 699              		.loc 1 267 10 is_stmt 0 view .LVU213
 700 0000 0368     		ldr	r3, [r0]
 701              	.LVL61:
 268:Library/src/lcm32f06x_usart.c ****   return (uint16_t)(tmpreg & 0xff);
 702              		.loc 1 268 3 is_stmt 1 view .LVU214
 703              		.loc 1 268 10 is_stmt 0 discriminator 1 view .LVU215
 704 0002 FF20     		movs	r0, #255
 705              	.LVL62:
 269:Library/src/lcm32f06x_usart.c **** }
 706              		.loc 1 269 1 view .LVU216
 707              		@ sp needed
 268:Library/src/lcm32f06x_usart.c ****   return (uint16_t)(tmpreg & 0xff);
 708              		.loc 1 268 10 discriminator 1 view .LVU217
 709 0004 1840     		ands	r0, r3
 710              		.loc 1 269 1 view .LVU218
 711 0006 7047     		bx	lr
 712              		.cfi_endproc
 713              	.LFE52:
 715              		.section	.text.USART_SendBreak,"ax",%progbits
 716              		.align	1
 717              		.p2align 2,,3
 718              		.global	USART_SendBreak
 719              		.syntax unified
 720              		.code	16
 721              		.thumb_func
 723              	USART_SendBreak:
 724              	.LVL63:
ARM GAS  /tmp/ccvzS1Bu.s 			page 20


 725              	.LFB53:
 270:Library/src/lcm32f06x_usart.c **** 
 271:Library/src/lcm32f06x_usart.c **** /**
 272:Library/src/lcm32f06x_usart.c ****   * @name   USART_SendBreak
 273:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Break the transmission of USARTx peripheral.
 274:Library/src/lcm32f06x_usart.c ****   *         CN: 打断 USARTx 外设的发送。
 275:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 276:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 277:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 278:Library/src/lcm32f06x_usart.c ****   * @retval None
 279:Library/src/lcm32f06x_usart.c ****   */
 280:Library/src/lcm32f06x_usart.c **** void USART_SendBreak(USART_TypeDef *USARTx)
 281:Library/src/lcm32f06x_usart.c **** {
 726              		.loc 1 281 1 is_stmt 1 view -0
 727              		.cfi_startproc
 728              		@ args = 0, pretend = 0, frame = 0
 729              		@ frame_needed = 0, uses_anonymous_args = 0
 730              		@ link register save eliminated.
 282:Library/src/lcm32f06x_usart.c ****   /* set and cleared by software */
 283:Library/src/lcm32f06x_usart.c ****   USARTx->LCR |= USART_LCR_BRK_Msk;
 731              		.loc 1 283 3 view .LVU220
 732              		.loc 1 283 15 is_stmt 0 view .LVU221
 733 0000 0122     		movs	r2, #1
 284:Library/src/lcm32f06x_usart.c **** }
 734              		.loc 1 284 1 view .LVU222
 735              		@ sp needed
 283:Library/src/lcm32f06x_usart.c **** }
 736              		.loc 1 283 9 view .LVU223
 737 0002 C36A     		ldr	r3, [r0, #44]
 283:Library/src/lcm32f06x_usart.c **** }
 738              		.loc 1 283 15 view .LVU224
 739 0004 1343     		orrs	r3, r2
 740 0006 C362     		str	r3, [r0, #44]
 741              		.loc 1 284 1 view .LVU225
 742 0008 7047     		bx	lr
 743              		.cfi_endproc
 744              	.LFE53:
 746 000a C046     		.section	.text.USART_HalfDuplesCmd,"ax",%progbits
 747              		.align	1
 748              		.p2align 2,,3
 749              		.global	USART_HalfDuplesCmd
 750              		.syntax unified
 751              		.code	16
 752              		.thumb_func
 754              	USART_HalfDuplesCmd:
 755              	.LVL64:
 756              	.LFB54:
 285:Library/src/lcm32f06x_usart.c **** 
 286:Library/src/lcm32f06x_usart.c **** /**
 287:Library/src/lcm32f06x_usart.c ****   * @name   USART_HalfDuplesCmd
 288:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enable or disable USARTx peripheral single line half duplex mode.
 289:Library/src/lcm32f06x_usart.c ****   *         CN: 启用或禁用 USARTx 外设单线半双工模式。
 290:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 291:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 292:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 293:Library/src/lcm32f06x_usart.c ****   * @param  OutputMode_Sel: 
 294:Library/src/lcm32f06x_usart.c ****   *         EN: Half duplex mode output mode selection.
ARM GAS  /tmp/ccvzS1Bu.s 			page 21


 295:Library/src/lcm32f06x_usart.c ****   *         CN: 半双工模式输出模式选择。
 296:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 297:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 298:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 299:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 300:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 301:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 302:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 303:Library/src/lcm32f06x_usart.c ****   * @retval None
 304:Library/src/lcm32f06x_usart.c ****   * @note   LIN mode half duplex mode and USART synchronization mode can only be activated once.
 305:Library/src/lcm32f06x_usart.c ****   */
 306:Library/src/lcm32f06x_usart.c **** void USART_HalfDuplesCmd(USART_TypeDef *USARTx,uint32_t OutputMode_Sel, FunctionalState NewState)
 307:Library/src/lcm32f06x_usart.c **** {
 757              		.loc 1 307 1 is_stmt 1 view -0
 758              		.cfi_startproc
 759              		@ args = 0, pretend = 0, frame = 0
 760              		@ frame_needed = 0, uses_anonymous_args = 0
 308:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 309:Library/src/lcm32f06x_usart.c ****   assert_param(IS_FUNCTIONAL_STATE(NewState));
 761              		.loc 1 309 3 view .LVU227
 310:Library/src/lcm32f06x_usart.c ****   USARTx->CR2 &=(~(USART_CR2_HDOD_Msk | USART_CR2_HDSEL_Msk));
 762              		.loc 1 310 3 view .LVU228
 307:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 763              		.loc 1 307 1 is_stmt 0 view .LVU229
 764 0000 10B5     		push	{r4, lr}
 765              	.LCFI6:
 766              		.cfi_def_cfa_offset 8
 767              		.cfi_offset 4, -8
 768              		.cfi_offset 14, -4
 769              		.loc 1 310 15 view .LVU230
 770 0002 0324     		movs	r4, #3
 771              		.loc 1 310 9 view .LVU231
 772 0004 C368     		ldr	r3, [r0, #12]
 773              		.loc 1 310 15 view .LVU232
 774 0006 A343     		bics	r3, r4
 775 0008 C360     		str	r3, [r0, #12]
 311:Library/src/lcm32f06x_usart.c **** 
 312:Library/src/lcm32f06x_usart.c ****   if (NewState != ENABLE)
 776              		.loc 1 312 3 is_stmt 1 view .LVU233
 313:Library/src/lcm32f06x_usart.c ****   {
 314:Library/src/lcm32f06x_usart.c ****     USARTx->CR2 &= ~(USART_CR2_HDSEL_Msk);
 777              		.loc 1 314 11 is_stmt 0 view .LVU234
 778 000a C368     		ldr	r3, [r0, #12]
 312:Library/src/lcm32f06x_usart.c ****   {
 779              		.loc 1 312 6 view .LVU235
 780 000c 012A     		cmp	r2, #1
 781 000e 03D0     		beq	.L39
 782              		.loc 1 314 5 is_stmt 1 view .LVU236
 783              		.loc 1 314 17 is_stmt 0 view .LVU237
 784 0010 0122     		movs	r2, #1
 785              	.LVL65:
 786              		.loc 1 314 17 view .LVU238
 787 0012 9343     		bics	r3, r2
 788 0014 C360     		str	r3, [r0, #12]
 789              	.L38:
 315:Library/src/lcm32f06x_usart.c ****   }
 316:Library/src/lcm32f06x_usart.c ****   else
ARM GAS  /tmp/ccvzS1Bu.s 			page 22


 317:Library/src/lcm32f06x_usart.c ****   {
 318:Library/src/lcm32f06x_usart.c ****     USARTx->CR2 |= (OutputMode_Sel | USART_CR2_HDSEL_Msk);
 319:Library/src/lcm32f06x_usart.c ****   }
 320:Library/src/lcm32f06x_usart.c **** }
 790              		.loc 1 320 1 view .LVU239
 791              		@ sp needed
 792 0016 10BD     		pop	{r4, pc}
 793              	.LVL66:
 794              	.L39:
 318:Library/src/lcm32f06x_usart.c ****   }
 795              		.loc 1 318 5 is_stmt 1 view .LVU240
 318:Library/src/lcm32f06x_usart.c ****   }
 796              		.loc 1 318 17 is_stmt 0 view .LVU241
 797 0018 0B43     		orrs	r3, r1
 798 001a 1343     		orrs	r3, r2
 799 001c C360     		str	r3, [r0, #12]
 800              		.loc 1 320 1 view .LVU242
 801 001e FAE7     		b	.L38
 802              		.cfi_endproc
 803              	.LFE54:
 805              		.section	.text.USART_SynchronousModeCmd,"ax",%progbits
 806              		.align	1
 807              		.p2align 2,,3
 808              		.global	USART_SynchronousModeCmd
 809              		.syntax unified
 810              		.code	16
 811              		.thumb_func
 813              	USART_SynchronousModeCmd:
 814              	.LVL67:
 815              	.LFB55:
 321:Library/src/lcm32f06x_usart.c **** 
 322:Library/src/lcm32f06x_usart.c **** /**
 323:Library/src/lcm32f06x_usart.c ****   * @name   USART_SynchronousModeCmd
 324:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enable or disable USARTx Synchronous mode and CK pin.
 325:Library/src/lcm32f06x_usart.c ****   *         CN: 启用或禁用 USARTx 同步模式和CK引脚。
 326:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 327:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 328:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 329:Library/src/lcm32f06x_usart.c ****   * @param  CPHA_Mode_Sel: 
 330:Library/src/lcm32f06x_usart.c ****   *         EN: Select synchronous clock phase.
 331:Library/src/lcm32f06x_usart.c ****   *         CN: 选择同步时钟相位。
 332:Library/src/lcm32f06x_usart.c ****   * @param  CPOL_Mode_Sel: 
 333:Library/src/lcm32f06x_usart.c ****   *         EN: Select synchronization clock polarity.
 334:Library/src/lcm32f06x_usart.c ****   *         CN: 选择同步时钟极性。
 335:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 336:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral Synchronous mode.
 337:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设同步模式的新状态。
 338:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 339:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 340:Library/src/lcm32f06x_usart.c ****   * @retval None
 341:Library/src/lcm32f06x_usart.c ****   */
 342:Library/src/lcm32f06x_usart.c **** void USART_SynchronousModeCmd(USART_TypeDef *USARTx, uint32_t CPHA_Mode_Sel, uint32_t CPOL_Mode_Sel
 343:Library/src/lcm32f06x_usart.c **** {
 816              		.loc 1 343 1 is_stmt 1 view -0
 817              		.cfi_startproc
 818              		@ args = 0, pretend = 0, frame = 0
 819              		@ frame_needed = 0, uses_anonymous_args = 0
ARM GAS  /tmp/ccvzS1Bu.s 			page 23


 344:Library/src/lcm32f06x_usart.c ****   USARTx->CR2 &=(~(USART_CR2_CPHA_Msk | USART_CR2_CPOL_Msk | USART_CR2_CLKEN_Msk));
 820              		.loc 1 344 3 view .LVU244
 343:Library/src/lcm32f06x_usart.c ****   USARTx->CR2 &=(~(USART_CR2_CPHA_Msk | USART_CR2_CPOL_Msk | USART_CR2_CLKEN_Msk));
 821              		.loc 1 343 1 is_stmt 0 view .LVU245
 822 0000 30B5     		push	{r4, r5, lr}
 823              	.LCFI7:
 824              		.cfi_def_cfa_offset 12
 825              		.cfi_offset 4, -12
 826              		.cfi_offset 5, -8
 827              		.cfi_offset 14, -4
 828              		.loc 1 344 15 view .LVU246
 829 0002 E025     		movs	r5, #224
 830              		.loc 1 344 9 view .LVU247
 831 0004 C468     		ldr	r4, [r0, #12]
 832              		.loc 1 344 15 view .LVU248
 833 0006 AC43     		bics	r4, r5
 834 0008 C460     		str	r4, [r0, #12]
 345:Library/src/lcm32f06x_usart.c ****   if (NewState != ENABLE)
 835              		.loc 1 345 3 is_stmt 1 view .LVU249
 836              		.loc 1 345 6 is_stmt 0 view .LVU250
 837 000a 012B     		cmp	r3, #1
 838 000c 04D0     		beq	.L42
 346:Library/src/lcm32f06x_usart.c ****   {
 347:Library/src/lcm32f06x_usart.c ****     USARTx->CR2 &= ~(USART_CR2_CLKEN_Msk);
 839              		.loc 1 347 5 is_stmt 1 view .LVU251
 840              		.loc 1 347 17 is_stmt 0 view .LVU252
 841 000e 2022     		movs	r2, #32
 842              	.LVL68:
 843              		.loc 1 347 11 view .LVU253
 844 0010 C368     		ldr	r3, [r0, #12]
 845              	.LVL69:
 846              		.loc 1 347 17 view .LVU254
 847 0012 9343     		bics	r3, r2
 848 0014 C360     		str	r3, [r0, #12]
 849              	.L41:
 348:Library/src/lcm32f06x_usart.c ****   }
 349:Library/src/lcm32f06x_usart.c ****   else
 350:Library/src/lcm32f06x_usart.c ****   {
 351:Library/src/lcm32f06x_usart.c ****     USARTx->CR2 |= USART_CR2_CLKEN_Msk | CPHA_Mode_Sel | CPOL_Mode_Sel;
 352:Library/src/lcm32f06x_usart.c ****   }
 353:Library/src/lcm32f06x_usart.c **** }
 850              		.loc 1 353 1 view .LVU255
 851              		@ sp needed
 852 0016 30BD     		pop	{r4, r5, pc}
 853              	.LVL70:
 854              	.L42:
 351:Library/src/lcm32f06x_usart.c ****   }
 855              		.loc 1 351 5 is_stmt 1 view .LVU256
 351:Library/src/lcm32f06x_usart.c ****   }
 856              		.loc 1 351 11 is_stmt 0 view .LVU257
 857 0018 C368     		ldr	r3, [r0, #12]
 858              	.LVL71:
 351:Library/src/lcm32f06x_usart.c ****   }
 859              		.loc 1 351 17 view .LVU258
 860 001a 1343     		orrs	r3, r2
 861 001c 2022     		movs	r2, #32
 862              	.LVL72:
ARM GAS  /tmp/ccvzS1Bu.s 			page 24


 351:Library/src/lcm32f06x_usart.c ****   }
 863              		.loc 1 351 17 view .LVU259
 864 001e 0B43     		orrs	r3, r1
 865 0020 1343     		orrs	r3, r2
 866 0022 C360     		str	r3, [r0, #12]
 867              		.loc 1 353 1 view .LVU260
 868 0024 F7E7     		b	.L41
 869              		.cfi_endproc
 870              	.LFE55:
 872 0026 C046     		.section	.text.USART_LPUSARTCmd,"ax",%progbits
 873              		.align	1
 874              		.p2align 2,,3
 875              		.global	USART_LPUSARTCmd
 876              		.syntax unified
 877              		.code	16
 878              		.thumb_func
 880              	USART_LPUSARTCmd:
 881              	.LVL73:
 882              	.LFB56:
 354:Library/src/lcm32f06x_usart.c **** /**
 355:Library/src/lcm32f06x_usart.c ****   * @name   USART_LPUSARTCmd
 356:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enable or disable USARTx low-power mode LPUSART.
 357:Library/src/lcm32f06x_usart.c ****   *         CN: 启用或禁用 USARTx 低功耗模式 LPUSART。
 358:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 359:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 360:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 361:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 362:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 363:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 364:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 365:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 366:Library/src/lcm32f06x_usart.c ****   * @retval None
 367:Library/src/lcm32f06x_usart.c ****   */
 368:Library/src/lcm32f06x_usart.c **** void USART_LPUSARTCmd(USART_TypeDef *USARTx, FunctionalState NewState)
 369:Library/src/lcm32f06x_usart.c **** {
 883              		.loc 1 369 1 is_stmt 1 view -0
 884              		.cfi_startproc
 885              		@ args = 0, pretend = 0, frame = 0
 886              		@ frame_needed = 0, uses_anonymous_args = 0
 887              		@ link register save eliminated.
 370:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 371:Library/src/lcm32f06x_usart.c ****   assert_param(IS_FUNCTIONAL_STATE(NewState));
 888              		.loc 1 371 3 view .LVU262
 372:Library/src/lcm32f06x_usart.c **** 
 373:Library/src/lcm32f06x_usart.c ****   if (NewState != ENABLE)
 889              		.loc 1 373 3 view .LVU263
 374:Library/src/lcm32f06x_usart.c ****   {
 375:Library/src/lcm32f06x_usart.c ****     USARTx->CR3 &= 0X00;
 890              		.loc 1 375 11 is_stmt 0 view .LVU264
 891 0000 0369     		ldr	r3, [r0, #16]
 373:Library/src/lcm32f06x_usart.c ****   {
 892              		.loc 1 373 6 view .LVU265
 893 0002 0129     		cmp	r1, #1
 894 0004 02D0     		beq	.L45
 895              		.loc 1 375 5 is_stmt 1 view .LVU266
 896              		.loc 1 375 17 is_stmt 0 view .LVU267
 897 0006 0023     		movs	r3, #0
ARM GAS  /tmp/ccvzS1Bu.s 			page 25


 898 0008 0361     		str	r3, [r0, #16]
 899              	.L44:
 376:Library/src/lcm32f06x_usart.c ****   }
 377:Library/src/lcm32f06x_usart.c ****   else
 378:Library/src/lcm32f06x_usart.c ****   {
 379:Library/src/lcm32f06x_usart.c ****     USARTx->CR3 |= 0x01;
 380:Library/src/lcm32f06x_usart.c ****   }
 381:Library/src/lcm32f06x_usart.c **** }
 900              		.loc 1 381 1 view .LVU268
 901              		@ sp needed
 902 000a 7047     		bx	lr
 903              	.L45:
 379:Library/src/lcm32f06x_usart.c ****   }
 904              		.loc 1 379 5 is_stmt 1 view .LVU269
 379:Library/src/lcm32f06x_usart.c ****   }
 905              		.loc 1 379 17 is_stmt 0 view .LVU270
 906 000c 0B43     		orrs	r3, r1
 907 000e 0361     		str	r3, [r0, #16]
 908              		.loc 1 381 1 view .LVU271
 909 0010 FBE7     		b	.L44
 910              		.cfi_endproc
 911              	.LFE56:
 913 0012 C046     		.section	.text.USART_LowPowerWakeConfig,"ax",%progbits
 914              		.align	1
 915              		.p2align 2,,3
 916              		.global	USART_LowPowerWakeConfig
 917              		.syntax unified
 918              		.code	16
 919              		.thumb_func
 921              	USART_LowPowerWakeConfig:
 922              	.LVL74:
 923              	.LFB57:
 382:Library/src/lcm32f06x_usart.c **** 
 383:Library/src/lcm32f06x_usart.c **** /**
 384:Library/src/lcm32f06x_usart.c ****   * @name   USART_LowPowerWakeConfig
 385:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Select USARTx peripheral low-power wake-up event.
 386:Library/src/lcm32f06x_usart.c ****   *         CN: 选择 USARTx 外设低功耗唤醒事件。
 387:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 388:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 389:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 390:Library/src/lcm32f06x_usart.c ****   * @param  Event: 
 391:Library/src/lcm32f06x_usart.c ****   *         EN: USARTx peripheral low-power wake-up event.
 392:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设低功耗唤醒事件。
 393:Library/src/lcm32f06x_usart.c ****   *             @arg USART_WUS_ADDRSS
 394:Library/src/lcm32f06x_usart.c ****   *             @arg USART_WUS_START_BIT
 395:Library/src/lcm32f06x_usart.c ****   * @retval None
 396:Library/src/lcm32f06x_usart.c ****   */
 397:Library/src/lcm32f06x_usart.c **** void USART_LowPowerWakeConfig(USART_TypeDef *USARTx, uint32_t Event)
 398:Library/src/lcm32f06x_usart.c **** {
 924              		.loc 1 398 1 is_stmt 1 view -0
 925              		.cfi_startproc
 926              		@ args = 0, pretend = 0, frame = 0
 927              		@ frame_needed = 0, uses_anonymous_args = 0
 928              		@ link register save eliminated.
 399:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 400:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_WUS(Event));
 929              		.loc 1 400 3 view .LVU273
ARM GAS  /tmp/ccvzS1Bu.s 			page 26


 401:Library/src/lcm32f06x_usart.c **** 
 402:Library/src/lcm32f06x_usart.c ****   USARTx->CR3 |= Event;
 930              		.loc 1 402 3 view .LVU274
 931              		.loc 1 402 9 is_stmt 0 view .LVU275
 932 0000 0369     		ldr	r3, [r0, #16]
 403:Library/src/lcm32f06x_usart.c **** }
 933              		.loc 1 403 1 view .LVU276
 934              		@ sp needed
 402:Library/src/lcm32f06x_usart.c **** }
 935              		.loc 1 402 15 view .LVU277
 936 0002 0B43     		orrs	r3, r1
 937 0004 0361     		str	r3, [r0, #16]
 938              		.loc 1 403 1 view .LVU278
 939 0006 7047     		bx	lr
 940              		.cfi_endproc
 941              	.LFE57:
 943              		.section	.text.USART_FIFOLevelConfig,"ax",%progbits
 944              		.align	1
 945              		.p2align 2,,3
 946              		.global	USART_FIFOLevelConfig
 947              		.syntax unified
 948              		.code	16
 949              		.thumb_func
 951              	USART_FIFOLevelConfig:
 952              	.LVL75:
 953              	.LFB58:
 404:Library/src/lcm32f06x_usart.c **** 
 405:Library/src/lcm32f06x_usart.c **** /**
 406:Library/src/lcm32f06x_usart.c ****   * @name   USART_FIFOLevelConfig
 407:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Select USARTx to send and receive FIFO depth.
 408:Library/src/lcm32f06x_usart.c ****   *         CN: 选择 USARTx 发送和接收 FIFO 深度。
 409:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 410:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 411:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 412:Library/src/lcm32f06x_usart.c ****   * @param  RXIFLSelect: 
 413:Library/src/lcm32f06x_usart.c ****   *         EN: USARTx peripheral receiving FIFO selection.
 414:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设接收 FIFO 选择。
 415:Library/src/lcm32f06x_usart.c ****   *             @arg USART_RXIFLSEL_LEAVEL_0_16
 416:Library/src/lcm32f06x_usart.c ****   *             @arg USART_RXIFLSEL_LEAVEL_1_16
 417:Library/src/lcm32f06x_usart.c ****   *             @arg ...
 418:Library/src/lcm32f06x_usart.c ****   *             @arg USART_RXIFLSEL_LEAVEL_14_16
 419:Library/src/lcm32f06x_usart.c ****   *             @arg USART_RXIFLSEL_LEAVEL_15_16
 420:Library/src/lcm32f06x_usart.c ****   * @param  TXIFLSelect: 
 421:Library/src/lcm32f06x_usart.c ****   *         EN: USARTx peripheral sends FIFO selection.
 422:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设发送 FIFO 选择。
 423:Library/src/lcm32f06x_usart.c ****   *             @arg USART_TXIFLSEL_LEAVEL_0_16
 424:Library/src/lcm32f06x_usart.c ****   *             @arg USART_TXIFLSEL_LEAVEL_1_16
 425:Library/src/lcm32f06x_usart.c ****   *             @arg ...
 426:Library/src/lcm32f06x_usart.c ****   *             @arg USART_TXIFLSEL_LEAVEL_14_16
 427:Library/src/lcm32f06x_usart.c ****   *             @arg USART_TXIFLSEL_LEAVEL_15_16
 428:Library/src/lcm32f06x_usart.c ****   * @retval None
 429:Library/src/lcm32f06x_usart.c ****   */
 430:Library/src/lcm32f06x_usart.c **** void USART_FIFOLevelConfig(USART_TypeDef *USARTx, uint32_t RxFIFO, uint32_t TxFIFO)
 431:Library/src/lcm32f06x_usart.c **** {
 954              		.loc 1 431 1 is_stmt 1 view -0
 955              		.cfi_startproc
 956              		@ args = 0, pretend = 0, frame = 0
ARM GAS  /tmp/ccvzS1Bu.s 			page 27


 957              		@ frame_needed = 0, uses_anonymous_args = 0
 432:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 433:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_RXIFLSEL_LEAVEL(RxFIFO));
 958              		.loc 1 433 3 view .LVU280
 434:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_TXIFLSEL_LEAVEL(TxFIFO));
 959              		.loc 1 434 3 view .LVU281
 435:Library/src/lcm32f06x_usart.c **** 
 436:Library/src/lcm32f06x_usart.c ****   USARTx->IFLS &= 0xFFFFFF00;
 960              		.loc 1 436 3 view .LVU282
 431:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 961              		.loc 1 431 1 is_stmt 0 view .LVU283
 962 0000 10B5     		push	{r4, lr}
 963              	.LCFI8:
 964              		.cfi_def_cfa_offset 8
 965              		.cfi_offset 4, -8
 966              		.cfi_offset 14, -4
 967              		.loc 1 436 16 view .LVU284
 968 0002 FF24     		movs	r4, #255
 437:Library/src/lcm32f06x_usart.c ****   USARTx->IFLS |= TxFIFO | RxFIFO;
 438:Library/src/lcm32f06x_usart.c **** }
 969              		.loc 1 438 1 view .LVU285
 970              		@ sp needed
 436:Library/src/lcm32f06x_usart.c ****   USARTx->IFLS |= TxFIFO | RxFIFO;
 971              		.loc 1 436 9 view .LVU286
 972 0004 436B     		ldr	r3, [r0, #52]
 437:Library/src/lcm32f06x_usart.c ****   USARTx->IFLS |= TxFIFO | RxFIFO;
 973              		.loc 1 437 26 view .LVU287
 974 0006 0A43     		orrs	r2, r1
 975              	.LVL76:
 436:Library/src/lcm32f06x_usart.c ****   USARTx->IFLS |= TxFIFO | RxFIFO;
 976              		.loc 1 436 16 view .LVU288
 977 0008 A343     		bics	r3, r4
 978 000a 4363     		str	r3, [r0, #52]
 437:Library/src/lcm32f06x_usart.c ****   USARTx->IFLS |= TxFIFO | RxFIFO;
 979              		.loc 1 437 3 is_stmt 1 view .LVU289
 437:Library/src/lcm32f06x_usart.c ****   USARTx->IFLS |= TxFIFO | RxFIFO;
 980              		.loc 1 437 9 is_stmt 0 view .LVU290
 981 000c 436B     		ldr	r3, [r0, #52]
 437:Library/src/lcm32f06x_usart.c ****   USARTx->IFLS |= TxFIFO | RxFIFO;
 982              		.loc 1 437 16 view .LVU291
 983 000e 1A43     		orrs	r2, r3
 984 0010 4263     		str	r2, [r0, #52]
 985              		.loc 1 438 1 view .LVU292
 986 0012 10BD     		pop	{r4, pc}
 987              		.cfi_endproc
 988              	.LFE58:
 990              		.section	.text.USART_DMACmd,"ax",%progbits
 991              		.align	1
 992              		.p2align 2,,3
 993              		.global	USART_DMACmd
 994              		.syntax unified
 995              		.code	16
 996              		.thumb_func
 998              	USART_DMACmd:
 999              	.LVL77:
 1000              	.LFB59:
 439:Library/src/lcm32f06x_usart.c **** 
ARM GAS  /tmp/ccvzS1Bu.s 			page 28


 440:Library/src/lcm32f06x_usart.c **** /**
 441:Library/src/lcm32f06x_usart.c ****   * @name   USART_DMACmd
 442:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enable or disable USARtx peripheral DAM sending FIFO and receiving FIFO.
 443:Library/src/lcm32f06x_usart.c ****   *         CN: 启用或禁止 USARtx 外设 DAM 发送 FIFO 和接收 FIFO。
 444:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 445:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 446:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 447:Library/src/lcm32f06x_usart.c ****   * @param  USART_DMAReq: 
 448:Library/src/lcm32f06x_usart.c ****   *         EN: Select USARTx DAM request.
 449:Library/src/lcm32f06x_usart.c ****   *         CN: 选择 USARTx DAM 请求。
 450:Library/src/lcm32f06x_usart.c ****   *             @arg USART_DMAReq_Rx
 451:Library/src/lcm32f06x_usart.c ****   *             @arg USART_DMAReq_Tx
 452:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 453:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 454:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 455:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 456:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 457:Library/src/lcm32f06x_usart.c ****   * @retval None
 458:Library/src/lcm32f06x_usart.c ****   */
 459:Library/src/lcm32f06x_usart.c **** void USART_DMACmd(USART_TypeDef *USARTx, uint32_t USART_DMAReq, FunctionalState NewState)
 460:Library/src/lcm32f06x_usart.c **** {
 1001              		.loc 1 460 1 is_stmt 1 view -0
 1002              		.cfi_startproc
 1003              		@ args = 0, pretend = 0, frame = 0
 1004              		@ frame_needed = 0, uses_anonymous_args = 0
 1005              		@ link register save eliminated.
 461:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 462:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_DMAREQ(USART_DMAReq));
 1006              		.loc 1 462 3 view .LVU294
 463:Library/src/lcm32f06x_usart.c ****   assert_param(IS_FUNCTIONAL_STATE(NewState));
 1007              		.loc 1 463 3 view .LVU295
 464:Library/src/lcm32f06x_usart.c **** 
 465:Library/src/lcm32f06x_usart.c ****   if (USART_DMAReq == USART_DMAReq_Rx)
 1008              		.loc 1 465 3 view .LVU296
 466:Library/src/lcm32f06x_usart.c ****   {
 467:Library/src/lcm32f06x_usart.c ****     (NewState != DISABLE) ? (USARTx->DMACR |= USART_DMAReq_Rx) : (USARTx->DMACR &= ~USART_DMAReq_Rx
 1009              		.loc 1 467 36 is_stmt 0 discriminator 1 view .LVU297
 1010 0000 836C     		ldr	r3, [r0, #72]
 465:Library/src/lcm32f06x_usart.c ****   {
 1011              		.loc 1 465 6 view .LVU298
 1012 0002 0129     		cmp	r1, #1
 1013 0004 09D0     		beq	.L54
 468:Library/src/lcm32f06x_usart.c ****   }
 469:Library/src/lcm32f06x_usart.c ****   else
 470:Library/src/lcm32f06x_usart.c ****   {
 471:Library/src/lcm32f06x_usart.c ****     (NewState != DISABLE) ? (USARTx->DMACR |= USART_DMAReq_Tx) : (USARTx->DMACR &= ~USART_DMAReq_Tx
 1014              		.loc 1 471 5 is_stmt 1 view .LVU299
 1015              		.loc 1 471 64 is_stmt 0 view .LVU300
 1016 0006 002A     		cmp	r2, #0
 1017 0008 03D1     		bne	.L55
 1018              		.loc 1 471 81 discriminator 2 view .LVU301
 1019 000a 0222     		movs	r2, #2
 1020              	.LVL78:
 1021              		.loc 1 471 81 discriminator 2 view .LVU302
 1022 000c 9343     		bics	r3, r2
 1023 000e 8364     		str	r3, [r0, #72]
 1024              	.L49:
ARM GAS  /tmp/ccvzS1Bu.s 			page 29


 472:Library/src/lcm32f06x_usart.c ****   }
 473:Library/src/lcm32f06x_usart.c **** }
 1025              		.loc 1 473 1 view .LVU303
 1026              		@ sp needed
 1027 0010 7047     		bx	lr
 1028              	.LVL79:
 1029              	.L55:
 471:Library/src/lcm32f06x_usart.c ****   }
 1030              		.loc 1 471 44 discriminator 1 view .LVU304
 1031 0012 0222     		movs	r2, #2
 1032              	.LVL80:
 471:Library/src/lcm32f06x_usart.c ****   }
 1033              		.loc 1 471 44 discriminator 1 view .LVU305
 1034 0014 1343     		orrs	r3, r2
 1035 0016 8364     		str	r3, [r0, #72]
 1036 0018 FAE7     		b	.L49
 1037              	.LVL81:
 1038              	.L54:
 467:Library/src/lcm32f06x_usart.c ****   }
 1039              		.loc 1 467 5 is_stmt 1 view .LVU306
 467:Library/src/lcm32f06x_usart.c ****   }
 1040              		.loc 1 467 64 is_stmt 0 view .LVU307
 1041 001a 002A     		cmp	r2, #0
 1042 001c 02D0     		beq	.L51
 467:Library/src/lcm32f06x_usart.c ****   }
 1043              		.loc 1 467 44 discriminator 1 view .LVU308
 1044 001e 0B43     		orrs	r3, r1
 1045 0020 8364     		str	r3, [r0, #72]
 1046 0022 F5E7     		b	.L49
 1047              	.L51:
 467:Library/src/lcm32f06x_usart.c ****   }
 1048              		.loc 1 467 81 discriminator 2 view .LVU309
 1049 0024 8B43     		bics	r3, r1
 1050 0026 8364     		str	r3, [r0, #72]
 1051 0028 F2E7     		b	.L49
 1052              		.cfi_endproc
 1053              	.LFE59:
 1055 002a C046     		.section	.text.USART_ITConfig,"ax",%progbits
 1056              		.align	1
 1057              		.p2align 2,,3
 1058              		.global	USART_ITConfig
 1059              		.syntax unified
 1060              		.code	16
 1061              		.thumb_func
 1063              	USART_ITConfig:
 1064              	.LVL82:
 1065              	.LFB60:
 474:Library/src/lcm32f06x_usart.c **** 
 475:Library/src/lcm32f06x_usart.c **** /**
 476:Library/src/lcm32f06x_usart.c ****   * @name   USART_ITConfig
 477:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Configure USARTx peripheral interrupt.
 478:Library/src/lcm32f06x_usart.c ****   *         CN: 配置 USARTx 外设中断。
 479:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 480:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 481:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 482:Library/src/lcm32f06x_usart.c ****   * @param  USART_IT: 
 483:Library/src/lcm32f06x_usart.c ****   *         EN: Specify USARTx peripheral interrupt.
ARM GAS  /tmp/ccvzS1Bu.s 			page 30


 484:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 USARTx 外设中断。
 485:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_CERIS  : Detect error interrupt bit.
 486:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_WUFRIS : Wake up event bit in low-power mode.
 487:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_LINE   : Receive header interrupt bit in LIN mode.
 488:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_OE     : Overflow error interrupt bit.
 489:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_BE     : Break error interrupt bit.
 490:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_PE     : Parity error interrupt bit.
 491:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_FE     : Frame error interrupt bit.
 492:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_RT     : Receive stop interrupt bit.
 493:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_TX     : Send interrupt bit.
 494:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_RX     : Receive interrupt bit.
 495:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_CTS    : Hard control flow interrupt shielding bit.
 496:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 497:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 498:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 499:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 500:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 501:Library/src/lcm32f06x_usart.c ****   * @retval None
 502:Library/src/lcm32f06x_usart.c ****   */
 503:Library/src/lcm32f06x_usart.c **** void USART_ITConfig(USART_TypeDef *USARTx, uint32_t USART_IT, FunctionalState NewState)
 504:Library/src/lcm32f06x_usart.c **** {
 1066              		.loc 1 504 1 is_stmt 1 view -0
 1067              		.cfi_startproc
 1068              		@ args = 0, pretend = 0, frame = 0
 1069              		@ frame_needed = 0, uses_anonymous_args = 0
 1070              		@ link register save eliminated.
 505:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 506:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_IT(USART_IT));
 1071              		.loc 1 506 3 view .LVU311
 507:Library/src/lcm32f06x_usart.c **** 
 508:Library/src/lcm32f06x_usart.c ****   if (NewState == ENABLE)
 1072              		.loc 1 508 3 view .LVU312
 509:Library/src/lcm32f06x_usart.c ****   {
 510:Library/src/lcm32f06x_usart.c ****     USARTx->IMSC |= USART_IT;
 1073              		.loc 1 510 11 is_stmt 0 view .LVU313
 1074 0000 836B     		ldr	r3, [r0, #56]
 508:Library/src/lcm32f06x_usart.c ****   {
 1075              		.loc 1 508 6 view .LVU314
 1076 0002 012A     		cmp	r2, #1
 1077 0004 02D0     		beq	.L59
 511:Library/src/lcm32f06x_usart.c ****   }
 512:Library/src/lcm32f06x_usart.c ****   else
 513:Library/src/lcm32f06x_usart.c ****   {
 514:Library/src/lcm32f06x_usart.c ****     USARTx->IMSC &= ~USART_IT;
 1078              		.loc 1 514 5 is_stmt 1 view .LVU315
 1079              		.loc 1 514 18 is_stmt 0 view .LVU316
 1080 0006 8B43     		bics	r3, r1
 1081 0008 8363     		str	r3, [r0, #56]
 1082              	.L56:
 515:Library/src/lcm32f06x_usart.c ****   }
 516:Library/src/lcm32f06x_usart.c **** }
 1083              		.loc 1 516 1 view .LVU317
 1084              		@ sp needed
 1085 000a 7047     		bx	lr
 1086              	.L59:
 510:Library/src/lcm32f06x_usart.c ****   }
 1087              		.loc 1 510 5 is_stmt 1 view .LVU318
ARM GAS  /tmp/ccvzS1Bu.s 			page 31


 510:Library/src/lcm32f06x_usart.c ****   }
 1088              		.loc 1 510 18 is_stmt 0 view .LVU319
 1089 000c 0B43     		orrs	r3, r1
 1090 000e 8363     		str	r3, [r0, #56]
 1091 0010 FBE7     		b	.L56
 1092              		.cfi_endproc
 1093              	.LFE60:
 1095 0012 C046     		.section	.text.USART_GetFlagStatus,"ax",%progbits
 1096              		.align	1
 1097              		.p2align 2,,3
 1098              		.global	USART_GetFlagStatus
 1099              		.syntax unified
 1100              		.code	16
 1101              		.thumb_func
 1103              	USART_GetFlagStatus:
 1104              	.LVL83:
 1105              	.LFB61:
 517:Library/src/lcm32f06x_usart.c **** 
 518:Library/src/lcm32f06x_usart.c **** /**
 519:Library/src/lcm32f06x_usart.c ****   * @name   USART_GetFlagStatus
 520:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Read the running status of USARTx.
 521:Library/src/lcm32f06x_usart.c ****   *         CN: 读取 USARTx 运行状态。
 522:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 523:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 524:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 525:Library/src/lcm32f06x_usart.c ****   * @param  USART_FLAG: 
 526:Library/src/lcm32f06x_usart.c ****   *         EN: USARTx flag.
 527:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 标志位。
 528:Library/src/lcm32f06x_usart.c ****   *             @arg USART_FLAG_RXBUSY : Receive busy
 529:Library/src/lcm32f06x_usart.c ****   *             @arg USART_FLAG_TXFE   : Send FIFO empty
 530:Library/src/lcm32f06x_usart.c ****   *             @arg USART_FLAG_RXFF   : Receive FIFO full
 531:Library/src/lcm32f06x_usart.c ****   *             @arg USART_FLAG_TXFF   : Send FIFO full
 532:Library/src/lcm32f06x_usart.c ****   *             @arg USART_FLAG_RXFE   : Receive FIFO empty
 533:Library/src/lcm32f06x_usart.c ****   *             @arg USART_FLAG_BUSY   : Usart busy
 534:Library/src/lcm32f06x_usart.c ****   *             @arg USART_FLAG_CTS    : nUSARTCTS
 535:Library/src/lcm32f06x_usart.c ****   * @retval EN: USARTx running status
 536:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 运行状态
 537:Library/src/lcm32f06x_usart.c ****   */
 538:Library/src/lcm32f06x_usart.c **** FlagStatus USART_GetFlagStatus(USART_TypeDef *USARTx, uint32_t USART_Flag)
 539:Library/src/lcm32f06x_usart.c **** {
 1106              		.loc 1 539 1 is_stmt 1 view -0
 1107              		.cfi_startproc
 1108              		@ args = 0, pretend = 0, frame = 0
 1109              		@ frame_needed = 0, uses_anonymous_args = 0
 1110              		@ link register save eliminated.
 540:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 541:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_STATUSFLAG(USART_Flag));
 1111              		.loc 1 541 3 view .LVU321
 542:Library/src/lcm32f06x_usart.c **** 
 543:Library/src/lcm32f06x_usart.c ****   if (USARTx->FR & USART_Flag)
 1112              		.loc 1 543 3 view .LVU322
 1113              		.loc 1 543 13 is_stmt 0 view .LVU323
 1114 0000 8369     		ldr	r3, [r0, #24]
 544:Library/src/lcm32f06x_usart.c ****   {
 545:Library/src/lcm32f06x_usart.c ****     return SET;
 546:Library/src/lcm32f06x_usart.c ****   }
 547:Library/src/lcm32f06x_usart.c ****   else
ARM GAS  /tmp/ccvzS1Bu.s 			page 32


 548:Library/src/lcm32f06x_usart.c ****   {
 549:Library/src/lcm32f06x_usart.c ****     return RESET;
 550:Library/src/lcm32f06x_usart.c ****   }
 551:Library/src/lcm32f06x_usart.c **** }
 1115              		.loc 1 551 1 view .LVU324
 1116              		@ sp needed
 543:Library/src/lcm32f06x_usart.c ****   {
 1117              		.loc 1 543 18 view .LVU325
 1118 0002 1940     		ands	r1, r3
 1119              	.LVL84:
 543:Library/src/lcm32f06x_usart.c ****   {
 1120              		.loc 1 543 18 view .LVU326
 1121 0004 0800     		movs	r0, r1
 1122              	.LVL85:
 543:Library/src/lcm32f06x_usart.c ****   {
 1123              		.loc 1 543 6 view .LVU327
 1124 0006 431E     		subs	r3, r0, #1
 1125 0008 9841     		sbcs	r0, r0, r3
 1126              		.loc 1 551 1 view .LVU328
 1127 000a C0B2     		uxtb	r0, r0
 1128 000c 7047     		bx	lr
 1129              		.cfi_endproc
 1130              	.LFE61:
 1132 000e C046     		.section	.text.USART_GetITStatus,"ax",%progbits
 1133              		.align	1
 1134              		.p2align 2,,3
 1135              		.global	USART_GetITStatus
 1136              		.syntax unified
 1137              		.code	16
 1138              		.thumb_func
 1140              	USART_GetITStatus:
 1141              	.LVL86:
 1142              	.LFB62:
 552:Library/src/lcm32f06x_usart.c **** 
 553:Library/src/lcm32f06x_usart.c **** /**
 554:Library/src/lcm32f06x_usart.c ****   * @name   USART_GetITStatus
 555:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Read USARTx masked interrupt status.
 556:Library/src/lcm32f06x_usart.c ****   *         CN: 读取 USARTx 屏蔽中断状态。
 557:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 558:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 559:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 560:Library/src/lcm32f06x_usart.c ****   * @param  USART_IT: 
 561:Library/src/lcm32f06x_usart.c ****   *         EN: Specify USARTx peripheral interrupt.
 562:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 USARTx 外设中断。
 563:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_CERIS  : Detect error interrupt bit.
 564:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_WUFRIS : Wake up event bit in low-power mode.
 565:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_LINE   : Receive header interrupt bit in LIN mode.
 566:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_OE     : Overflow error interrupt bit.
 567:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_BE     : Break error interrupt bit.
 568:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_PE     : Parity error interrupt bit.
 569:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_FE     : Frame error interrupt bit.
 570:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_RT     : Receive stop interrupt bit.
 571:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_TX     : Send interrupt bit.
 572:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_RX     : Receive interrupt bit.
 573:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_CTS    : Hard control flow interrupt shielding bit.
 574:Library/src/lcm32f06x_usart.c ****   * @retval EN: USARTx masked interrupt status
 575:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 屏蔽中断状态
ARM GAS  /tmp/ccvzS1Bu.s 			page 33


 576:Library/src/lcm32f06x_usart.c ****   */
 577:Library/src/lcm32f06x_usart.c **** ITStatus USART_GetITStatus(USART_TypeDef *USARTx, uint32_t USART_IT)
 578:Library/src/lcm32f06x_usart.c **** {
 1143              		.loc 1 578 1 is_stmt 1 view -0
 1144              		.cfi_startproc
 1145              		@ args = 0, pretend = 0, frame = 0
 1146              		@ frame_needed = 0, uses_anonymous_args = 0
 1147              		@ link register save eliminated.
 579:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 580:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_IT(USART_IT));
 1148              		.loc 1 580 3 view .LVU330
 581:Library/src/lcm32f06x_usart.c **** 
 582:Library/src/lcm32f06x_usart.c ****   if (USARTx->MIS & USART_IT)
 1149              		.loc 1 582 3 view .LVU331
 1150              		.loc 1 582 13 is_stmt 0 view .LVU332
 1151 0000 036C     		ldr	r3, [r0, #64]
 583:Library/src/lcm32f06x_usart.c ****   {
 584:Library/src/lcm32f06x_usart.c ****     return SET;
 585:Library/src/lcm32f06x_usart.c ****   }
 586:Library/src/lcm32f06x_usart.c ****   else
 587:Library/src/lcm32f06x_usart.c ****   {
 588:Library/src/lcm32f06x_usart.c ****     return RESET;
 589:Library/src/lcm32f06x_usart.c ****   }
 590:Library/src/lcm32f06x_usart.c **** }
 1152              		.loc 1 590 1 view .LVU333
 1153              		@ sp needed
 582:Library/src/lcm32f06x_usart.c ****   {
 1154              		.loc 1 582 19 view .LVU334
 1155 0002 1940     		ands	r1, r3
 1156              	.LVL87:
 582:Library/src/lcm32f06x_usart.c ****   {
 1157              		.loc 1 582 19 view .LVU335
 1158 0004 0800     		movs	r0, r1
 1159              	.LVL88:
 582:Library/src/lcm32f06x_usart.c ****   {
 1160              		.loc 1 582 6 view .LVU336
 1161 0006 431E     		subs	r3, r0, #1
 1162 0008 9841     		sbcs	r0, r0, r3
 1163              		.loc 1 590 1 view .LVU337
 1164 000a C0B2     		uxtb	r0, r0
 1165 000c 7047     		bx	lr
 1166              		.cfi_endproc
 1167              	.LFE62:
 1169 000e C046     		.section	.text.USART_GetRawITStatus,"ax",%progbits
 1170              		.align	1
 1171              		.p2align 2,,3
 1172              		.global	USART_GetRawITStatus
 1173              		.syntax unified
 1174              		.code	16
 1175              		.thumb_func
 1177              	USART_GetRawITStatus:
 1178              	.LVL89:
 1179              	.LFB63:
 591:Library/src/lcm32f06x_usart.c **** 
 592:Library/src/lcm32f06x_usart.c **** /**
 593:Library/src/lcm32f06x_usart.c ****   * @name   USART_GetRawITStatus
 594:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Read USARTx raw interrupt status.
ARM GAS  /tmp/ccvzS1Bu.s 			page 34


 595:Library/src/lcm32f06x_usart.c ****   *         CN: 读取 USARTx 原始中断状态。
 596:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 597:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 598:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 599:Library/src/lcm32f06x_usart.c ****   * @param  USART_IT: 
 600:Library/src/lcm32f06x_usart.c ****   *         EN: Specify USARTx peripheral interrupt.
 601:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 USARTx 外设中断。
 602:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_CERIS  : Detect error interrupt bit.
 603:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_WUFRIS : Wake up event bit in low-power mode.
 604:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_LINE   : Receive header interrupt bit in LIN mode.
 605:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_OE     : Overflow error interrupt bit.
 606:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_BE     : Break error interrupt bit.
 607:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_PE     : Parity error interrupt bit.
 608:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_FE     : Frame error interrupt bit.
 609:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_RT     : Receive stop interrupt bit.
 610:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_TX     : Send interrupt bit.
 611:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_RX     : Receive interrupt bit.
 612:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_CTS    : Hard control flow interrupt shielding bit.
 613:Library/src/lcm32f06x_usart.c ****   * @retval EN: USARTx raw interrupt status
 614:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 原始中断状态
 615:Library/src/lcm32f06x_usart.c ****   */
 616:Library/src/lcm32f06x_usart.c **** ITStatus USART_GetRawITStatus(USART_TypeDef *USARTx, uint32_t USART_IT)
 617:Library/src/lcm32f06x_usart.c **** {
 1180              		.loc 1 617 1 is_stmt 1 view -0
 1181              		.cfi_startproc
 1182              		@ args = 0, pretend = 0, frame = 0
 1183              		@ frame_needed = 0, uses_anonymous_args = 0
 1184              		@ link register save eliminated.
 618:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 619:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_IT(USART_IT));
 1185              		.loc 1 619 3 view .LVU339
 620:Library/src/lcm32f06x_usart.c **** 
 621:Library/src/lcm32f06x_usart.c ****   if (USARTx->RIS & USART_IT)
 1186              		.loc 1 621 3 view .LVU340
 1187              		.loc 1 621 13 is_stmt 0 view .LVU341
 1188 0000 C36B     		ldr	r3, [r0, #60]
 622:Library/src/lcm32f06x_usart.c ****   {
 623:Library/src/lcm32f06x_usart.c ****     return SET;
 624:Library/src/lcm32f06x_usart.c ****   }
 625:Library/src/lcm32f06x_usart.c ****   else
 626:Library/src/lcm32f06x_usart.c ****   {
 627:Library/src/lcm32f06x_usart.c ****     return RESET;
 628:Library/src/lcm32f06x_usart.c ****   }
 629:Library/src/lcm32f06x_usart.c **** }
 1189              		.loc 1 629 1 view .LVU342
 1190              		@ sp needed
 621:Library/src/lcm32f06x_usart.c ****   {
 1191              		.loc 1 621 19 view .LVU343
 1192 0002 1940     		ands	r1, r3
 1193              	.LVL90:
 621:Library/src/lcm32f06x_usart.c ****   {
 1194              		.loc 1 621 19 view .LVU344
 1195 0004 0800     		movs	r0, r1
 1196              	.LVL91:
 621:Library/src/lcm32f06x_usart.c ****   {
 1197              		.loc 1 621 6 view .LVU345
 1198 0006 431E     		subs	r3, r0, #1
ARM GAS  /tmp/ccvzS1Bu.s 			page 35


 1199 0008 9841     		sbcs	r0, r0, r3
 1200              		.loc 1 629 1 view .LVU346
 1201 000a C0B2     		uxtb	r0, r0
 1202 000c 7047     		bx	lr
 1203              		.cfi_endproc
 1204              	.LFE63:
 1206 000e C046     		.section	.text.USART_ClearITPendingBit,"ax",%progbits
 1207              		.align	1
 1208              		.p2align 2,,3
 1209              		.global	USART_ClearITPendingBit
 1210              		.syntax unified
 1211              		.code	16
 1212              		.thumb_func
 1214              	USART_ClearITPendingBit:
 1215              	.LVL92:
 1216              	.LFB64:
 630:Library/src/lcm32f06x_usart.c **** 
 631:Library/src/lcm32f06x_usart.c **** /**
 632:Library/src/lcm32f06x_usart.c ****   * @name   USART_ClearITPendingBit
 633:Library/src/lcm32f06x_usart.c ****   * @brief  EN: CLear USARTx interrupt bit.
 634:Library/src/lcm32f06x_usart.c ****   *         CN: 清除 USARTx 中断位。
 635:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 636:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 637:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 638:Library/src/lcm32f06x_usart.c ****   * @param  USART_IT: 
 639:Library/src/lcm32f06x_usart.c ****   *         EN: Specify USARTx peripheral interrupt.
 640:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 USARTx 外设中断。
 641:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_CERIS  : Detect error interrupt bit.
 642:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_WUFRIS : Wake up event bit in low-power mode.
 643:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_LINE   : Receive header interrupt bit in LIN mode.
 644:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_OE     : Overflow error interrupt bit.
 645:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_BE     : Break error interrupt bit.
 646:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_PE     : Parity error interrupt bit.
 647:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_FE     : Frame error interrupt bit.
 648:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_RT     : Receive stop interrupt bit.
 649:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_TX     : Send interrupt bit.
 650:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_RX     : Receive interrupt bit.
 651:Library/src/lcm32f06x_usart.c ****   *             @arg USART_IT_CTS    : Hard control flow interrupt shielding bit.
 652:Library/src/lcm32f06x_usart.c ****   * @retval None
 653:Library/src/lcm32f06x_usart.c ****   */
 654:Library/src/lcm32f06x_usart.c **** void USART_ClearITPendingBit(USART_TypeDef *USARTx, uint32_t USART_IT)
 655:Library/src/lcm32f06x_usart.c **** {
 1217              		.loc 1 655 1 is_stmt 1 view -0
 1218              		.cfi_startproc
 1219              		@ args = 0, pretend = 0, frame = 0
 1220              		@ frame_needed = 0, uses_anonymous_args = 0
 1221              		@ link register save eliminated.
 656:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 657:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_IT(USART_IT));
 1222              		.loc 1 657 3 view .LVU348
 658:Library/src/lcm32f06x_usart.c **** 
 659:Library/src/lcm32f06x_usart.c ****   USARTx->ICR |= USART_IT;
 1223              		.loc 1 659 3 view .LVU349
 1224              		.loc 1 659 9 is_stmt 0 view .LVU350
 1225 0000 436C     		ldr	r3, [r0, #68]
 660:Library/src/lcm32f06x_usart.c **** }
 1226              		.loc 1 660 1 view .LVU351
ARM GAS  /tmp/ccvzS1Bu.s 			page 36


 1227              		@ sp needed
 659:Library/src/lcm32f06x_usart.c **** }
 1228              		.loc 1 659 15 view .LVU352
 1229 0002 0B43     		orrs	r3, r1
 1230 0004 4364     		str	r3, [r0, #68]
 1231              		.loc 1 660 1 view .LVU353
 1232 0006 7047     		bx	lr
 1233              		.cfi_endproc
 1234              	.LFE64:
 1236              		.section	.text.USART_FIFOEnable,"ax",%progbits
 1237              		.align	1
 1238              		.p2align 2,,3
 1239              		.global	USART_FIFOEnable
 1240              		.syntax unified
 1241              		.code	16
 1242              		.thumb_func
 1244              	USART_FIFOEnable:
 1245              	.LVL93:
 1246              	.LFB65:
 661:Library/src/lcm32f06x_usart.c **** 
 662:Library/src/lcm32f06x_usart.c **** /**
 663:Library/src/lcm32f06x_usart.c ****   * @name   USART_FIFOEnable
 664:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enable or disable USARTx peripheral FIFO.
 665:Library/src/lcm32f06x_usart.c ****   *         CN: 启用或禁止 USARTx 外设 FIFO。
 666:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 667:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 668:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 669:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 670:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 671:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 672:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 673:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 674:Library/src/lcm32f06x_usart.c ****   * @retval None
 675:Library/src/lcm32f06x_usart.c ****   */
 676:Library/src/lcm32f06x_usart.c **** void USART_FIFOEnable(USART_TypeDef *USARTx, uint32_t NewState)
 677:Library/src/lcm32f06x_usart.c **** {
 1247              		.loc 1 677 1 is_stmt 1 view -0
 1248              		.cfi_startproc
 1249              		@ args = 0, pretend = 0, frame = 0
 1250              		@ frame_needed = 0, uses_anonymous_args = 0
 1251              		@ link register save eliminated.
 678:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 679:Library/src/lcm32f06x_usart.c ****   assert_param(IS_FUNCTIONAL_STATE(NewState));
 1252              		.loc 1 679 3 view .LVU355
 680:Library/src/lcm32f06x_usart.c **** 
 681:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 1253              		.loc 1 681 3 view .LVU356
 1254              		.loc 1 681 6 is_stmt 0 view .LVU357
 1255 0000 0029     		cmp	r1, #0
 1256 0002 04D0     		beq	.L65
 682:Library/src/lcm32f06x_usart.c ****   {
 683:Library/src/lcm32f06x_usart.c ****     USARTx->LCR |= 0X10;
 1257              		.loc 1 683 5 is_stmt 1 view .LVU358
 1258              		.loc 1 683 17 is_stmt 0 view .LVU359
 1259 0004 1022     		movs	r2, #16
 1260              		.loc 1 683 11 view .LVU360
 1261 0006 C36A     		ldr	r3, [r0, #44]
ARM GAS  /tmp/ccvzS1Bu.s 			page 37


 1262              		.loc 1 683 17 view .LVU361
 1263 0008 1343     		orrs	r3, r2
 1264 000a C362     		str	r3, [r0, #44]
 1265              	.L64:
 684:Library/src/lcm32f06x_usart.c ****   }
 685:Library/src/lcm32f06x_usart.c ****   else
 686:Library/src/lcm32f06x_usart.c ****   {
 687:Library/src/lcm32f06x_usart.c ****     USARTx->LCR &= 0XEF;
 688:Library/src/lcm32f06x_usart.c ****   }
 689:Library/src/lcm32f06x_usart.c **** }
 1266              		.loc 1 689 1 view .LVU362
 1267              		@ sp needed
 1268 000c 7047     		bx	lr
 1269              	.L65:
 687:Library/src/lcm32f06x_usart.c ****   }
 1270              		.loc 1 687 5 is_stmt 1 view .LVU363
 687:Library/src/lcm32f06x_usart.c ****   }
 1271              		.loc 1 687 17 is_stmt 0 view .LVU364
 1272 000e EF23     		movs	r3, #239
 687:Library/src/lcm32f06x_usart.c ****   }
 1273              		.loc 1 687 11 view .LVU365
 1274 0010 C26A     		ldr	r2, [r0, #44]
 687:Library/src/lcm32f06x_usart.c ****   }
 1275              		.loc 1 687 17 view .LVU366
 1276 0012 1340     		ands	r3, r2
 1277 0014 C362     		str	r3, [r0, #44]
 1278              		.loc 1 689 1 view .LVU367
 1279 0016 F9E7     		b	.L64
 1280              		.cfi_endproc
 1281              	.LFE65:
 1283              		.section	.text.USART_LIN_Init,"ax",%progbits
 1284              		.align	1
 1285              		.p2align 2,,3
 1286              		.global	USART_LIN_Init
 1287              		.syntax unified
 1288              		.code	16
 1289              		.thumb_func
 1291              	USART_LIN_Init:
 1292              	.LVL94:
 1293              	.LFB66:
 690:Library/src/lcm32f06x_usart.c **** 
 691:Library/src/lcm32f06x_usart.c **** /** 
 692:Library/src/lcm32f06x_usart.c ****   * @name   USART_LIN_Init
 693:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Initialize LIN based on the parameters specified in LIN-InitStruct
 694:Library/src/lcm32f06x_usart.c ****   *         CN: 根据 LIN_InitStruct 中指定的参数初始化 LIN
 695:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 696:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 697:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 698:Library/src/lcm32f06x_usart.c ****   * @param  LIN_InitStruct:
 699:Library/src/lcm32f06x_usart.c ****   *         EN: Pointer to a LIN_InitStruct structure that contains the 
 700:Library/src/lcm32f06x_usart.c ****   *             configuration information for the specified LIN peripheral.
 701:Library/src/lcm32f06x_usart.c ****   *         CN: 指向 LIN_InitStruct 结构的指针，该结构包含指定 LIN 外设的配置信息。
 702:Library/src/lcm32f06x_usart.c ****   * @retval None
 703:Library/src/lcm32f06x_usart.c **** */
 704:Library/src/lcm32f06x_usart.c **** void USART_LIN_Init(USART_TypeDef *USARTx, LIN_InitTypeDef *LIN_InitStruct)
 705:Library/src/lcm32f06x_usart.c **** {
 1294              		.loc 1 705 1 is_stmt 1 view -0
ARM GAS  /tmp/ccvzS1Bu.s 			page 38


 1295              		.cfi_startproc
 1296              		@ args = 0, pretend = 0, frame = 0
 1297              		@ frame_needed = 0, uses_anonymous_args = 0
 706:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 707:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_MODE(LIN_InitStruct->LIN_Mode));
 1298              		.loc 1 707 3 view .LVU369
 708:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_RESPONSE_LENGTH(LIN_InitStruct->LIN_ResponseLen));
 1299              		.loc 1 708 3 view .LVU370
 709:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_CHECKSELECT(LIN_InitStruct->LIN_ChecksunStore));
 1300              		.loc 1 709 3 view .LVU371
 710:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_BITERROR(LIN_InitStruct->LIN_BitErrorCheck));
 1301              		.loc 1 710 3 view .LVU372
 711:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_BREAK_LENGTH(LIN_InitStruct->LIN_BreakSyncGap));
 1302              		.loc 1 711 3 view .LVU373
 712:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_TRANS_LENGTH(LIN_InitStruct->LIN_TransmissionGap));
 1303              		.loc 1 712 3 view .LVU374
 713:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_USAGE(LIN_InitStruct->LIN_ResponseRole));
 1304              		.loc 1 713 3 view .LVU375
 714:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_PARITYTYPE(LIN_InitStruct->LIN_ParityType));
 1305              		.loc 1 714 3 view .LVU376
 715:Library/src/lcm32f06x_usart.c **** 
 716:Library/src/lcm32f06x_usart.c ****   uint32_t temp = 0;
 1306              		.loc 1 716 3 view .LVU377
 717:Library/src/lcm32f06x_usart.c **** 
 718:Library/src/lcm32f06x_usart.c ****   temp = USARTx->LINCON1;
 1307              		.loc 1 718 3 view .LVU378
 719:Library/src/lcm32f06x_usart.c ****   temp &= 0xFFFFFFDE;
 1308              		.loc 1 719 8 is_stmt 0 view .LVU379
 1309 0000 2123     		movs	r3, #33
 718:Library/src/lcm32f06x_usart.c ****   temp &= 0xFFFFFFDE;
 1310              		.loc 1 718 8 view .LVU380
 1311 0002 426F     		ldr	r2, [r0, #116]
 1312              	.LVL95:
 1313              		.loc 1 719 3 is_stmt 1 view .LVU381
 705:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 1314              		.loc 1 705 1 is_stmt 0 view .LVU382
 1315 0004 30B5     		push	{r4, r5, lr}
 1316              	.LCFI9:
 1317              		.cfi_def_cfa_offset 12
 1318              		.cfi_offset 4, -12
 1319              		.cfi_offset 5, -8
 1320              		.cfi_offset 14, -4
 1321              		.loc 1 719 8 view .LVU383
 1322 0006 9A43     		bics	r2, r3
 1323              	.LVL96:
 720:Library/src/lcm32f06x_usart.c ****   temp =  temp | LIN_InitStruct->LIN_Mode | LIN_InitStruct->LIN_ChecksunStore;
 1324              		.loc 1 720 3 is_stmt 1 view .LVU384
 1325              		.loc 1 720 8 is_stmt 0 view .LVU385
 1326 0008 8C68     		ldr	r4, [r1, #8]
 1327 000a 0B68     		ldr	r3, [r1]
 721:Library/src/lcm32f06x_usart.c ****   USARTx->LINCON1 =  temp;
 722:Library/src/lcm32f06x_usart.c **** 
 723:Library/src/lcm32f06x_usart.c ****   temp = USARTx->FRAMECON;
 724:Library/src/lcm32f06x_usart.c ****   temp &= 0x00;
 725:Library/src/lcm32f06x_usart.c ****   temp =  temp |
 726:Library/src/lcm32f06x_usart.c ****           LIN_InitStruct->LIN_BitErrorCheck | \
 727:Library/src/lcm32f06x_usart.c ****           LIN_InitStruct->LIN_BreakSyncGap  | \
ARM GAS  /tmp/ccvzS1Bu.s 			page 39


 728:Library/src/lcm32f06x_usart.c ****           LIN_InitStruct->LIN_TransmissionGap;
 729:Library/src/lcm32f06x_usart.c ****   USARTx->FRAMECON = temp;
 730:Library/src/lcm32f06x_usart.c ****                       
 731:Library/src/lcm32f06x_usart.c ****   temp = USARTx->DATCON;
 732:Library/src/lcm32f06x_usart.c ****   temp &= 0xFFC0;
 733:Library/src/lcm32f06x_usart.c ****   temp = temp |
 1328              		.loc 1 733 8 view .LVU386
 1329 000c 8D69     		ldr	r5, [r1, #24]
 720:Library/src/lcm32f06x_usart.c ****   temp =  temp | LIN_InitStruct->LIN_Mode | LIN_InitStruct->LIN_ChecksunStore;
 1330              		.loc 1 720 8 view .LVU387
 1331 000e 2343     		orrs	r3, r4
 731:Library/src/lcm32f06x_usart.c ****   temp &= 0xFFC0;
 1332              		.loc 1 731 8 view .LVU388
 1333 0010 9824     		movs	r4, #152
 734:Library/src/lcm32f06x_usart.c ****          LIN_InitStruct->LIN_ParityType   | \
 735:Library/src/lcm32f06x_usart.c ****          LIN_InitStruct->LIN_ResponseRole | \
 736:Library/src/lcm32f06x_usart.c ****          LIN_InitStruct->LIN_ResponseLen;
 737:Library/src/lcm32f06x_usart.c ****   USARTx->DATCON = temp;
 738:Library/src/lcm32f06x_usart.c **** 
 739:Library/src/lcm32f06x_usart.c **** }
 1334              		.loc 1 739 1 view .LVU389
 1335              		@ sp needed
 720:Library/src/lcm32f06x_usart.c ****   USARTx->LINCON1 =  temp;
 1336              		.loc 1 720 8 view .LVU390
 1337 0012 1343     		orrs	r3, r2
 1338              	.LVL97:
 721:Library/src/lcm32f06x_usart.c **** 
 1339              		.loc 1 721 3 is_stmt 1 view .LVU391
 721:Library/src/lcm32f06x_usart.c **** 
 1340              		.loc 1 721 19 is_stmt 0 view .LVU392
 1341 0014 4367     		str	r3, [r0, #116]
 723:Library/src/lcm32f06x_usart.c ****   temp &= 0x00;
 1342              		.loc 1 723 3 is_stmt 1 view .LVU393
 726:Library/src/lcm32f06x_usart.c ****           LIN_InitStruct->LIN_BreakSyncGap  | \
 1343              		.loc 1 726 45 is_stmt 0 view .LVU394
 1344 0016 0A69     		ldr	r2, [r1, #16]
 723:Library/src/lcm32f06x_usart.c ****   temp &= 0x00;
 1345              		.loc 1 723 8 view .LVU395
 1346 0018 C36F     		ldr	r3, [r0, #124]
 1347              	.LVL98:
 724:Library/src/lcm32f06x_usart.c ****   temp =  temp |
 1348              		.loc 1 724 3 is_stmt 1 view .LVU396
 725:Library/src/lcm32f06x_usart.c ****           LIN_InitStruct->LIN_BitErrorCheck | \
 1349              		.loc 1 725 3 view .LVU397
 726:Library/src/lcm32f06x_usart.c ****           LIN_InitStruct->LIN_BreakSyncGap  | \
 1350              		.loc 1 726 45 is_stmt 0 view .LVU398
 1351 001a CB68     		ldr	r3, [r1, #12]
 1352 001c 1343     		orrs	r3, r2
 725:Library/src/lcm32f06x_usart.c ****           LIN_InitStruct->LIN_BitErrorCheck | \
 1353              		.loc 1 725 8 view .LVU399
 1354 001e 4A69     		ldr	r2, [r1, #20]
 1355 0020 1343     		orrs	r3, r2
 1356              	.LVL99:
 729:Library/src/lcm32f06x_usart.c ****                       
 1357              		.loc 1 729 3 is_stmt 1 view .LVU400
 729:Library/src/lcm32f06x_usart.c ****                       
 1358              		.loc 1 729 20 is_stmt 0 view .LVU401
ARM GAS  /tmp/ccvzS1Bu.s 			page 40


 1359 0022 C367     		str	r3, [r0, #124]
 731:Library/src/lcm32f06x_usart.c ****   temp &= 0xFFC0;
 1360              		.loc 1 731 3 is_stmt 1 view .LVU402
 731:Library/src/lcm32f06x_usart.c ****   temp &= 0xFFC0;
 1361              		.loc 1 731 8 is_stmt 0 view .LVU403
 1362 0024 0259     		ldr	r2, [r0, r4]
 1363              	.LVL100:
 732:Library/src/lcm32f06x_usart.c ****   temp = temp |
 1364              		.loc 1 732 3 is_stmt 1 view .LVU404
 732:Library/src/lcm32f06x_usart.c ****   temp = temp |
 1365              		.loc 1 732 8 is_stmt 0 view .LVU405
 1366 0026 044B     		ldr	r3, .L68
 1367 0028 1A40     		ands	r2, r3
 1368              	.LVL101:
 733:Library/src/lcm32f06x_usart.c ****          LIN_InitStruct->LIN_ParityType   | \
 1369              		.loc 1 733 3 is_stmt 1 view .LVU406
 733:Library/src/lcm32f06x_usart.c ****          LIN_InitStruct->LIN_ParityType   | \
 1370              		.loc 1 733 8 is_stmt 0 view .LVU407
 1371 002a CB69     		ldr	r3, [r1, #28]
 1372 002c 4968     		ldr	r1, [r1, #4]
 1373              	.LVL102:
 733:Library/src/lcm32f06x_usart.c ****          LIN_InitStruct->LIN_ParityType   | \
 1374              		.loc 1 733 8 view .LVU408
 1375 002e 2B43     		orrs	r3, r5
 1376 0030 0B43     		orrs	r3, r1
 1377 0032 1343     		orrs	r3, r2
 1378              	.LVL103:
 737:Library/src/lcm32f06x_usart.c **** 
 1379              		.loc 1 737 3 is_stmt 1 view .LVU409
 737:Library/src/lcm32f06x_usart.c **** 
 1380              		.loc 1 737 18 is_stmt 0 view .LVU410
 1381 0034 0351     		str	r3, [r0, r4]
 1382              		.loc 1 739 1 view .LVU411
 1383 0036 30BD     		pop	{r4, r5, pc}
 1384              	.L69:
 1385              		.align	2
 1386              	.L68:
 1387 0038 C0FF0000 		.word	65472
 1388              		.cfi_endproc
 1389              	.LFE66:
 1391              		.section	.text.LIN_StructInit,"ax",%progbits
 1392              		.align	1
 1393              		.p2align 2,,3
 1394              		.global	LIN_StructInit
 1395              		.syntax unified
 1396              		.code	16
 1397              		.thumb_func
 1399              	LIN_StructInit:
 1400              	.LVL104:
 1401              	.LFB67:
 740:Library/src/lcm32f06x_usart.c **** 
 741:Library/src/lcm32f06x_usart.c **** /**
 742:Library/src/lcm32f06x_usart.c ****   * @name   LIN_StructInit
 743:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Fills each LIN_InitStruct member with its default value.
 744:Library/src/lcm32f06x_usart.c ****   *         CN: 用默认值填充每个 LIN_InitStruct 成员。
 745:Library/src/lcm32f06x_usart.c ****   * @param  LIN_InitStruct:
 746:Library/src/lcm32f06x_usart.c ****   *         EN: pointer to a LIN_InitTypeDef structure that contains the 
ARM GAS  /tmp/ccvzS1Bu.s 			page 41


 747:Library/src/lcm32f06x_usart.c ****   *             configuration information for the specified LIN peripheral.
 748:Library/src/lcm32f06x_usart.c ****   *         CN: 指向 LIN_InitTypeDef 结构的指针，该结构包含指定 LIN 外设的配置信息。
 749:Library/src/lcm32f06x_usart.c ****   * @retval None
 750:Library/src/lcm32f06x_usart.c ****   */
 751:Library/src/lcm32f06x_usart.c **** void LIN_StructInit(LIN_InitTypeDef *LIN_InitStruct)
 752:Library/src/lcm32f06x_usart.c **** {
 1402              		.loc 1 752 1 is_stmt 1 view -0
 1403              		.cfi_startproc
 1404              		@ args = 0, pretend = 0, frame = 0
 1405              		@ frame_needed = 0, uses_anonymous_args = 0
 1406              		@ link register save eliminated.
 753:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 754:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_MODE(LIN_InitStruct->LIN_Mode));
 1407              		.loc 1 754 3 view .LVU413
 755:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_RESPONSE_LENGTH(LIN_InitStruct->LIN_ResponseLen));
 1408              		.loc 1 755 3 view .LVU414
 756:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_CHECKSELECT(LIN_InitStruct->LIN_ChecksunStore));
 1409              		.loc 1 756 3 view .LVU415
 757:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_BITERROR(LIN_InitStruct->LIN_BitErrorCheck));
 1410              		.loc 1 757 3 view .LVU416
 758:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_BREAK_LENGTH(LIN_InitStruct->LIN_BreakSyncGap));
 1411              		.loc 1 758 3 view .LVU417
 759:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_TRANS_LENGTH(LIN_InitStruct->LIN_TransmissionGap));
 1412              		.loc 1 759 3 view .LVU418
 760:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_USAGE(LIN_InitStruct->LIN_ResponseRole));
 1413              		.loc 1 760 3 view .LVU419
 761:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_PARITYTYPE(LIN_InitStruct->LIN_ParityType));
 1414              		.loc 1 761 3 view .LVU420
 762:Library/src/lcm32f06x_usart.c **** 
 763:Library/src/lcm32f06x_usart.c ****   /* LIN_InitStruct members default value */
 764:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_Mode = LIN_Mode_Master;
 1415              		.loc 1 764 3 view .LVU421
 1416              		.loc 1 764 28 is_stmt 0 view .LVU422
 1417 0000 0123     		movs	r3, #1
 765:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ResponseLen = LIN_ResponseLength_1b;
 766:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ChecksunStore = LIN_None_Write_RXFIFO;
 767:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_BitErrorCheck = LIN_BitErrorCheck_Disable;
 768:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_BreakSyncGap = LIN_BreakSyncGap_1b;
 769:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_TransmissionGap = LIN_TransmissionGap_0b;
 770:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ResponseRole = LIN_Freme_Timeout;
 771:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ParityType = LIN_Classic_Checck;
 772:Library/src/lcm32f06x_usart.c **** }
 1418              		.loc 1 772 1 view .LVU423
 1419              		@ sp needed
 764:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ResponseLen = LIN_ResponseLength_1b;
 1420              		.loc 1 764 28 view .LVU424
 1421 0002 0360     		str	r3, [r0]
 765:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ResponseLen = LIN_ResponseLength_1b;
 1422              		.loc 1 765 3 is_stmt 1 view .LVU425
 765:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ResponseLen = LIN_ResponseLength_1b;
 1423              		.loc 1 765 35 is_stmt 0 view .LVU426
 1424 0004 0023     		movs	r3, #0
 1425 0006 4360     		str	r3, [r0, #4]
 766:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_BitErrorCheck = LIN_BitErrorCheck_Disable;
 1426              		.loc 1 766 3 is_stmt 1 view .LVU427
 766:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_BitErrorCheck = LIN_BitErrorCheck_Disable;
 1427              		.loc 1 766 37 is_stmt 0 view .LVU428
ARM GAS  /tmp/ccvzS1Bu.s 			page 42


 1428 0008 8360     		str	r3, [r0, #8]
 767:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_BreakSyncGap = LIN_BreakSyncGap_1b;
 1429              		.loc 1 767 3 is_stmt 1 view .LVU429
 767:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_BreakSyncGap = LIN_BreakSyncGap_1b;
 1430              		.loc 1 767 37 is_stmt 0 view .LVU430
 1431 000a C360     		str	r3, [r0, #12]
 768:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_TransmissionGap = LIN_TransmissionGap_0b;
 1432              		.loc 1 768 3 is_stmt 1 view .LVU431
 768:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_TransmissionGap = LIN_TransmissionGap_0b;
 1433              		.loc 1 768 36 is_stmt 0 view .LVU432
 1434 000c 0361     		str	r3, [r0, #16]
 769:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ResponseRole = LIN_Freme_Timeout;
 1435              		.loc 1 769 3 is_stmt 1 view .LVU433
 769:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ResponseRole = LIN_Freme_Timeout;
 1436              		.loc 1 769 39 is_stmt 0 view .LVU434
 1437 000e 4361     		str	r3, [r0, #20]
 770:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ParityType = LIN_Classic_Checck;
 1438              		.loc 1 770 3 is_stmt 1 view .LVU435
 770:Library/src/lcm32f06x_usart.c ****   LIN_InitStruct->LIN_ParityType = LIN_Classic_Checck;
 1439              		.loc 1 770 36 is_stmt 0 view .LVU436
 1440 0010 8361     		str	r3, [r0, #24]
 771:Library/src/lcm32f06x_usart.c **** }
 1441              		.loc 1 771 3 is_stmt 1 view .LVU437
 771:Library/src/lcm32f06x_usart.c **** }
 1442              		.loc 1 771 34 is_stmt 0 view .LVU438
 1443 0012 C361     		str	r3, [r0, #28]
 1444              		.loc 1 772 1 view .LVU439
 1445 0014 7047     		bx	lr
 1446              		.cfi_endproc
 1447              	.LFE67:
 1449 0016 C046     		.section	.text.USART_LINCmd,"ax",%progbits
 1450              		.align	1
 1451              		.p2align 2,,3
 1452              		.global	USART_LINCmd
 1453              		.syntax unified
 1454              		.code	16
 1455              		.thumb_func
 1457              	USART_LINCmd:
 1458              	.LVL105:
 1459              	.LFB68:
 773:Library/src/lcm32f06x_usart.c **** 
 774:Library/src/lcm32f06x_usart.c **** /**
 775:Library/src/lcm32f06x_usart.c ****   * @name   USART_LINCmd
 776:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enable or disable USARTx peripheral LIN receiving header detection.
 777:Library/src/lcm32f06x_usart.c ****   *         CN: 启用或禁止 USARTx 外设 LIN 接收报头检测。
 778:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 779:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 780:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 781:Library/src/lcm32f06x_usart.c ****   * @param  Type:
 782:Library/src/lcm32f06x_usart.c ****   *         EN: Choose software or hardware to implement LIN
 783:Library/src/lcm32f06x_usart.c ****   *         CN: 选择软件或硬件实现 LIN 
 784:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Hardware
 785:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Software
 786:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 787:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 788:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 789:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
ARM GAS  /tmp/ccvzS1Bu.s 			page 43


 790:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 791:Library/src/lcm32f06x_usart.c ****   * @retval None
 792:Library/src/lcm32f06x_usart.c ****   * @note   Only for slave mode the host does not have hardware logic.
 793:Library/src/lcm32f06x_usart.c ****   */
 794:Library/src/lcm32f06x_usart.c **** void USART_LINCmd(USART_TypeDef *USARTx, uint8_t Type, FunctionalState NewState)
 795:Library/src/lcm32f06x_usart.c **** {
 1460              		.loc 1 795 1 is_stmt 1 view -0
 1461              		.cfi_startproc
 1462              		@ args = 0, pretend = 0, frame = 0
 1463              		@ frame_needed = 0, uses_anonymous_args = 0
 1464              		@ link register save eliminated.
 796:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 797:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_LIN_FUNCTION_TYPE(Type));
 1465              		.loc 1 797 3 view .LVU441
 798:Library/src/lcm32f06x_usart.c ****   assert_param(IS_FUNCTIONAL_STATE(NewState));
 1466              		.loc 1 798 3 view .LVU442
 799:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 1467              		.loc 1 799 3 view .LVU443
 800:Library/src/lcm32f06x_usart.c ****   {
 801:Library/src/lcm32f06x_usart.c ****     USARTx->CR_b.LINEN |= 1;
 1468              		.loc 1 801 17 is_stmt 0 view .LVU444
 1469 0000 036B     		ldr	r3, [r0, #48]
 1470              		.loc 1 801 24 view .LVU445
 1471 0002 038E     		ldrh	r3, [r0, #48]
 799:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 1472              		.loc 1 799 6 view .LVU446
 1473 0004 002A     		cmp	r2, #0
 1474 0006 0BD0     		beq	.L72
 1475              		.loc 1 801 5 is_stmt 1 view .LVU447
 1476              		.loc 1 801 24 is_stmt 0 view .LVU448
 1477 0008 1022     		movs	r2, #16
 1478              	.LVL106:
 1479              		.loc 1 801 24 view .LVU449
 1480 000a 1343     		orrs	r3, r2
 802:Library/src/lcm32f06x_usart.c ****     if(Type == LIN_Software)
 803:Library/src/lcm32f06x_usart.c ****     {
 804:Library/src/lcm32f06x_usart.c ****       USARTx->LINCON1_b.SCM |= 1;
 1481              		.loc 1 804 29 view .LVU450
 1482 000c 7422     		movs	r2, #116
 801:Library/src/lcm32f06x_usart.c ****     if(Type == LIN_Software)
 1483              		.loc 1 801 24 view .LVU451
 1484 000e 0386     		strh	r3, [r0, #48]
 802:Library/src/lcm32f06x_usart.c ****     if(Type == LIN_Software)
 1485              		.loc 1 802 5 is_stmt 1 view .LVU452
 1486              		.loc 1 804 24 is_stmt 0 view .LVU453
 1487 0010 436F     		ldr	r3, [r0, #116]
 1488              		.loc 1 804 29 view .LVU454
 1489 0012 835A     		ldrh	r3, [r0, r2]
 802:Library/src/lcm32f06x_usart.c ****     if(Type == LIN_Software)
 1490              		.loc 1 802 7 view .LVU455
 1491 0014 0829     		cmp	r1, #8
 1492 0016 07D0     		beq	.L75
 805:Library/src/lcm32f06x_usart.c ****     }
 806:Library/src/lcm32f06x_usart.c ****     else
 807:Library/src/lcm32f06x_usart.c ****     {
 808:Library/src/lcm32f06x_usart.c ****       USARTx->LINCON1_b.SCM &= 0;
 1493              		.loc 1 808 7 is_stmt 1 view .LVU456
ARM GAS  /tmp/ccvzS1Bu.s 			page 44


 1494              		.loc 1 808 29 is_stmt 0 view .LVU457
 1495 0018 0821     		movs	r1, #8
 1496              	.LVL107:
 1497              		.loc 1 808 29 view .LVU458
 1498 001a 8B43     		bics	r3, r1
 1499 001c 8352     		strh	r3, [r0, r2]
 1500 001e 02E0     		b	.L71
 1501              	.LVL108:
 1502              	.L72:
 809:Library/src/lcm32f06x_usart.c ****     }
 810:Library/src/lcm32f06x_usart.c ****   }
 811:Library/src/lcm32f06x_usart.c ****   else
 812:Library/src/lcm32f06x_usart.c ****   {
 813:Library/src/lcm32f06x_usart.c ****     USARTx->CR_b.LINEN &= 0;
 1503              		.loc 1 813 5 is_stmt 1 view .LVU459
 1504              		.loc 1 813 24 is_stmt 0 view .LVU460
 1505 0020 1022     		movs	r2, #16
 1506              	.LVL109:
 1507              		.loc 1 813 24 view .LVU461
 1508 0022 9343     		bics	r3, r2
 1509 0024 0386     		strh	r3, [r0, #48]
 1510              	.LVL110:
 1511              	.L71:
 814:Library/src/lcm32f06x_usart.c ****   }
 815:Library/src/lcm32f06x_usart.c **** }
 1512              		.loc 1 815 1 view .LVU462
 1513              		@ sp needed
 1514 0026 7047     		bx	lr
 1515              	.LVL111:
 1516              	.L75:
 804:Library/src/lcm32f06x_usart.c ****     }
 1517              		.loc 1 804 7 is_stmt 1 view .LVU463
 804:Library/src/lcm32f06x_usart.c ****     }
 1518              		.loc 1 804 29 is_stmt 0 view .LVU464
 1519 0028 0B43     		orrs	r3, r1
 1520 002a 8352     		strh	r3, [r0, r2]
 1521 002c FBE7     		b	.L71
 1522              		.cfi_endproc
 1523              	.LFE68:
 1525 002e C046     		.section	.text.BandrateClockMeasure,"ax",%progbits
 1526              		.align	1
 1527              		.p2align 2,,3
 1528              		.global	BandrateClockMeasure
 1529              		.syntax unified
 1530              		.code	16
 1531              		.thumb_func
 1533              	BandrateClockMeasure:
 1534              	.LVL112:
 1535              	.LFB69:
 816:Library/src/lcm32f06x_usart.c **** 
 817:Library/src/lcm32f06x_usart.c **** /**
 818:Library/src/lcm32f06x_usart.c ****   * @name   BandrateClockMeasure
 819:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Configure baud rate detection upper and lower limits.
 820:Library/src/lcm32f06x_usart.c ****   *         CN: 配置波特率侦测上下限。
 821:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 822:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 823:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
ARM GAS  /tmp/ccvzS1Bu.s 			page 45


 824:Library/src/lcm32f06x_usart.c ****   * @param  UpperLimitClock: 
 825:Library/src/lcm32f06x_usart.c ****   *         EN: Upper limit of baud rate measurement clock count.
 826:Library/src/lcm32f06x_usart.c ****   *         CN: 波特率测量时钟数上限。
 827:Library/src/lcm32f06x_usart.c ****   * @param  LowerLimitClock: 
 828:Library/src/lcm32f06x_usart.c ****   *         EN: Lower limit of baud rate measurement clock count.
 829:Library/src/lcm32f06x_usart.c ****   *         CN: 波特率测量时钟数下限。
 830:Library/src/lcm32f06x_usart.c ****   * @retval None
 831:Library/src/lcm32f06x_usart.c ****   */
 832:Library/src/lcm32f06x_usart.c **** void BandrateClockMeasure(USART_TypeDef *USARTx, uint32_t UpperLimitClock, uint32_t LowerLimitClock
 833:Library/src/lcm32f06x_usart.c **** {
 1536              		.loc 1 833 1 is_stmt 1 view -0
 1537              		.cfi_startproc
 1538              		@ args = 0, pretend = 0, frame = 0
 1539              		@ frame_needed = 0, uses_anonymous_args = 0
 834:Library/src/lcm32f06x_usart.c ****   USARTx->BRDUPPER_b.UPPERLIMIT = UpperLimitClock;
 1540              		.loc 1 834 3 view .LVU466
 1541              		.loc 1 834 33 is_stmt 0 view .LVU467
 1542 0000 A023     		movs	r3, #160
 833:Library/src/lcm32f06x_usart.c ****   USARTx->BRDUPPER_b.UPPERLIMIT = UpperLimitClock;
 1543              		.loc 1 833 1 view .LVU468
 1544 0002 10B5     		push	{r4, lr}
 1545              	.LCFI10:
 1546              		.cfi_def_cfa_offset 8
 1547              		.cfi_offset 4, -8
 1548              		.cfi_offset 14, -4
 1549              		.loc 1 834 33 view .LVU469
 1550 0004 89B2     		uxth	r1, r1
 1551              	.LVL113:
 1552              		.loc 1 834 33 view .LVU470
 1553 0006 C45A     		ldrh	r4, [r0, r3]
 835:Library/src/lcm32f06x_usart.c **** 
 836:Library/src/lcm32f06x_usart.c ****   USARTx->BRDLOWER_b.LOWERLIMIT = LowerLimitClock;
 1554              		.loc 1 836 33 view .LVU471
 1555 0008 92B2     		uxth	r2, r2
 1556              	.LVL114:
 834:Library/src/lcm32f06x_usart.c **** 
 1557              		.loc 1 834 33 view .LVU472
 1558 000a C152     		strh	r1, [r0, r3]
 1559              		.loc 1 836 3 is_stmt 1 view .LVU473
 1560              		.loc 1 836 33 is_stmt 0 view .LVU474
 1561 000c 0433     		adds	r3, r3, #4
 1562 000e C15A     		ldrh	r1, [r0, r3]
 837:Library/src/lcm32f06x_usart.c **** }
 1563              		.loc 1 837 1 view .LVU475
 1564              		@ sp needed
 836:Library/src/lcm32f06x_usart.c **** }
 1565              		.loc 1 836 33 view .LVU476
 1566 0010 C252     		strh	r2, [r0, r3]
 1567              		.loc 1 837 1 view .LVU477
 1568 0012 10BD     		pop	{r4, pc}
 1569              		.cfi_endproc
 1570              	.LFE69:
 1572              		.section	.text.LIN_CurrentStatus,"ax",%progbits
 1573              		.align	1
 1574              		.p2align 2,,3
 1575              		.global	LIN_CurrentStatus
 1576              		.syntax unified
ARM GAS  /tmp/ccvzS1Bu.s 			page 46


 1577              		.code	16
 1578              		.thumb_func
 1580              	LIN_CurrentStatus:
 1581              	.LVL115:
 1582              	.LFB70:
 838:Library/src/lcm32f06x_usart.c **** 
 839:Library/src/lcm32f06x_usart.c **** /**
 840:Library/src/lcm32f06x_usart.c ****   * @name   LIN_CurrentStatus
 841:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Configure the current working status of the LIN network.
 842:Library/src/lcm32f06x_usart.c ****   *         CN: 配置 LIN 网络当前的工作状态。
 843:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 844:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 845:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 846:Library/src/lcm32f06x_usart.c ****   * @param  LIN_CurrentStatus: 
 847:Library/src/lcm32f06x_usart.c ****   *         EN: Specify the current working status of LIN.
 848:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 LIN 当前的工作状态。
 849:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_CURRENT_Work_ACTIVE
 850:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_CURRENT_Work_SLEEP
 851:Library/src/lcm32f06x_usart.c ****   * @retval None
 852:Library/src/lcm32f06x_usart.c ****   */
 853:Library/src/lcm32f06x_usart.c **** void LIN_CurrentStatus(USART_TypeDef *USARTx, uint32_t LIN_CurrentStatus)
 854:Library/src/lcm32f06x_usart.c **** {
 1583              		.loc 1 854 1 is_stmt 1 view -0
 1584              		.cfi_startproc
 1585              		@ args = 0, pretend = 0, frame = 0
 1586              		@ frame_needed = 0, uses_anonymous_args = 0
 1587              		@ link register save eliminated.
 855:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 856:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_LIN_CURRENT_STATUS(LIN_CurrentStatus));
 1588              		.loc 1 856 3 view .LVU479
 857:Library/src/lcm32f06x_usart.c ****   
 858:Library/src/lcm32f06x_usart.c ****   if (LIN_CurrentStatus == LIN_CURRENT_Work_SLEEP)
 1589              		.loc 1 858 3 view .LVU480
 1590              		.loc 1 858 6 is_stmt 0 view .LVU481
 1591 0000 8023     		movs	r3, #128
 1592 0002 5B00     		lsls	r3, r3, #1
 1593 0004 9942     		cmp	r1, r3
 1594 0006 06D0     		beq	.L80
 859:Library/src/lcm32f06x_usart.c ****   {
 860:Library/src/lcm32f06x_usart.c ****     USARTx->LINCON1_b.LINSLP |= 1;
 861:Library/src/lcm32f06x_usart.c ****   }
 862:Library/src/lcm32f06x_usart.c ****   else
 863:Library/src/lcm32f06x_usart.c ****   {
 864:Library/src/lcm32f06x_usart.c ****     USARTx->LINCON1_b.LINSLP &= 0;
 1595              		.loc 1 864 5 is_stmt 1 view .LVU482
 1596              		.loc 1 864 30 is_stmt 0 view .LVU483
 1597 0008 7422     		movs	r2, #116
 1598              		.loc 1 864 22 view .LVU484
 1599 000a 436F     		ldr	r3, [r0, #116]
 1600              		.loc 1 864 30 view .LVU485
 1601 000c 0549     		ldr	r1, .L81
 1602              	.LVL116:
 1603              		.loc 1 864 30 view .LVU486
 1604 000e 835A     		ldrh	r3, [r0, r2]
 1605 0010 0B40     		ands	r3, r1
 1606 0012 8352     		strh	r3, [r0, r2]
 1607              	.L77:
ARM GAS  /tmp/ccvzS1Bu.s 			page 47


 865:Library/src/lcm32f06x_usart.c ****   }
 866:Library/src/lcm32f06x_usart.c **** }
 1608              		.loc 1 866 1 view .LVU487
 1609              		@ sp needed
 1610 0014 7047     		bx	lr
 1611              	.LVL117:
 1612              	.L80:
 860:Library/src/lcm32f06x_usart.c ****   }
 1613              		.loc 1 860 5 is_stmt 1 view .LVU488
 860:Library/src/lcm32f06x_usart.c ****   }
 1614              		.loc 1 860 22 is_stmt 0 view .LVU489
 1615 0016 436F     		ldr	r3, [r0, #116]
 860:Library/src/lcm32f06x_usart.c ****   }
 1616              		.loc 1 860 30 view .LVU490
 1617 0018 7423     		movs	r3, #116
 1618 001a C25A     		ldrh	r2, [r0, r3]
 1619 001c 1143     		orrs	r1, r2
 1620              	.LVL118:
 860:Library/src/lcm32f06x_usart.c ****   }
 1621              		.loc 1 860 30 view .LVU491
 1622 001e C152     		strh	r1, [r0, r3]
 1623 0020 F8E7     		b	.L77
 1624              	.L82:
 1625 0022 C046     		.align	2
 1626              	.L81:
 1627 0024 FFFEFFFF 		.word	-257
 1628              		.cfi_endproc
 1629              	.LFE70:
 1631              		.section	.text.LIN_Bus_LongZero_Check,"ax",%progbits
 1632              		.align	1
 1633              		.p2align 2,,3
 1634              		.global	LIN_Bus_LongZero_Check
 1635              		.syntax unified
 1636              		.code	16
 1637              		.thumb_func
 1639              	LIN_Bus_LongZero_Check:
 1640              	.LVL119:
 1641              	.LFB71:
 867:Library/src/lcm32f06x_usart.c **** 
 868:Library/src/lcm32f06x_usart.c **** /** 
 869:Library/src/lcm32f06x_usart.c ****   * @name   LIN_Bus_LongZero_Check
 870:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enable or disable bus long zero detection
 871:Library/src/lcm32f06x_usart.c ****   *         CN: 使能或禁用总线长零检测
 872:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 873:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 874:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 875:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 876:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 877:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 878:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 879:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 880:Library/src/lcm32f06x_usart.c ****   * @retval None
 881:Library/src/lcm32f06x_usart.c **** */
 882:Library/src/lcm32f06x_usart.c **** void LIN_Bus_LongZero_Check(USART_TypeDef *USARTx, uint32_t NewState)
 883:Library/src/lcm32f06x_usart.c **** {
 1642              		.loc 1 883 1 is_stmt 1 view -0
 1643              		.cfi_startproc
ARM GAS  /tmp/ccvzS1Bu.s 			page 48


 1644              		@ args = 0, pretend = 0, frame = 0
 1645              		@ frame_needed = 0, uses_anonymous_args = 0
 1646              		@ link register save eliminated.
 884:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 885:Library/src/lcm32f06x_usart.c ****   assert_param(IS_FUNCTIONAL_STATE(NewState));
 1647              		.loc 1 885 3 view .LVU493
 886:Library/src/lcm32f06x_usart.c **** 
 887:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 1648              		.loc 1 887 3 view .LVU494
 888:Library/src/lcm32f06x_usart.c ****   {
 889:Library/src/lcm32f06x_usart.c ****     USARTx->LINCON1_b.LZEN |= 1;
 1649              		.loc 1 889 28 is_stmt 0 view .LVU495
 1650 0000 7422     		movs	r2, #116
 1651              		.loc 1 889 22 view .LVU496
 1652 0002 436F     		ldr	r3, [r0, #116]
 1653              		.loc 1 889 28 view .LVU497
 1654 0004 835A     		ldrh	r3, [r0, r2]
 887:Library/src/lcm32f06x_usart.c ****   {
 1655              		.loc 1 887 6 view .LVU498
 1656 0006 0029     		cmp	r1, #0
 1657 0008 03D0     		beq	.L84
 1658              		.loc 1 889 5 is_stmt 1 view .LVU499
 1659              		.loc 1 889 28 is_stmt 0 view .LVU500
 1660 000a 8021     		movs	r1, #128
 1661              	.LVL120:
 1662              		.loc 1 889 28 view .LVU501
 1663 000c 0B43     		orrs	r3, r1
 1664 000e 8352     		strh	r3, [r0, r2]
 1665              	.L83:
 890:Library/src/lcm32f06x_usart.c ****   }
 891:Library/src/lcm32f06x_usart.c ****   else
 892:Library/src/lcm32f06x_usart.c ****   {
 893:Library/src/lcm32f06x_usart.c ****     USARTx->LINCON1_b.LZEN &= 0;
 894:Library/src/lcm32f06x_usart.c ****   }
 895:Library/src/lcm32f06x_usart.c **** }
 1666              		.loc 1 895 1 view .LVU502
 1667              		@ sp needed
 1668 0010 7047     		bx	lr
 1669              	.LVL121:
 1670              	.L84:
 893:Library/src/lcm32f06x_usart.c ****   }
 1671              		.loc 1 893 5 is_stmt 1 view .LVU503
 893:Library/src/lcm32f06x_usart.c ****   }
 1672              		.loc 1 893 28 is_stmt 0 view .LVU504
 1673 0012 8021     		movs	r1, #128
 1674              	.LVL122:
 893:Library/src/lcm32f06x_usart.c ****   }
 1675              		.loc 1 893 28 view .LVU505
 1676 0014 8B43     		bics	r3, r1
 1677 0016 8352     		strh	r3, [r0, r2]
 1678              		.loc 1 895 1 view .LVU506
 1679 0018 FAE7     		b	.L83
 1680              		.cfi_endproc
 1681              	.LFE71:
 1683 001a C046     		.section	.text.LIN_Baudrate_Read,"ax",%progbits
 1684              		.align	1
 1685              		.p2align 2,,3
ARM GAS  /tmp/ccvzS1Bu.s 			page 49


 1686              		.global	LIN_Baudrate_Read
 1687              		.syntax unified
 1688              		.code	16
 1689              		.thumb_func
 1691              	LIN_Baudrate_Read:
 1692              	.LVL123:
 1693              	.LFB72:
 896:Library/src/lcm32f06x_usart.c **** 
 897:Library/src/lcm32f06x_usart.c **** /** 
 898:Library/src/lcm32f06x_usart.c ****   * @name   LIN_Baudrate_Read
 899:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Read the baud rate detected by the LIN slave
 900:Library/src/lcm32f06x_usart.c ****   *         CN: 读取 LIN 从机侦测到的波特率
 901:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 902:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 903:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 904:Library/src/lcm32f06x_usart.c ****   * @retval uint16_t
 905:Library/src/lcm32f06x_usart.c ****   *         EN: LIN slave baud rate self calibration value
 906:Library/src/lcm32f06x_usart.c ****   *         CN: LIN 从机波特率自校准值
 907:Library/src/lcm32f06x_usart.c **** */
 908:Library/src/lcm32f06x_usart.c **** uint16_t LIN_Baudrate_Read(USART_TypeDef *USARTx)
 909:Library/src/lcm32f06x_usart.c **** {
 1694              		.loc 1 909 1 is_stmt 1 view -0
 1695              		.cfi_startproc
 1696              		@ args = 0, pretend = 0, frame = 0
 1697              		@ frame_needed = 0, uses_anonymous_args = 0
 1698              		@ link register save eliminated.
 910:Library/src/lcm32f06x_usart.c ****   return ((USARTx->BRDMSU) & 0xFFFF);
 1699              		.loc 1 910 3 view .LVU508
 1700              		.loc 1 910 18 is_stmt 0 view .LVU509
 1701 0000 9C23     		movs	r3, #156
 911:Library/src/lcm32f06x_usart.c **** }
 1702              		.loc 1 911 1 view .LVU510
 1703              		@ sp needed
 910:Library/src/lcm32f06x_usart.c ****   return ((USARTx->BRDMSU) & 0xFFFF);
 1704              		.loc 1 910 18 view .LVU511
 1705 0002 C058     		ldr	r0, [r0, r3]
 1706              	.LVL124:
 910:Library/src/lcm32f06x_usart.c ****   return ((USARTx->BRDMSU) & 0xFFFF);
 1707              		.loc 1 910 28 discriminator 1 view .LVU512
 1708 0004 80B2     		uxth	r0, r0
 1709              		.loc 1 911 1 view .LVU513
 1710 0006 7047     		bx	lr
 1711              		.cfi_endproc
 1712              	.LFE72:
 1714              		.section	.text.LIN_AutoBaudrateSync,"ax",%progbits
 1715              		.align	1
 1716              		.p2align 2,,3
 1717              		.global	LIN_AutoBaudrateSync
 1718              		.syntax unified
 1719              		.code	16
 1720              		.thumb_func
 1722              	LIN_AutoBaudrateSync:
 1723              	.LVL125:
 1724              	.LFB73:
 912:Library/src/lcm32f06x_usart.c **** 
 913:Library/src/lcm32f06x_usart.c **** /** 
 914:Library/src/lcm32f06x_usart.c ****   * @name   LIN_AutoBaudrateSync
ARM GAS  /tmp/ccvzS1Bu.s 			page 50


 915:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enable or disable automatic baud rate synchronization
 916:Library/src/lcm32f06x_usart.c ****   *         CN: 使能或禁止自动波特率同步
 917:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 918:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 919:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 920:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 921:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 922:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 923:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 924:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 925:Library/src/lcm32f06x_usart.c ****   * @retval None
 926:Library/src/lcm32f06x_usart.c **** */
 927:Library/src/lcm32f06x_usart.c **** void LIN_AutoBaudrateSync(USART_TypeDef *USARTx, uint32_t NewState)
 928:Library/src/lcm32f06x_usart.c **** {
 1725              		.loc 1 928 1 is_stmt 1 view -0
 1726              		.cfi_startproc
 1727              		@ args = 0, pretend = 0, frame = 0
 1728              		@ frame_needed = 0, uses_anonymous_args = 0
 1729              		@ link register save eliminated.
 929:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 1730              		.loc 1 929 3 view .LVU515
 930:Library/src/lcm32f06x_usart.c ****   {
 931:Library/src/lcm32f06x_usart.c ****     USARTx->LINCON1_b.ABD |= 1;
 1731              		.loc 1 931 27 is_stmt 0 view .LVU516
 1732 0000 7422     		movs	r2, #116
 1733              		.loc 1 931 22 view .LVU517
 1734 0002 436F     		ldr	r3, [r0, #116]
 1735              		.loc 1 931 27 view .LVU518
 1736 0004 835A     		ldrh	r3, [r0, r2]
 929:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 1737              		.loc 1 929 6 view .LVU519
 1738 0006 0029     		cmp	r1, #0
 1739 0008 03D0     		beq	.L88
 1740              		.loc 1 931 5 is_stmt 1 view .LVU520
 1741              		.loc 1 931 27 is_stmt 0 view .LVU521
 1742 000a 4021     		movs	r1, #64
 1743              	.LVL126:
 1744              		.loc 1 931 27 view .LVU522
 1745 000c 0B43     		orrs	r3, r1
 1746 000e 8352     		strh	r3, [r0, r2]
 1747              	.L87:
 932:Library/src/lcm32f06x_usart.c ****   }
 933:Library/src/lcm32f06x_usart.c ****   else
 934:Library/src/lcm32f06x_usart.c ****   {
 935:Library/src/lcm32f06x_usart.c ****     USARTx->LINCON1_b.ABD &= 0;
 936:Library/src/lcm32f06x_usart.c ****   }
 937:Library/src/lcm32f06x_usart.c **** }
 1748              		.loc 1 937 1 view .LVU523
 1749              		@ sp needed
 1750 0010 7047     		bx	lr
 1751              	.LVL127:
 1752              	.L88:
 935:Library/src/lcm32f06x_usart.c ****   }
 1753              		.loc 1 935 5 is_stmt 1 view .LVU524
 935:Library/src/lcm32f06x_usart.c ****   }
 1754              		.loc 1 935 27 is_stmt 0 view .LVU525
 1755 0012 4021     		movs	r1, #64
ARM GAS  /tmp/ccvzS1Bu.s 			page 51


 1756              	.LVL128:
 935:Library/src/lcm32f06x_usart.c ****   }
 1757              		.loc 1 935 27 view .LVU526
 1758 0014 8B43     		bics	r3, r1
 1759 0016 8352     		strh	r3, [r0, r2]
 1760              		.loc 1 937 1 view .LVU527
 1761 0018 FAE7     		b	.L87
 1762              		.cfi_endproc
 1763              	.LFE73:
 1765 001a C046     		.section	.text.LIN_HardwareCheckSum,"ax",%progbits
 1766              		.align	1
 1767              		.p2align 2,,3
 1768              		.global	LIN_HardwareCheckSum
 1769              		.syntax unified
 1770              		.code	16
 1771              		.thumb_func
 1773              	LIN_HardwareCheckSum:
 1774              	.LVL129:
 1775              	.LFB74:
 938:Library/src/lcm32f06x_usart.c **** 
 939:Library/src/lcm32f06x_usart.c **** /** 
 940:Library/src/lcm32f06x_usart.c ****   * @name   LIN_HardwareCheckSum
 941:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Enable or disable hardware checksum
 942:Library/src/lcm32f06x_usart.c ****   *         CN: 启用或禁用硬件 checksum 
 943:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 944:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 945:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 946:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
 947:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
 948:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态。
 949:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
 950:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
 951:Library/src/lcm32f06x_usart.c ****   * @retval None
 952:Library/src/lcm32f06x_usart.c **** */
 953:Library/src/lcm32f06x_usart.c **** void LIN_HardwareCheckSum(USART_TypeDef *USARTx, uint32_t NewState)
 954:Library/src/lcm32f06x_usart.c **** {
 1776              		.loc 1 954 1 is_stmt 1 view -0
 1777              		.cfi_startproc
 1778              		@ args = 0, pretend = 0, frame = 0
 1779              		@ frame_needed = 0, uses_anonymous_args = 0
 1780              		@ link register save eliminated.
 955:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 1781              		.loc 1 955 3 view .LVU529
 956:Library/src/lcm32f06x_usart.c ****   {
 957:Library/src/lcm32f06x_usart.c ****     USARTx->LINCON1_b.CSEN |= 1;
 1782              		.loc 1 957 28 is_stmt 0 view .LVU530
 1783 0000 7422     		movs	r2, #116
 1784              		.loc 1 957 22 view .LVU531
 1785 0002 436F     		ldr	r3, [r0, #116]
 1786              		.loc 1 957 28 view .LVU532
 1787 0004 835A     		ldrh	r3, [r0, r2]
 955:Library/src/lcm32f06x_usart.c ****   if (NewState != DISABLE)
 1788              		.loc 1 955 6 view .LVU533
 1789 0006 0029     		cmp	r1, #0
 1790 0008 03D0     		beq	.L91
 1791              		.loc 1 957 5 is_stmt 1 view .LVU534
 1792              		.loc 1 957 28 is_stmt 0 view .LVU535
ARM GAS  /tmp/ccvzS1Bu.s 			page 52


 1793 000a 1021     		movs	r1, #16
 1794              	.LVL130:
 1795              		.loc 1 957 28 view .LVU536
 1796 000c 0B43     		orrs	r3, r1
 1797 000e 8352     		strh	r3, [r0, r2]
 1798              	.L90:
 958:Library/src/lcm32f06x_usart.c ****   }
 959:Library/src/lcm32f06x_usart.c ****   else
 960:Library/src/lcm32f06x_usart.c ****   {
 961:Library/src/lcm32f06x_usart.c ****     USARTx->LINCON1_b.CSEN &= 0;
 962:Library/src/lcm32f06x_usart.c ****   }
 963:Library/src/lcm32f06x_usart.c **** }
 1799              		.loc 1 963 1 view .LVU537
 1800              		@ sp needed
 1801 0010 7047     		bx	lr
 1802              	.LVL131:
 1803              	.L91:
 961:Library/src/lcm32f06x_usart.c ****   }
 1804              		.loc 1 961 5 is_stmt 1 view .LVU538
 961:Library/src/lcm32f06x_usart.c ****   }
 1805              		.loc 1 961 28 is_stmt 0 view .LVU539
 1806 0012 1021     		movs	r1, #16
 1807              	.LVL132:
 961:Library/src/lcm32f06x_usart.c ****   }
 1808              		.loc 1 961 28 view .LVU540
 1809 0014 8B43     		bics	r3, r1
 1810 0016 8352     		strh	r3, [r0, r2]
 1811              		.loc 1 963 1 view .LVU541
 1812 0018 FAE7     		b	.L90
 1813              		.cfi_endproc
 1814              	.LFE74:
 1816 001a C046     		.section	.text.LIN_GetModeStatus,"ax",%progbits
 1817              		.align	1
 1818              		.p2align 2,,3
 1819              		.global	LIN_GetModeStatus
 1820              		.syntax unified
 1821              		.code	16
 1822              		.thumb_func
 1824              	LIN_GetModeStatus:
 1825              	.LVL133:
 1826              	.LFB75:
 964:Library/src/lcm32f06x_usart.c **** 
 965:Library/src/lcm32f06x_usart.c **** /**
 966:Library/src/lcm32f06x_usart.c ****   * @name   LIN_GetModeStatus
 967:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Read the mode status of the LIN.
 968:Library/src/lcm32f06x_usart.c ****   *         CN: 读取 LIN 模式状态。
 969:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
 970:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
 971:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
 972:Library/src/lcm32f06x_usart.c ****   * @param  LIN_ModeStatus: 
 973:Library/src/lcm32f06x_usart.c ****   *         EN: Specify to read LIN mode status.
 974:Library/src/lcm32f06x_usart.c ****   *         CN: 指定读取 LIN 模式状态。
 975:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_MODE_IDLE
 976:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_MODE_BREAK
 977:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_MODE_BREAKDELIMITER
 978:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_MODE_SYNCHFIELD
 979:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_MODE_PARITYFIELD
ARM GAS  /tmp/ccvzS1Bu.s 			page 53


 980:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_MODE_HEADRECEPTION
 981:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_MODE_DATARECEPTION
 982:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_MODE_CHECKSUM
 983:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_MODE_WAKEUPFIELD
 984:Library/src/lcm32f06x_usart.c ****   * @retval EN: Specify flag status
 985:Library/src/lcm32f06x_usart.c ****   *         CN: 指定标志位状态
 986:Library/src/lcm32f06x_usart.c ****   */
 987:Library/src/lcm32f06x_usart.c **** FlagStatus LIN_GetModeStatus(USART_TypeDef *USARTx, uint32_t LIN_ModeStatus)
 988:Library/src/lcm32f06x_usart.c **** {
 1827              		.loc 1 988 1 is_stmt 1 view -0
 1828              		.cfi_startproc
 1829              		@ args = 0, pretend = 0, frame = 0
 1830              		@ frame_needed = 0, uses_anonymous_args = 0
 1831              		@ link register save eliminated.
 989:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 990:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_LIN_MODE_STATUS(LIN_ModeStatus));
 1832              		.loc 1 990 3 view .LVU543
 991:Library/src/lcm32f06x_usart.c ****   
 992:Library/src/lcm32f06x_usart.c ****   if ((USARTx->LINSTS & USART_LINSTS_STS_Msk) == LIN_ModeStatus)
 1833              		.loc 1 992 3 view .LVU544
 1834              		.loc 1 992 14 is_stmt 0 view .LVU545
 1835 0000 9423     		movs	r3, #148
 993:Library/src/lcm32f06x_usart.c ****   {
 994:Library/src/lcm32f06x_usart.c ****     return SET;
 995:Library/src/lcm32f06x_usart.c ****   }
 996:Library/src/lcm32f06x_usart.c ****   else
 997:Library/src/lcm32f06x_usart.c ****   {
 998:Library/src/lcm32f06x_usart.c ****     return RESET;
 999:Library/src/lcm32f06x_usart.c ****   }
1000:Library/src/lcm32f06x_usart.c **** }
 1836              		.loc 1 1000 1 view .LVU546
 1837              		@ sp needed
 992:Library/src/lcm32f06x_usart.c ****   {
 1838              		.loc 1 992 14 view .LVU547
 1839 0002 C358     		ldr	r3, [r0, r3]
 992:Library/src/lcm32f06x_usart.c ****   {
 1840              		.loc 1 992 23 view .LVU548
 1841 0004 1E20     		movs	r0, #30
 1842              	.LVL134:
 992:Library/src/lcm32f06x_usart.c ****   {
 1843              		.loc 1 992 23 view .LVU549
 1844 0006 1840     		ands	r0, r3
 992:Library/src/lcm32f06x_usart.c ****   {
 1845              		.loc 1 992 6 view .LVU550
 1846 0008 401A     		subs	r0, r0, r1
 1847 000a 4342     		rsbs	r3, r0, #0
 1848 000c 5841     		adcs	r0, r0, r3
 1849              		.loc 1 1000 1 view .LVU551
 1850 000e C0B2     		uxtb	r0, r0
 1851 0010 7047     		bx	lr
 1852              		.cfi_endproc
 1853              	.LFE75:
 1855 0012 C046     		.section	.text.LIN_GetPinLeaveStatus,"ax",%progbits
 1856              		.align	1
 1857              		.p2align 2,,3
 1858              		.global	LIN_GetPinLeaveStatus
 1859              		.syntax unified
ARM GAS  /tmp/ccvzS1Bu.s 			page 54


 1860              		.code	16
 1861              		.thumb_func
 1863              	LIN_GetPinLeaveStatus:
 1864              	.LVL135:
 1865              	.LFB76:
1001:Library/src/lcm32f06x_usart.c **** 
1002:Library/src/lcm32f06x_usart.c **** /**
1003:Library/src/lcm32f06x_usart.c ****   * @name   LIN_GetPinLeaveStatus
1004:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Read the LIN receiving pin level status.
1005:Library/src/lcm32f06x_usart.c ****   *         CN: 读取 LIN 接收引脚电平状态。
1006:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
1007:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
1008:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
1009:Library/src/lcm32f06x_usart.c ****   * @param  LIN_PinStatus: 
1010:Library/src/lcm32f06x_usart.c ****   *         EN: Specify to read LIN level status.
1011:Library/src/lcm32f06x_usart.c ****   *         CN: 指定读取 LIN 电平状态。
1012:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_PIN_LEVEL_LOW
1013:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_PIN_LEVEL_HIGH
1014:Library/src/lcm32f06x_usart.c ****   * @retval EN: Specify flag status.
1015:Library/src/lcm32f06x_usart.c ****   *         CN: 指定标志位状态。
1016:Library/src/lcm32f06x_usart.c ****   */
1017:Library/src/lcm32f06x_usart.c **** FlagStatus LIN_GetPinLeaveStatus(USART_TypeDef *USARTx, uint32_t LIN_PinStatus)
1018:Library/src/lcm32f06x_usart.c **** {
 1866              		.loc 1 1018 1 is_stmt 1 view -0
 1867              		.cfi_startproc
 1868              		@ args = 0, pretend = 0, frame = 0
 1869              		@ frame_needed = 0, uses_anonymous_args = 0
 1870              		@ link register save eliminated.
1019:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
1020:Library/src/lcm32f06x_usart.c ****   assert_param(IS_USART_LIN_LEVEL_STATUS(LIN_PinStatus));
 1871              		.loc 1 1020 3 view .LVU553
1021:Library/src/lcm32f06x_usart.c ****   
1022:Library/src/lcm32f06x_usart.c ****   if ((USARTx->LINSTS & USART_LINSTS_PS_Msk) == LIN_PinStatus)
 1872              		.loc 1 1022 3 view .LVU554
 1873              		.loc 1 1022 14 is_stmt 0 view .LVU555
 1874 0000 9423     		movs	r3, #148
1023:Library/src/lcm32f06x_usart.c ****   {
1024:Library/src/lcm32f06x_usart.c ****     return SET;
1025:Library/src/lcm32f06x_usart.c ****   }
1026:Library/src/lcm32f06x_usart.c ****   else
1027:Library/src/lcm32f06x_usart.c ****   {
1028:Library/src/lcm32f06x_usart.c ****     return RESET;
1029:Library/src/lcm32f06x_usart.c ****   }
1030:Library/src/lcm32f06x_usart.c **** }
 1875              		.loc 1 1030 1 view .LVU556
 1876              		@ sp needed
1022:Library/src/lcm32f06x_usart.c ****   {
 1877              		.loc 1 1022 14 view .LVU557
 1878 0002 C358     		ldr	r3, [r0, r3]
1022:Library/src/lcm32f06x_usart.c ****   {
 1879              		.loc 1 1022 23 view .LVU558
 1880 0004 0120     		movs	r0, #1
 1881              	.LVL136:
1022:Library/src/lcm32f06x_usart.c ****   {
 1882              		.loc 1 1022 23 view .LVU559
 1883 0006 1840     		ands	r0, r3
1022:Library/src/lcm32f06x_usart.c ****   {
ARM GAS  /tmp/ccvzS1Bu.s 			page 55


 1884              		.loc 1 1022 6 view .LVU560
 1885 0008 401A     		subs	r0, r0, r1
 1886 000a 4342     		rsbs	r3, r0, #0
 1887 000c 5841     		adcs	r0, r0, r3
 1888              		.loc 1 1030 1 view .LVU561
 1889 000e C0B2     		uxtb	r0, r0
 1890 0010 7047     		bx	lr
 1891              		.cfi_endproc
 1892              	.LFE76:
 1894 0012 C046     		.section	.text.LIN_ResponseTimeoutSet,"ax",%progbits
 1895              		.align	1
 1896              		.p2align 2,,3
 1897              		.global	LIN_ResponseTimeoutSet
 1898              		.syntax unified
 1899              		.code	16
 1900              		.thumb_func
 1902              	LIN_ResponseTimeoutSet:
 1903              	.LVL137:
 1904              	.LFB77:
1031:Library/src/lcm32f06x_usart.c **** 
1032:Library/src/lcm32f06x_usart.c **** /** 
1033:Library/src/lcm32f06x_usart.c ****   * @name   LIN_ResponseTimeoutSet
1034:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Set frame or response timeout threshold
1035:Library/src/lcm32f06x_usart.c ****   *         CN: 设置帧或应答超时阈值
1036:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
1037:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
1038:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
1039:Library/src/lcm32f06x_usart.c ****   * @param  LIN_ResponseTime
1040:Library/src/lcm32f06x_usart.c ****   *         EN: The frame or response timeout threshold to be set
1041:Library/src/lcm32f06x_usart.c ****   *         CN: 要设置的帧或应答超时阈值
1042:Library/src/lcm32f06x_usart.c ****   * @retval None
1043:Library/src/lcm32f06x_usart.c **** */
1044:Library/src/lcm32f06x_usart.c **** void LIN_ResponseTimeoutSet(USART_TypeDef *USARTx, uint32_t LIN_ResponseTime)
1045:Library/src/lcm32f06x_usart.c **** {
 1905              		.loc 1 1045 1 is_stmt 1 view -0
 1906              		.cfi_startproc
 1907              		@ args = 0, pretend = 0, frame = 0
 1908              		@ frame_needed = 0, uses_anonymous_args = 0
1046:Library/src/lcm32f06x_usart.c ****   if(LIN_ResponseTime != 0xFF)
 1909              		.loc 1 1046 3 view .LVU563
1045:Library/src/lcm32f06x_usart.c ****   if(LIN_ResponseTime != 0xFF)
 1910              		.loc 1 1045 1 is_stmt 0 view .LVU564
 1911 0000 10B5     		push	{r4, lr}
 1912              	.LCFI11:
 1913              		.cfi_def_cfa_offset 8
 1914              		.cfi_offset 4, -8
 1915              		.cfi_offset 14, -4
 1916              		.loc 1 1046 5 view .LVU565
 1917 0002 FF29     		cmp	r1, #255
 1918 0004 08D0     		beq	.L96
1047:Library/src/lcm32f06x_usart.c ****   {
1048:Library/src/lcm32f06x_usart.c ****     USARTx->DATCON_b.RESPONSE = LIN_ResponseTime;
 1919              		.loc 1 1048 5 is_stmt 1 view .LVU566
 1920              		.loc 1 1048 31 is_stmt 0 view .LVU567
 1921 0006 9822     		movs	r2, #152
 1922 0008 FF23     		movs	r3, #255
 1923 000a 845A     		ldrh	r4, [r0, r2]
ARM GAS  /tmp/ccvzS1Bu.s 			page 56


 1924 000c C9B2     		uxtb	r1, r1
 1925              	.LVL138:
 1926              		.loc 1 1048 31 view .LVU568
 1927 000e 0902     		lsls	r1, r1, #8
 1928 0010 2340     		ands	r3, r4
 1929 0012 0B43     		orrs	r3, r1
 1930 0014 8352     		strh	r3, [r0, r2]
 1931              	.L95:
1049:Library/src/lcm32f06x_usart.c ****   }
1050:Library/src/lcm32f06x_usart.c ****   else
1051:Library/src/lcm32f06x_usart.c ****   {
1052:Library/src/lcm32f06x_usart.c ****     USARTx->DATCON_b.RESPONSE = 0xFF;
1053:Library/src/lcm32f06x_usart.c ****   }
1054:Library/src/lcm32f06x_usart.c **** }
 1932              		.loc 1 1054 1 view .LVU569
 1933              		@ sp needed
 1934 0016 10BD     		pop	{r4, pc}
 1935              	.LVL139:
 1936              	.L96:
1052:Library/src/lcm32f06x_usart.c ****   }
 1937              		.loc 1 1052 5 is_stmt 1 view .LVU570
1052:Library/src/lcm32f06x_usart.c ****   }
 1938              		.loc 1 1052 31 is_stmt 0 view .LVU571
 1939 0018 9822     		movs	r2, #152
 1940 001a 024B     		ldr	r3, .L98
 1941 001c 815A     		ldrh	r1, [r0, r2]
 1942              	.LVL140:
1052:Library/src/lcm32f06x_usart.c ****   }
 1943              		.loc 1 1052 31 view .LVU572
 1944 001e 0B43     		orrs	r3, r1
 1945 0020 8352     		strh	r3, [r0, r2]
 1946              		.loc 1 1054 1 view .LVU573
 1947 0022 F8E7     		b	.L95
 1948              	.L99:
 1949              		.align	2
 1950              	.L98:
 1951 0024 00FFFFFF 		.word	-256
 1952              		.cfi_endproc
 1953              	.LFE77:
 1955              		.section	.text.LIN_SetBreakPulse,"ax",%progbits
 1956              		.align	1
 1957              		.p2align 2,,3
 1958              		.global	LIN_SetBreakPulse
 1959              		.syntax unified
 1960              		.code	16
 1961              		.thumb_func
 1963              	LIN_SetBreakPulse:
 1964              	.LVL141:
 1965              	.LFB78:
1055:Library/src/lcm32f06x_usart.c **** 
1056:Library/src/lcm32f06x_usart.c **** /**
1057:Library/src/lcm32f06x_usart.c ****   * @name   LIN_SetBreakPulse
1058:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Configure the number of break pulses generated or detected.
1059:Library/src/lcm32f06x_usart.c ****   *         CN: 配置生成或侦测 break 脉冲数。
1060:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
1061:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
1062:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
ARM GAS  /tmp/ccvzS1Bu.s 			page 57


1063:Library/src/lcm32f06x_usart.c ****   * @param  LIN_BreakTime: 
1064:Library/src/lcm32f06x_usart.c ****   *         EN: Specify break pulse value.
1065:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 break 脉冲值。
1066:Library/src/lcm32f06x_usart.c ****   * @retval None
1067:Library/src/lcm32f06x_usart.c ****   * @note   The LIN slave mode defines the break pulse detection threshold in this bit field.
1068:Library/src/lcm32f06x_usart.c ****   *         The LIN host mode defines the duration of the break pulse in this field.
1069:Library/src/lcm32f06x_usart.c ****   *         LIN host mode typical value is 13
1070:Library/src/lcm32f06x_usart.c ****   *         LIN slave mode typical value is 11
1071:Library/src/lcm32f06x_usart.c ****   */
1072:Library/src/lcm32f06x_usart.c **** void LIN_SetBreakPulse(USART_TypeDef *USARTx, uint32_t LIN_BreakTime)
1073:Library/src/lcm32f06x_usart.c **** {
 1966              		.loc 1 1073 1 is_stmt 1 view -0
 1967              		.cfi_startproc
 1968              		@ args = 0, pretend = 0, frame = 0
 1969              		@ frame_needed = 0, uses_anonymous_args = 0
 1970              		@ link register save eliminated.
1074:Library/src/lcm32f06x_usart.c ****   if(LIN_BreakTime != 0xD)
 1971              		.loc 1 1074 3 view .LVU575
1075:Library/src/lcm32f06x_usart.c ****   {
1076:Library/src/lcm32f06x_usart.c ****     USARTx->LINBTIMER = LIN_BreakTime;
 1972              		.loc 1 1076 23 is_stmt 0 view .LVU576
 1973 0000 A823     		movs	r3, #168
1077:Library/src/lcm32f06x_usart.c ****   }
1078:Library/src/lcm32f06x_usart.c ****   else /* default break vlaue is 0xD */
1079:Library/src/lcm32f06x_usart.c ****   {
1080:Library/src/lcm32f06x_usart.c ****     USARTx->LINBTIMER = 0xD;
1081:Library/src/lcm32f06x_usart.c ****   }
1082:Library/src/lcm32f06x_usart.c **** }
 1974              		.loc 1 1082 1 view .LVU577
 1975              		@ sp needed
1076:Library/src/lcm32f06x_usart.c ****   }
 1976              		.loc 1 1076 23 view .LVU578
 1977 0002 C150     		str	r1, [r0, r3]
 1978              		.loc 1 1082 1 view .LVU579
 1979 0004 7047     		bx	lr
 1980              		.cfi_endproc
 1981              	.LFE78:
 1983 0006 C046     		.section	.text.LIN_FrameHeadTimeOut,"ax",%progbits
 1984              		.align	1
 1985              		.p2align 2,,3
 1986              		.global	LIN_FrameHeadTimeOut
 1987              		.syntax unified
 1988              		.code	16
 1989              		.thumb_func
 1991              	LIN_FrameHeadTimeOut:
 1992              	.LVL142:
 1993              	.LFB79:
1083:Library/src/lcm32f06x_usart.c **** 
1084:Library/src/lcm32f06x_usart.c **** /**
1085:Library/src/lcm32f06x_usart.c ****   * @name   LIN_FrameHeadTimeOut
1086:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Set frame header timeout threshold.
1087:Library/src/lcm32f06x_usart.c ****   *         CN: 设置帧头超时阈值。
1088:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
1089:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
1090:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
1091:Library/src/lcm32f06x_usart.c ****   * @param  TimeOut: 
1092:Library/src/lcm32f06x_usart.c ****   *         EN: Specify frame header timeout value.
ARM GAS  /tmp/ccvzS1Bu.s 			page 58


1093:Library/src/lcm32f06x_usart.c ****   *         CN: 指定帧头超时值。
1094:Library/src/lcm32f06x_usart.c ****   * @retval None
1095:Library/src/lcm32f06x_usart.c ****   */
1096:Library/src/lcm32f06x_usart.c **** void LIN_FrameHeadTimeOut(USART_TypeDef *USARTx, uint32_t TimeOut)
1097:Library/src/lcm32f06x_usart.c **** {
 1994              		.loc 1 1097 1 is_stmt 1 view -0
 1995              		.cfi_startproc
 1996              		@ args = 0, pretend = 0, frame = 0
 1997              		@ frame_needed = 0, uses_anonymous_args = 0
 1998              		@ link register save eliminated.
1098:Library/src/lcm32f06x_usart.c ****   if(TimeOut != 0xFF)
 1999              		.loc 1 1098 3 view .LVU581
1099:Library/src/lcm32f06x_usart.c ****   {
1100:Library/src/lcm32f06x_usart.c ****     USARTx->LINHTIMER = TimeOut;
 2000              		.loc 1 1100 23 is_stmt 0 view .LVU582
 2001 0000 AC23     		movs	r3, #172
1101:Library/src/lcm32f06x_usart.c ****   }
1102:Library/src/lcm32f06x_usart.c ****   else /* default break vlaue is 0xFF */
1103:Library/src/lcm32f06x_usart.c ****   {
1104:Library/src/lcm32f06x_usart.c ****     USARTx->LINHTIMER = 0xFF;
1105:Library/src/lcm32f06x_usart.c ****   }
1106:Library/src/lcm32f06x_usart.c **** }
 2002              		.loc 1 1106 1 view .LVU583
 2003              		@ sp needed
1100:Library/src/lcm32f06x_usart.c ****   }
 2004              		.loc 1 1100 23 view .LVU584
 2005 0002 C150     		str	r1, [r0, r3]
 2006              		.loc 1 1106 1 view .LVU585
 2007 0004 7047     		bx	lr
 2008              		.cfi_endproc
 2009              	.LFE79:
 2011 0006 C046     		.section	.text.LIN_ITConfig,"ax",%progbits
 2012              		.align	1
 2013              		.p2align 2,,3
 2014              		.global	LIN_ITConfig
 2015              		.syntax unified
 2016              		.code	16
 2017              		.thumb_func
 2019              	LIN_ITConfig:
 2020              	.LVL143:
 2021              	.LFB80:
1107:Library/src/lcm32f06x_usart.c **** 
1108:Library/src/lcm32f06x_usart.c **** /**
1109:Library/src/lcm32f06x_usart.c ****   * @name   LIN_ITConfig
1110:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Configure USARTx peripheral LIN mode interrupt.
1111:Library/src/lcm32f06x_usart.c ****   *         CN: 配置 USARTx 外设 LIN 模式中断。
1112:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
1113:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
1114:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
1115:Library/src/lcm32f06x_usart.c ****   * @param  LIN_IT: 
1116:Library/src/lcm32f06x_usart.c ****   *         EN: Specify USARTx peripheral LIN mode interrupt.
1117:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 USARTx 外设 LIN 模式中断。
1118:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_SFI  : LIN synchronization segment error interrupt bit
1119:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LZI  : LIN Long zero interrupt bit
1120:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_REDI : LINRX rising edge detection interrupt status bit
1121:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_FEDI : LINRX falling edge detection interrupt status bit
1122:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LPI  : LIN identifier parity interrupt bit
ARM GAS  /tmp/ccvzS1Bu.s 			page 59


1123:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LCI  : LIN checksum error interrupt bit
1124:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LAI  : LIN automatic baud rate detection error interrupt bit
1125:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RTI  : LIN response timeout interrupt bit
1126:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_HTI  : LIN frame header timeout interrupt bit
1127:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_TRI  : LIN response sending interrupt bit
1128:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_THI  : LIN frame sending interrupt blocking bit
1129:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RRI  : LIN response receive interrupt bit
1130:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RHI  : LIN frame header receive interrupt bit
1131:Library/src/lcm32f06x_usart.c ****   * @param  NewState: 
1132:Library/src/lcm32f06x_usart.c ****   *         EN: New state of the USARTx peripheral.
1133:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx 外设的新状态
1134:Library/src/lcm32f06x_usart.c ****   *             @arg ENABLE
1135:Library/src/lcm32f06x_usart.c ****   *             @arg DISABLE
1136:Library/src/lcm32f06x_usart.c ****   * @retval None
1137:Library/src/lcm32f06x_usart.c ****   */
1138:Library/src/lcm32f06x_usart.c **** void LIN_ITConfig(USART_TypeDef *USARTx, uint32_t LIN_IT, FunctionalState NewState)
1139:Library/src/lcm32f06x_usart.c **** {
 2022              		.loc 1 1139 1 is_stmt 1 view -0
 2023              		.cfi_startproc
 2024              		@ args = 0, pretend = 0, frame = 0
 2025              		@ frame_needed = 0, uses_anonymous_args = 0
 2026              		@ link register save eliminated.
1140:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
1141:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_IT(LIN_IT));
 2027              		.loc 1 1141 3 view .LVU587
1142:Library/src/lcm32f06x_usart.c **** 
1143:Library/src/lcm32f06x_usart.c ****   if (NewState == ENABLE)
 2028              		.loc 1 1143 3 view .LVU588
 2029              		.loc 1 1143 6 is_stmt 0 view .LVU589
 2030 0000 012A     		cmp	r2, #1
 2031 0002 04D0     		beq	.L109
1144:Library/src/lcm32f06x_usart.c ****   {
1145:Library/src/lcm32f06x_usart.c ****     USARTx->USARTIMSC1 |= LIN_IT;
1146:Library/src/lcm32f06x_usart.c ****   }
1147:Library/src/lcm32f06x_usart.c ****   else
1148:Library/src/lcm32f06x_usart.c ****   {
1149:Library/src/lcm32f06x_usart.c ****     USARTx->USARTIMSC1 &= ~LIN_IT;
 2032              		.loc 1 1149 5 is_stmt 1 view .LVU590
 2033              		.loc 1 1149 11 is_stmt 0 view .LVU591
 2034 0004 B022     		movs	r2, #176
 2035              	.LVL144:
 2036              		.loc 1 1149 11 view .LVU592
 2037 0006 8358     		ldr	r3, [r0, r2]
 2038              		.loc 1 1149 24 view .LVU593
 2039 0008 8B43     		bics	r3, r1
 2040 000a 8350     		str	r3, [r0, r2]
 2041              	.L106:
1150:Library/src/lcm32f06x_usart.c ****   }
1151:Library/src/lcm32f06x_usart.c **** }
 2042              		.loc 1 1151 1 view .LVU594
 2043              		@ sp needed
 2044 000c 7047     		bx	lr
 2045              	.LVL145:
 2046              	.L109:
1145:Library/src/lcm32f06x_usart.c ****   }
 2047              		.loc 1 1145 5 is_stmt 1 view .LVU595
1145:Library/src/lcm32f06x_usart.c ****   }
ARM GAS  /tmp/ccvzS1Bu.s 			page 60


 2048              		.loc 1 1145 11 is_stmt 0 view .LVU596
 2049 000e AF32     		adds	r2, r2, #175
 2050              	.LVL146:
1145:Library/src/lcm32f06x_usart.c ****   }
 2051              		.loc 1 1145 11 view .LVU597
 2052 0010 8358     		ldr	r3, [r0, r2]
1145:Library/src/lcm32f06x_usart.c ****   }
 2053              		.loc 1 1145 24 view .LVU598
 2054 0012 0B43     		orrs	r3, r1
 2055 0014 8350     		str	r3, [r0, r2]
 2056 0016 F9E7     		b	.L106
 2057              		.cfi_endproc
 2058              	.LFE80:
 2060              		.section	.text.LIN_GetRawITStatus,"ax",%progbits
 2061              		.align	1
 2062              		.p2align 2,,3
 2063              		.global	LIN_GetRawITStatus
 2064              		.syntax unified
 2065              		.code	16
 2066              		.thumb_func
 2068              	LIN_GetRawITStatus:
 2069              	.LVL147:
 2070              	.LFB81:
1152:Library/src/lcm32f06x_usart.c **** 
1153:Library/src/lcm32f06x_usart.c **** /**
1154:Library/src/lcm32f06x_usart.c ****   * @name   LIN_GetRawITStatus
1155:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Read USARTx LIN mode raw interrupt status.
1156:Library/src/lcm32f06x_usart.c ****   *         CN: 读取 USARTx LIN 模式原始中断状态。
1157:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
1158:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
1159:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
1160:Library/src/lcm32f06x_usart.c ****   * @param  LIN_IT: 
1161:Library/src/lcm32f06x_usart.c ****   *         EN: Specify USARTx peripheral LIN mode interrupt.
1162:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 USARTx 外设 LIN 模式中断。
1163:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_SFI  : LIN synchronization segment error interrupt bit
1164:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LZI  : LIN Long zero interrupt bit
1165:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_REDI : LINRX rising edge detection interrupt status bit
1166:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_FEDI : LINRX falling edge detection interrupt status bit
1167:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LPI  : LIN identifier parity interrupt bit
1168:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LCI  : LIN checksum error interrupt bit
1169:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LAI  : LIN automatic baud rate detection error interrupt bit
1170:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RTI  : LIN response timeout interrupt bit
1171:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_HTI  : LIN frame header timeout interrupt bit
1172:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_TRI  : LIN response sending interrupt bit
1173:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_THI  : LIN frame sending interrupt blocking bit
1174:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RRI  : LIN response receive interrupt bit
1175:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RHI  : LIN frame header receive interrupt bit
1176:Library/src/lcm32f06x_usart.c ****   * @retval EN: USARTx LIN mode raw interrupt status
1177:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx LIN 模式原始中断状态
1178:Library/src/lcm32f06x_usart.c ****   */
1179:Library/src/lcm32f06x_usart.c **** ITStatus LIN_GetRawITStatus(USART_TypeDef *USARTx, uint32_t LIN_IT)
1180:Library/src/lcm32f06x_usart.c **** {
 2071              		.loc 1 1180 1 is_stmt 1 view -0
 2072              		.cfi_startproc
 2073              		@ args = 0, pretend = 0, frame = 0
 2074              		@ frame_needed = 0, uses_anonymous_args = 0
 2075              		@ link register save eliminated.
ARM GAS  /tmp/ccvzS1Bu.s 			page 61


1181:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
1182:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_IT(LIN_IT));
 2076              		.loc 1 1182 3 view .LVU600
1183:Library/src/lcm32f06x_usart.c **** 
1184:Library/src/lcm32f06x_usart.c ****   if (USARTx->USARTRIS1 & LIN_IT)
 2077              		.loc 1 1184 3 view .LVU601
 2078              		.loc 1 1184 13 is_stmt 0 view .LVU602
 2079 0000 B422     		movs	r2, #180
1185:Library/src/lcm32f06x_usart.c ****   {
1186:Library/src/lcm32f06x_usart.c ****     return SET;
1187:Library/src/lcm32f06x_usart.c ****   }
1188:Library/src/lcm32f06x_usart.c ****   else 
1189:Library/src/lcm32f06x_usart.c ****   {
1190:Library/src/lcm32f06x_usart.c ****     return RESET;
1191:Library/src/lcm32f06x_usart.c ****   }
1192:Library/src/lcm32f06x_usart.c **** }
 2080              		.loc 1 1192 1 view .LVU603
 2081              		@ sp needed
1184:Library/src/lcm32f06x_usart.c ****   {
 2082              		.loc 1 1184 13 view .LVU604
 2083 0002 8358     		ldr	r3, [r0, r2]
1184:Library/src/lcm32f06x_usart.c ****   {
 2084              		.loc 1 1184 25 view .LVU605
 2085 0004 1940     		ands	r1, r3
 2086              	.LVL148:
1184:Library/src/lcm32f06x_usart.c ****   {
 2087              		.loc 1 1184 25 view .LVU606
 2088 0006 0800     		movs	r0, r1
 2089              	.LVL149:
1184:Library/src/lcm32f06x_usart.c ****   {
 2090              		.loc 1 1184 6 view .LVU607
 2091 0008 431E     		subs	r3, r0, #1
 2092 000a 9841     		sbcs	r0, r0, r3
 2093              		.loc 1 1192 1 view .LVU608
 2094 000c C0B2     		uxtb	r0, r0
 2095 000e 7047     		bx	lr
 2096              		.cfi_endproc
 2097              	.LFE81:
 2099              		.section	.text.LIN_GetITStatus,"ax",%progbits
 2100              		.align	1
 2101              		.p2align 2,,3
 2102              		.global	LIN_GetITStatus
 2103              		.syntax unified
 2104              		.code	16
 2105              		.thumb_func
 2107              	LIN_GetITStatus:
 2108              	.LVL150:
 2109              	.LFB82:
1193:Library/src/lcm32f06x_usart.c **** 
1194:Library/src/lcm32f06x_usart.c **** /**
1195:Library/src/lcm32f06x_usart.c ****   * @name   LIN_GetITStatus 
1196:Library/src/lcm32f06x_usart.c ****   * @brief  EN: Read USARTx LIN mode masked interrupt status.
1197:Library/src/lcm32f06x_usart.c ****   *         CN: 读取 USARTx LIN 模式屏蔽中断状态。
1198:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
1199:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
1200:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
1201:Library/src/lcm32f06x_usart.c ****   * @param  USART_IT: 
ARM GAS  /tmp/ccvzS1Bu.s 			page 62


1202:Library/src/lcm32f06x_usart.c ****   *         EN: Specify USARTx peripheral interrupt.
1203:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 USARTx 外设中断。
1204:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_SFI  : LIN synchronization segment error interrupt bit
1205:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LZI  : LIN Long zero interrupt bit
1206:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_REDI : LINRX rising edge detection interrupt status bit
1207:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_FEDI : LINRX falling edge detection interrupt status bit
1208:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LPI  : LIN identifier parity interrupt bit
1209:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LCI  : LIN checksum error interrupt bit
1210:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LAI  : LIN automatic baud rate detection error interrupt bit
1211:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RTI  : LIN response timeout interrupt bit
1212:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_HTI  : LIN frame header timeout interrupt bit
1213:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_TRI  : LIN response sending interrupt bit
1214:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_THI  : LIN frame sending interrupt blocking bit
1215:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RRI  : LIN response receive interrupt bit
1216:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RHI  : LIN frame header receive interrupt bit
1217:Library/src/lcm32f06x_usart.c ****   * @retval EN: USARTx LIN mode masked interrupt status
1218:Library/src/lcm32f06x_usart.c ****   *         CN: USARTx LIN 模式屏蔽中断状态
1219:Library/src/lcm32f06x_usart.c ****   */
1220:Library/src/lcm32f06x_usart.c **** ITStatus LIN_GetITStatus(USART_TypeDef *USARTx, uint32_t LIN_IT)
1221:Library/src/lcm32f06x_usart.c **** {
 2110              		.loc 1 1221 1 is_stmt 1 view -0
 2111              		.cfi_startproc
 2112              		@ args = 0, pretend = 0, frame = 0
 2113              		@ frame_needed = 0, uses_anonymous_args = 0
 2114              		@ link register save eliminated.
1222:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
1223:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_IT(LIN_IT));
 2115              		.loc 1 1223 3 view .LVU610
1224:Library/src/lcm32f06x_usart.c **** 
1225:Library/src/lcm32f06x_usart.c ****   if (USARTx->USARTMIS1 & LIN_IT)
 2116              		.loc 1 1225 3 view .LVU611
 2117              		.loc 1 1225 13 is_stmt 0 view .LVU612
 2118 0000 B822     		movs	r2, #184
1226:Library/src/lcm32f06x_usart.c ****   {
1227:Library/src/lcm32f06x_usart.c ****     return SET;
1228:Library/src/lcm32f06x_usart.c ****   }
1229:Library/src/lcm32f06x_usart.c ****   else
1230:Library/src/lcm32f06x_usart.c ****   {
1231:Library/src/lcm32f06x_usart.c ****     return RESET;
1232:Library/src/lcm32f06x_usart.c ****   }
1233:Library/src/lcm32f06x_usart.c **** }
 2119              		.loc 1 1233 1 view .LVU613
 2120              		@ sp needed
1225:Library/src/lcm32f06x_usart.c ****   {
 2121              		.loc 1 1225 13 view .LVU614
 2122 0002 8358     		ldr	r3, [r0, r2]
1225:Library/src/lcm32f06x_usart.c ****   {
 2123              		.loc 1 1225 25 view .LVU615
 2124 0004 1940     		ands	r1, r3
 2125              	.LVL151:
1225:Library/src/lcm32f06x_usart.c ****   {
 2126              		.loc 1 1225 25 view .LVU616
 2127 0006 0800     		movs	r0, r1
 2128              	.LVL152:
1225:Library/src/lcm32f06x_usart.c ****   {
 2129              		.loc 1 1225 6 view .LVU617
 2130 0008 431E     		subs	r3, r0, #1
ARM GAS  /tmp/ccvzS1Bu.s 			page 63


 2131 000a 9841     		sbcs	r0, r0, r3
 2132              		.loc 1 1233 1 view .LVU618
 2133 000c C0B2     		uxtb	r0, r0
 2134 000e 7047     		bx	lr
 2135              		.cfi_endproc
 2136              	.LFE82:
 2138              		.section	.text.LIN_ClearITPendingBit,"ax",%progbits
 2139              		.align	1
 2140              		.p2align 2,,3
 2141              		.global	LIN_ClearITPendingBit
 2142              		.syntax unified
 2143              		.code	16
 2144              		.thumb_func
 2146              	LIN_ClearITPendingBit:
 2147              	.LVL153:
 2148              	.LFB83:
1234:Library/src/lcm32f06x_usart.c **** 
1235:Library/src/lcm32f06x_usart.c **** /**
1236:Library/src/lcm32f06x_usart.c ****   * @name   LIN_ClearITPendingBit
1237:Library/src/lcm32f06x_usart.c ****   * @brief  EN: CLear USARTx LIN mode interrupt bit.
1238:Library/src/lcm32f06x_usart.c ****   *         CN: 清除 USARTx LIN 模式中断位。
1239:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
1240:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
1241:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
1242:Library/src/lcm32f06x_usart.c ****   * @param  LIN_IT: 
1243:Library/src/lcm32f06x_usart.c ****   *         EN: Specify USARTx peripheral iLINnterrupt.
1244:Library/src/lcm32f06x_usart.c ****   *         CN: 指定 USARTx LIN 模式外设中断。
1245:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_SFI  : LIN synchronization segment error interrupt bit
1246:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LZI  : LIN Long zero interrupt bit
1247:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_REDI : LINRX rising edge detection interrupt status bit
1248:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_FEDI : LINRX falling edge detection interrupt status bit
1249:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LPI  : LIN identifier parity interrupt bit
1250:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LCI  : LIN checksum error interrupt bit
1251:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_LAI  : LIN automatic baud rate detection error interrupt bit
1252:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RTI  : LIN response timeout interrupt bit
1253:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_HTI  : LIN frame header timeout interrupt bit
1254:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_TRI  : LIN response sending interrupt bit
1255:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_THI  : LIN frame sending interrupt blocking bit
1256:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RRI  : LIN response receive interrupt bit
1257:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_IT_RHI  : LIN frame header receive interrupt bit
1258:Library/src/lcm32f06x_usart.c ****   * @retval None
1259:Library/src/lcm32f06x_usart.c ****   */
1260:Library/src/lcm32f06x_usart.c **** void LIN_ClearITPendingBit(USART_TypeDef *USARTx, uint32_t LIN_IT)
1261:Library/src/lcm32f06x_usart.c **** {
 2149              		.loc 1 1261 1 is_stmt 1 view -0
 2150              		.cfi_startproc
 2151              		@ args = 0, pretend = 0, frame = 0
 2152              		@ frame_needed = 0, uses_anonymous_args = 0
 2153              		@ link register save eliminated.
1262:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
1263:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_IT(LIN_IT));
 2154              		.loc 1 1263 3 view .LVU620
1264:Library/src/lcm32f06x_usart.c **** 
1265:Library/src/lcm32f06x_usart.c ****   USARTx->USARTICR1 |= LIN_IT;
 2155              		.loc 1 1265 3 view .LVU621
 2156              		.loc 1 1265 9 is_stmt 0 view .LVU622
 2157 0000 BC22     		movs	r2, #188
ARM GAS  /tmp/ccvzS1Bu.s 			page 64


1266:Library/src/lcm32f06x_usart.c **** }
 2158              		.loc 1 1266 1 view .LVU623
 2159              		@ sp needed
1265:Library/src/lcm32f06x_usart.c **** }
 2160              		.loc 1 1265 9 view .LVU624
 2161 0002 8358     		ldr	r3, [r0, r2]
1265:Library/src/lcm32f06x_usart.c **** }
 2162              		.loc 1 1265 21 view .LVU625
 2163 0004 0B43     		orrs	r3, r1
 2164 0006 8350     		str	r3, [r0, r2]
 2165              		.loc 1 1266 1 view .LVU626
 2166 0008 7047     		bx	lr
 2167              		.cfi_endproc
 2168              	.LFE83:
 2170 000a C046     		.section	.text.LIN_Request,"ax",%progbits
 2171              		.align	1
 2172              		.p2align 2,,3
 2173              		.global	LIN_Request
 2174              		.syntax unified
 2175              		.code	16
 2176              		.thumb_func
 2178              	LIN_Request:
 2179              	.LVL154:
 2180              	.LFB84:
1267:Library/src/lcm32f06x_usart.c **** 
1268:Library/src/lcm32f06x_usart.c **** /** 
1269:Library/src/lcm32f06x_usart.c ****   * @name   LIN_Request
1270:Library/src/lcm32f06x_usart.c ****   * @brief  EN: LIN sends and responds to requests
1271:Library/src/lcm32f06x_usart.c ****   *         CN: LIN 发送和应答请求
1272:Library/src/lcm32f06x_usart.c ****   * @param  USARTx: 
1273:Library/src/lcm32f06x_usart.c ****   *         EN: where x can be from 0 or 1 to select the USART peripheral.
1274:Library/src/lcm32f06x_usart.c ****   *         CN: 其中 x 可以是 0 或 1 以选择 USART 外设。
1275:Library/src/lcm32f06x_usart.c ****   * @param  Request
1276:Library/src/lcm32f06x_usart.c ****   *         EN: Configuration request
1277:Library/src/lcm32f06x_usart.c ****   *         CN: 配置请求
1278:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Master_Only_Header
1279:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Master_Send_Response
1280:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Master_Recv_Response
1281:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Slave_Recv_Data
1282:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Slave_Send_Data
1283:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Slave_None_Response
1284:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Stop_Response
1285:Library/src/lcm32f06x_usart.c ****   *             @arg LIN_Wake_Up
1286:Library/src/lcm32f06x_usart.c ****   * @retval None
1287:Library/src/lcm32f06x_usart.c **** */
1288:Library/src/lcm32f06x_usart.c **** void LIN_Request(USART_TypeDef *USARTx, uint32_t Request)
1289:Library/src/lcm32f06x_usart.c **** {
 2181              		.loc 1 1289 1 is_stmt 1 view -0
 2182              		.cfi_startproc
 2183              		@ args = 0, pretend = 0, frame = 0
 2184              		@ frame_needed = 0, uses_anonymous_args = 0
1290:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
1291:Library/src/lcm32f06x_usart.c ****   assert_param(IS_LIN_REQUEST(Request));
 2185              		.loc 1 1291 3 view .LVU628
1292:Library/src/lcm32f06x_usart.c ****   
1293:Library/src/lcm32f06x_usart.c **** 
1294:Library/src/lcm32f06x_usart.c ****   if ((Request == (LIN_Master_Only_Header)) || (Request == (LIN_Slave_None_Response)))
ARM GAS  /tmp/ccvzS1Bu.s 			page 65


 2186              		.loc 1 1294 3 view .LVU629
 2187              		.loc 1 1294 45 is_stmt 0 view .LVU630
 2188 0000 8023     		movs	r3, #128
 2189 0002 1B06     		lsls	r3, r3, #24
 2190 0004 CB18     		adds	r3, r1, r3
1289:Library/src/lcm32f06x_usart.c ****   /* Check the parameters */
 2191              		.loc 1 1289 1 view .LVU631
 2192 0006 10B5     		push	{r4, lr}
 2193              	.LCFI12:
 2194              		.cfi_def_cfa_offset 8
 2195              		.cfi_offset 4, -8
 2196              		.cfi_offset 14, -4
 2197              		.loc 1 1294 6 view .LVU632
 2198 0008 012B     		cmp	r3, #1
 2199 000a 07D9     		bls	.L116
1295:Library/src/lcm32f06x_usart.c ****   {
1296:Library/src/lcm32f06x_usart.c ****     USARTx->DATCON_b.HO |= 1;
1297:Library/src/lcm32f06x_usart.c ****   }
1298:Library/src/lcm32f06x_usart.c ****   else
1299:Library/src/lcm32f06x_usart.c ****   {
1300:Library/src/lcm32f06x_usart.c ****     USARTx->DATCON_b.HO &= 0;
 2200              		.loc 1 1300 5 is_stmt 1 view .LVU633
 2201              		.loc 1 1300 21 is_stmt 0 view .LVU634
 2202 000c 9823     		movs	r3, #152
 2203              		.loc 1 1300 25 view .LVU635
 2204 000e 0824     		movs	r4, #8
 2205              		.loc 1 1300 21 view .LVU636
 2206 0010 C258     		ldr	r2, [r0, r3]
 2207              		.loc 1 1300 25 view .LVU637
 2208 0012 C25A     		ldrh	r2, [r0, r3]
 2209 0014 A243     		bics	r2, r4
 2210 0016 C252     		strh	r2, [r0, r3]
 2211              	.L115:
1301:Library/src/lcm32f06x_usart.c ****   }
1302:Library/src/lcm32f06x_usart.c **** 
1303:Library/src/lcm32f06x_usart.c ****   USARTx->LINCON2 = Request;
 2212              		.loc 1 1303 3 is_stmt 1 view .LVU638
 2213              		.loc 1 1303 19 is_stmt 0 view .LVU639
 2214 0018 8167     		str	r1, [r0, #120]
1304:Library/src/lcm32f06x_usart.c **** }
 2215              		.loc 1 1304 1 view .LVU640
 2216              		@ sp needed
 2217 001a 10BD     		pop	{r4, pc}
 2218              	.L116:
1296:Library/src/lcm32f06x_usart.c ****   }
 2219              		.loc 1 1296 5 is_stmt 1 view .LVU641
1296:Library/src/lcm32f06x_usart.c ****   }
 2220              		.loc 1 1296 21 is_stmt 0 view .LVU642
 2221 001c 9823     		movs	r3, #152
1296:Library/src/lcm32f06x_usart.c ****   }
 2222              		.loc 1 1296 25 view .LVU643
 2223 001e 0824     		movs	r4, #8
1296:Library/src/lcm32f06x_usart.c ****   }
 2224              		.loc 1 1296 21 view .LVU644
 2225 0020 C258     		ldr	r2, [r0, r3]
1296:Library/src/lcm32f06x_usart.c ****   }
 2226              		.loc 1 1296 25 view .LVU645
ARM GAS  /tmp/ccvzS1Bu.s 			page 66


 2227 0022 C25A     		ldrh	r2, [r0, r3]
 2228 0024 2243     		orrs	r2, r4
 2229 0026 C252     		strh	r2, [r0, r3]
 2230 0028 F6E7     		b	.L115
 2231              		.cfi_endproc
 2232              	.LFE84:
 2234 002a C046     		.text
 2235              	.Letext0:
 2236              		.file 2 "Library/inc/lcm32f06x.h"
 2237              		.file 3 "/home/ha/toolchain/arm-gnu-toolchain-14.3/arm-none-eabi/include/machine/_default_types.h"
 2238              		.file 4 "/home/ha/toolchain/arm-gnu-toolchain-14.3/arm-none-eabi/include/sys/_stdint.h"
 2239              		.file 5 "Library/inc/lcm32f06x_rcc.h"
 2240              		.file 6 "Library/inc/lcm32f06x_usart.h"
ARM GAS  /tmp/ccvzS1Bu.s 			page 67


DEFINED SYMBOLS
                            *ABS*:00000000 lcm32f06x_usart.c
     /tmp/ccvzS1Bu.s:17     .text.USART_DeInit:00000000 $t
     /tmp/ccvzS1Bu.s:24     .text.USART_DeInit:00000000 USART_DeInit
     /tmp/ccvzS1Bu.s:91     .text.USART_DeInit:0000003c $d
     /tmp/ccvzS1Bu.s:97     .text.USART_BaudRateConfig:00000000 $t
     /tmp/ccvzS1Bu.s:104    .text.USART_BaudRateConfig:00000000 USART_BaudRateConfig
     /tmp/ccvzS1Bu.s:213    .text.USART_BaudRateConfig:0000004c $d
     /tmp/ccvzS1Bu.s:219    .text.USART_Init:00000000 $t
     /tmp/ccvzS1Bu.s:226    .text.USART_Init:00000000 USART_Init
     /tmp/ccvzS1Bu.s:510    .text.USART_Init:000000c4 $d
     /tmp/ccvzS1Bu.s:521    .text.USART_StructInit:00000000 $t
     /tmp/ccvzS1Bu.s:528    .text.USART_StructInit:00000000 USART_StructInit
     /tmp/ccvzS1Bu.s:573    .text.USART_Cmd:00000000 $t
     /tmp/ccvzS1Bu.s:580    .text.USART_Cmd:00000000 USART_Cmd
     /tmp/ccvzS1Bu.s:615    .text.USART_DirectionModeCmd:00000000 $t
     /tmp/ccvzS1Bu.s:622    .text.USART_DirectionModeCmd:00000000 USART_DirectionModeCmd
     /tmp/ccvzS1Bu.s:657    .text.USART_SendData:00000000 $t
     /tmp/ccvzS1Bu.s:664    .text.USART_SendData:00000000 USART_SendData
     /tmp/ccvzS1Bu.s:682    .text.USART_ReceiveData:00000000 $t
     /tmp/ccvzS1Bu.s:689    .text.USART_ReceiveData:00000000 USART_ReceiveData
     /tmp/ccvzS1Bu.s:716    .text.USART_SendBreak:00000000 $t
     /tmp/ccvzS1Bu.s:723    .text.USART_SendBreak:00000000 USART_SendBreak
     /tmp/ccvzS1Bu.s:747    .text.USART_HalfDuplesCmd:00000000 $t
     /tmp/ccvzS1Bu.s:754    .text.USART_HalfDuplesCmd:00000000 USART_HalfDuplesCmd
     /tmp/ccvzS1Bu.s:806    .text.USART_SynchronousModeCmd:00000000 $t
     /tmp/ccvzS1Bu.s:813    .text.USART_SynchronousModeCmd:00000000 USART_SynchronousModeCmd
     /tmp/ccvzS1Bu.s:873    .text.USART_LPUSARTCmd:00000000 $t
     /tmp/ccvzS1Bu.s:880    .text.USART_LPUSARTCmd:00000000 USART_LPUSARTCmd
     /tmp/ccvzS1Bu.s:914    .text.USART_LowPowerWakeConfig:00000000 $t
     /tmp/ccvzS1Bu.s:921    .text.USART_LowPowerWakeConfig:00000000 USART_LowPowerWakeConfig
     /tmp/ccvzS1Bu.s:944    .text.USART_FIFOLevelConfig:00000000 $t
     /tmp/ccvzS1Bu.s:951    .text.USART_FIFOLevelConfig:00000000 USART_FIFOLevelConfig
     /tmp/ccvzS1Bu.s:991    .text.USART_DMACmd:00000000 $t
     /tmp/ccvzS1Bu.s:998    .text.USART_DMACmd:00000000 USART_DMACmd
     /tmp/ccvzS1Bu.s:1056   .text.USART_ITConfig:00000000 $t
     /tmp/ccvzS1Bu.s:1063   .text.USART_ITConfig:00000000 USART_ITConfig
     /tmp/ccvzS1Bu.s:1096   .text.USART_GetFlagStatus:00000000 $t
     /tmp/ccvzS1Bu.s:1103   .text.USART_GetFlagStatus:00000000 USART_GetFlagStatus
     /tmp/ccvzS1Bu.s:1133   .text.USART_GetITStatus:00000000 $t
     /tmp/ccvzS1Bu.s:1140   .text.USART_GetITStatus:00000000 USART_GetITStatus
     /tmp/ccvzS1Bu.s:1170   .text.USART_GetRawITStatus:00000000 $t
     /tmp/ccvzS1Bu.s:1177   .text.USART_GetRawITStatus:00000000 USART_GetRawITStatus
     /tmp/ccvzS1Bu.s:1207   .text.USART_ClearITPendingBit:00000000 $t
     /tmp/ccvzS1Bu.s:1214   .text.USART_ClearITPendingBit:00000000 USART_ClearITPendingBit
     /tmp/ccvzS1Bu.s:1237   .text.USART_FIFOEnable:00000000 $t
     /tmp/ccvzS1Bu.s:1244   .text.USART_FIFOEnable:00000000 USART_FIFOEnable
     /tmp/ccvzS1Bu.s:1284   .text.USART_LIN_Init:00000000 $t
     /tmp/ccvzS1Bu.s:1291   .text.USART_LIN_Init:00000000 USART_LIN_Init
     /tmp/ccvzS1Bu.s:1387   .text.USART_LIN_Init:00000038 $d
     /tmp/ccvzS1Bu.s:1392   .text.LIN_StructInit:00000000 $t
     /tmp/ccvzS1Bu.s:1399   .text.LIN_StructInit:00000000 LIN_StructInit
     /tmp/ccvzS1Bu.s:1450   .text.USART_LINCmd:00000000 $t
     /tmp/ccvzS1Bu.s:1457   .text.USART_LINCmd:00000000 USART_LINCmd
     /tmp/ccvzS1Bu.s:1526   .text.BandrateClockMeasure:00000000 $t
     /tmp/ccvzS1Bu.s:1533   .text.BandrateClockMeasure:00000000 BandrateClockMeasure
     /tmp/ccvzS1Bu.s:1573   .text.LIN_CurrentStatus:00000000 $t
ARM GAS  /tmp/ccvzS1Bu.s 			page 68


     /tmp/ccvzS1Bu.s:1580   .text.LIN_CurrentStatus:00000000 LIN_CurrentStatus
     /tmp/ccvzS1Bu.s:1627   .text.LIN_CurrentStatus:00000024 $d
     /tmp/ccvzS1Bu.s:1632   .text.LIN_Bus_LongZero_Check:00000000 $t
     /tmp/ccvzS1Bu.s:1639   .text.LIN_Bus_LongZero_Check:00000000 LIN_Bus_LongZero_Check
     /tmp/ccvzS1Bu.s:1684   .text.LIN_Baudrate_Read:00000000 $t
     /tmp/ccvzS1Bu.s:1691   .text.LIN_Baudrate_Read:00000000 LIN_Baudrate_Read
     /tmp/ccvzS1Bu.s:1715   .text.LIN_AutoBaudrateSync:00000000 $t
     /tmp/ccvzS1Bu.s:1722   .text.LIN_AutoBaudrateSync:00000000 LIN_AutoBaudrateSync
     /tmp/ccvzS1Bu.s:1766   .text.LIN_HardwareCheckSum:00000000 $t
     /tmp/ccvzS1Bu.s:1773   .text.LIN_HardwareCheckSum:00000000 LIN_HardwareCheckSum
     /tmp/ccvzS1Bu.s:1817   .text.LIN_GetModeStatus:00000000 $t
     /tmp/ccvzS1Bu.s:1824   .text.LIN_GetModeStatus:00000000 LIN_GetModeStatus
     /tmp/ccvzS1Bu.s:1856   .text.LIN_GetPinLeaveStatus:00000000 $t
     /tmp/ccvzS1Bu.s:1863   .text.LIN_GetPinLeaveStatus:00000000 LIN_GetPinLeaveStatus
     /tmp/ccvzS1Bu.s:1895   .text.LIN_ResponseTimeoutSet:00000000 $t
     /tmp/ccvzS1Bu.s:1902   .text.LIN_ResponseTimeoutSet:00000000 LIN_ResponseTimeoutSet
     /tmp/ccvzS1Bu.s:1951   .text.LIN_ResponseTimeoutSet:00000024 $d
     /tmp/ccvzS1Bu.s:1956   .text.LIN_SetBreakPulse:00000000 $t
     /tmp/ccvzS1Bu.s:1963   .text.LIN_SetBreakPulse:00000000 LIN_SetBreakPulse
     /tmp/ccvzS1Bu.s:1984   .text.LIN_FrameHeadTimeOut:00000000 $t
     /tmp/ccvzS1Bu.s:1991   .text.LIN_FrameHeadTimeOut:00000000 LIN_FrameHeadTimeOut
     /tmp/ccvzS1Bu.s:2012   .text.LIN_ITConfig:00000000 $t
     /tmp/ccvzS1Bu.s:2019   .text.LIN_ITConfig:00000000 LIN_ITConfig
     /tmp/ccvzS1Bu.s:2061   .text.LIN_GetRawITStatus:00000000 $t
     /tmp/ccvzS1Bu.s:2068   .text.LIN_GetRawITStatus:00000000 LIN_GetRawITStatus
     /tmp/ccvzS1Bu.s:2100   .text.LIN_GetITStatus:00000000 $t
     /tmp/ccvzS1Bu.s:2107   .text.LIN_GetITStatus:00000000 LIN_GetITStatus
     /tmp/ccvzS1Bu.s:2139   .text.LIN_ClearITPendingBit:00000000 $t
     /tmp/ccvzS1Bu.s:2146   .text.LIN_ClearITPendingBit:00000000 LIN_ClearITPendingBit
     /tmp/ccvzS1Bu.s:2171   .text.LIN_Request:00000000 $t
     /tmp/ccvzS1Bu.s:2178   .text.LIN_Request:00000000 LIN_Request

UNDEFINED SYMBOLS
RCC_APB0PeriphResetCmd
RCC_GetClockFreq
__aeabi_uidiv
