   1              		.cpu cortex-m4
   2              		.eabi_attribute 27, 1
   3              		.eabi_attribute 28, 1
   4              		.eabi_attribute 20, 1
   5              		.eabi_attribute 21, 1
   6              		.eabi_attribute 23, 3
   7              		.eabi_attribute 24, 1
   8              		.eabi_attribute 25, 1
   9              		.eabi_attribute 26, 1
  10              		.eabi_attribute 30, 6
  11              		.eabi_attribute 34, 1
  12              		.eabi_attribute 18, 4
  13              		.file	"isr.c"
  14              		.text
  15              	.Ltext0:
  16              		.cfi_sections	.debug_frame
  17              		.comm	component_fun,4,4
  18              		.comm	g_LEDBuffer,4,4
  19              		.comm	g_LCDBuffer,32,4
  20              		.align	1
  21              		.global	EUSCIA3_IRQHandler
  22              		.syntax unified
  23              		.thumb
  24              		.thumb_func
  25              		.fpu fpv4-sp-d16
  27              	EUSCIA3_IRQHandler:
  28              	.LFB123:
  29              		.file 1 "srcc/isr.c"
   1:srcc/isr.c    **** //=====================================================================
   2:srcc/isr.c    **** //文件名称：isr.c（中断处理程序源文件）
   3:srcc/isr.c    **** //框架提供：SD-ARM（sumcu.suda.edu.cn）
   4:srcc/isr.c    **** //版本更新：20170801-20191020
   5:srcc/isr.c    **** //功能描述：提供中断处理程序编程框架
   6:srcc/isr.c    **** //移植规则：【固定】
   7:srcc/isr.c    **** //=====================================================================
   8:srcc/isr.c    **** #include "includes.h"
   9:srcc/isr.c    **** //isr.c内部函数声明（函数实现在本文件后面）
  10:srcc/isr.c    **** //void SecAdd1(volatile uint8_t *p);
  11:srcc/isr.c    **** void User_SysFun(uint8_t ch);
  12:srcc/isr.c    **** //======================================================================
  13:srcc/isr.c    **** //程序名称：UART_User_Handler
  14:srcc/isr.c    **** //触发条件：UART_User串口收到一个字节触发
  15:srcc/isr.c    **** //备    注：进入本程序后，可使用uart_get_re_int函数可再进行中断标志判断
  16:srcc/isr.c    **** //          （1-有UART接收中断，0-没有UART接收中断）
  17:srcc/isr.c    **** //======================================================================
  18:srcc/isr.c    **** void UART_User_Handler(void)
  19:srcc/isr.c    **** {
  30              		.loc 1 19 0
  31              		.cfi_startproc
  32              		@ args = 0, pretend = 0, frame = 8
  33              		@ frame_needed = 1, uses_anonymous_args = 0
  34 0000 80B5     		push	{r7, lr}
  35              		.cfi_def_cfa_offset 8
  36              		.cfi_offset 7, -8
  37              		.cfi_offset 14, -4
  38 0002 82B0     		sub	sp, sp, #8
  39              		.cfi_def_cfa_offset 16
  40 0004 00AF     		add	r7, sp, #0
  41              		.cfi_def_cfa_register 7
  42              	.LBB6:
  43              	.LBB7:
  44              		.file 2 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch08-LCD\\L
   1:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** /**************************************************************************//**
   2:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****  * @file     cmsis_gcc.h
   3:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****  * @brief    CMSIS Cortex-M Core Function/Instruction Header File
   4:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****  * @version  V4.30
   5:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****  * @date     20. October 2015
   6:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****  ******************************************************************************/
   7:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** /* Copyright (c) 2009 - 2015 ARM LIMITED
   8:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** 
   9:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    All rights reserved.
  10:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    Redistribution and use in source and binary forms, with or without
  11:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    modification, are permitted provided that the following conditions are met:
  12:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    - Redistributions of source code must retain the above copyright
  13:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****      notice, this list of conditions and the following disclaimer.
  14:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    - Redistributions in binary form must reproduce the above copyright
  15:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****      notice, this list of conditions and the following disclaimer in the
  16:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****      documentation and/or other materials provided with the distribution.
  17:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    - Neither the name of ARM nor the names of its contributors may be used
  18:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****      to endorse or promote products derived from this software without
  19:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****      specific prior written permission.
  20:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    *
  21:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  22:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
  25:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  26:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  27:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  28:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  29:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  30:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  31:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    POSSIBILITY OF SUCH DAMAGE.
  32:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****    ---------------------------------------------------------------------------*/
  33:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** 
  34:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** 
  35:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
  36:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** #define __CMSIS_GCC_H
  37:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** 
  38:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** /* ignore some GCC warnings */
  39:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** #if defined ( __GNUC__ )
  40:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** #pragma GCC diagnostic push
  41:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
  42:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
  43:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
  44:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** #endif
  45:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** 
  46:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** 
  47:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** /* ###########################  Core Function Access  ########################### */
  48:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** /** \ingroup  CMSIS_Core_FunctionInterface
  49:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****     \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
  50:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****   @{
  51:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****  */
  52:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** 
  53:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** /**
  54:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****   \brief   Enable IRQ Interrupts
  55:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****   \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
  56:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****            Can only be executed in Privileged modes.
  57:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****  */
  58:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void)
  59:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** {
  60:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****   __ASM volatile ("cpsie i" : : : "memory");
  61:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** }
  62:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** 
  63:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** 
  64:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** /**
  65:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****   \brief   Disable IRQ Interrupts
  66:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****   \details Disables IRQ interrupts by setting the I-bit in the CPSR.
  67:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****   Can only be executed in Privileged modes.
  68:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****  */
  69:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void)
  70:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** {
  71:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h ****   __ASM volatile ("cpsid i" : : : "memory");
  45              		.loc 2 71 0
  46              		.syntax unified
  47              	@ 71 "C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-2
  48 0006 72B6     		cpsid i
  49              	@ 0 "" 2
  50              		.thumb
  51              		.syntax unified
  52              	.LBE7:
  53              	.LBE6:
  20:srcc/isr.c    **** 	 //（1）变量声明
  21:srcc/isr.c    ****     uint8_t flag,ch;
  22:srcc/isr.c    ****     DISABLE_INTERRUPTS;      //关总中断
  23:srcc/isr.c    ****     //（2）未触发串口接收中断，退出
  24:srcc/isr.c    ****     if(!uart_get_re_int(UART_User)) goto UART_User_Handler_EXIT;
  54              		.loc 1 24 0
  55 0008 0320     		movs	r0, #3
  56 000a FFF7FEFF 		bl	uart_get_re_int
  57 000e 0346     		mov	r3, r0
  58 0010 002B     		cmp	r3, #0
  59 0012 14D0     		beq	.L5
  25:srcc/isr.c    ****     //（3）收到一个字节，读出该字节数据
  26:srcc/isr.c    ****     ch = uart_re1(UART_User,&flag);        //调用接收一个字节的函数
  60              		.loc 1 26 0
  61 0014 BB1D     		adds	r3, r7, #6
  62 0016 1946     		mov	r1, r3
  63 0018 0320     		movs	r0, #3
  64 001a FFF7FEFF 		bl	uart_re1
  65 001e 0346     		mov	r3, r0
  66 0020 FB71     		strb	r3, [r7, #7]
  27:srcc/isr.c    ****     if(!flag) goto UART_User_Handler_EXIT; //实际未收到数据，退出
  67              		.loc 1 27 0
  68 0022 BB79     		ldrb	r3, [r7, #6]	@ zero_extendqisi2
  69 0024 002B     		cmp	r3, #0
  70 0026 0CD0     		beq	.L6
  28:srcc/isr.c    ****   //（4）以下代码根据是否使用模板提供的User串口通信帧结构，及是否利用User串口
  29:srcc/isr.c    ****     //     进行带有设备序列号的进行程序更新而选择
  30:srcc/isr.c    ****     //（4.1）【自行组帧使用（开始)】
  31:srcc/isr.c    ****         uart_send1(UART_User,ch);     //例如，收到一个字节回发一个字节
  71              		.loc 1 31 0
  72 0028 FB79     		ldrb	r3, [r7, #7]	@ zero_extendqisi2
  73 002a 1946     		mov	r1, r3
  74 002c 0320     		movs	r0, #3
  75 002e FFF7FEFF 		bl	uart_send1
  32:srcc/isr.c    ****         uart_send1(UART_UPDATE,ch);     //例如，收到一个字节回发一个字节
  76              		.loc 1 32 0
  77 0032 FB79     		ldrb	r3, [r7, #7]	@ zero_extendqisi2
  78 0034 1946     		mov	r1, r3
  79 0036 0020     		movs	r0, #0
  80 0038 FFF7FEFF 		bl	uart_send1
  81 003c 02E0     		b	.L3
  82              	.L5:
  24:srcc/isr.c    ****     //（3）收到一个字节，读出该字节数据
  83              		.loc 1 24 0
  84 003e 00BF     		nop
  85 0040 00E0     		b	.L3
  86              	.L6:
  27:srcc/isr.c    ****   //（4）以下代码根据是否使用模板提供的User串口通信帧结构，及是否利用User串口
  87              		.loc 1 27 0
  88 0042 00BF     		nop
  89              	.L3:
  90              	.LBB8:
  91              	.LBB9:
  60:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-20210406\02_CPU\cmsis_gcc.h **** }
  92              		.loc 2 60 0
  93              		.syntax unified
  94              	@ 60 "C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch08-LCD\LCD(MSP432)-2
  95 0044 62B6     		cpsie i
  96              	@ 0 "" 2
  97              		.thumb
  98              		.syntax unified
  99              	.LBE9:
 100              	.LBE8:
  33:srcc/isr.c    ****        //    【自行组帧使用（结束)】
  34:srcc/isr.c    ****     //（4.2）【使用模板提供的User串口通信帧结构（开始)】
  35:srcc/isr.c    ****     /*
  36:srcc/isr.c    ****        User_SysFun(ch);          //利用User串口进行程序更新
  37:srcc/isr.c    ****        if (gcRecvLen == 0) goto UART_User_Handler_EXIT; 
  38:srcc/isr.c    ****        //至此，不仅收到完整帧，且序号比较也一致，可以根据命令字节gcRecvBuf[16]进行编程
  39:srcc/isr.c    ****        switch(gcRecvBuf[16])  //帧标识
  40:srcc/isr.c    ****        {
  41:srcc/isr.c    ****            case 1:  //0之外的数据，自身命令
  42:srcc/isr.c    ****            break;
  43:srcc/isr.c    ****            default:
  44:srcc/isr.c    ****            break;
  45:srcc/isr.c    ****         }
  46:srcc/isr.c    ****         gcRecvLen = 0;   //帧已经使用完毕，下次若收到一个字节，可以继续组帧
  47:srcc/isr.c    ****         //【使用模板提供的User串口通信帧结构（结束)】
  48:srcc/isr.c    ****      */
  49:srcc/isr.c    ****     //（5）【公共退出区】
  50:srcc/isr.c    **** UART_User_Handler_EXIT:
  51:srcc/isr.c    ****     ENABLE_INTERRUPTS;//开总中断
  52:srcc/isr.c    **** }
 101              		.loc 1 52 0
 102 0046 00BF     		nop
 103 0048 0837     		adds	r7, r7, #8
 104              		.cfi_def_cfa_offset 8
 105 004a BD46     		mov	sp, r7
 106              		.cfi_def_cfa_register 13
 107              		@ sp needed
 108 004c 80BD     		pop	{r7, pc}
 109              		.cfi_endproc
 110              	.LFE123:
 112              		.align	1
 113              		.global	SysTick_Handler
 114              		.syntax unified
 115              		.thumb
 116              		.thumb_func
 117              		.fpu fpv4-sp-d16
 119              	SysTick_Handler:
 120              	.LFB124:
  53:srcc/isr.c    **** //=====================================================================
  54:srcc/isr.c    **** //函数名称：SysTick_Handler（SysTick定时器中断处理程序）
  55:srcc/isr.c    **** //参数说明：无
  56:srcc/isr.c    **** //函数返回：无
  57:srcc/isr.c    **** //功能概要：（1）每10ms中断触发本程序一次；（2）达到一秒时，调用秒+1
  58:srcc/isr.c    **** //           程序，计算“时、分、秒”
  59:srcc/isr.c    **** //特别提示：（1）使用全局变量字节型数组gTime[3]，分别存储“时、分、秒”
  60:srcc/isr.c    **** //          （2）注意其中静态变量的使用
  61:srcc/isr.c    **** //=====================================================================
  62:srcc/isr.c    **** void SysTick_Handler()
  63:srcc/isr.c    **** {
 121              		.loc 1 63 0
 122              		.cfi_startproc
 123              		@ args = 0, pretend = 0, frame = 0
 124              		@ frame_needed = 1, uses_anonymous_args = 0
 125 004e 80B5     		push	{r7, lr}
 126              		.cfi_def_cfa_offset 8
 127              		.cfi_offset 7, -8
 128              		.cfi_offset 14, -4
 129 0050 00AF     		add	r7, sp, #0
 130              		.cfi_def_cfa_register 7
  64:srcc/isr.c    **** 	static uint8_t SysTickCount = 0;
  65:srcc/isr.c    **** 	SysTickCount++;    //Tick单元+1
 131              		.loc 1 65 0
 132 0052 0A4B     		ldr	r3, .L10
 133 0054 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 134 0056 0133     		adds	r3, r3, #1
 135 0058 DAB2     		uxtb	r2, r3
 136 005a 084B     		ldr	r3, .L10
 137 005c 1A70     		strb	r2, [r3]
  66:srcc/isr.c    **** 	wdog_feed();      //看门狗“喂狗”
 138              		.loc 1 66 0
 139 005e FFF7FEFF 		bl	wdog_feed
  67:srcc/isr.c    **** 	if (SysTickCount >= 100)
 140              		.loc 1 67 0
 141 0062 064B     		ldr	r3, .L10
 142 0064 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 143 0066 632B     		cmp	r3, #99
 144 0068 05D9     		bls	.L9
 145              	.LBB10:
  68:srcc/isr.c    **** 	{
  69:srcc/isr.c    **** 		SysTickCount = 0;  //Tick单元清0
 146              		.loc 1 69 0
 147 006a 044B     		ldr	r3, .L10
 148 006c 0022     		movs	r2, #0
 149 006e 1A70     		strb	r2, [r3]
  70:srcc/isr.c    **** 		SecAdd1(gTime);   //调用秒+1程序，计算“时、分、秒”
 150              		.loc 1 70 0
 151 0070 0348     		ldr	r0, .L10+4
 152 0072 FFF7FEFF 		bl	SecAdd1
 153              	.L9:
 154              	.LBE10:
  71:srcc/isr.c    **** 	}
  72:srcc/isr.c    **** }
 155              		.loc 1 72 0
 156 0076 00BF     		nop
 157 0078 80BD     		pop	{r7, pc}
 158              	.L11:
 159 007a 00BF     		.align	2
 160              	.L10:
 161 007c 00000000 		.word	SysTickCount.7474
 162 0080 00000000 		.word	gTime
 163              		.cfi_endproc
 164              	.LFE124:
 166              		.align	1
 167              		.global	User_SysFun
 168              		.syntax unified
 169              		.thumb
 170              		.thumb_func
 171              		.fpu fpv4-sp-d16
 173              	User_SysFun:
 174              	.LFB125:
  73:srcc/isr.c    **** 
  74:srcc/isr.c    **** //内部函数
  75:srcc/isr.c    **** void User_SysFun(uint8_t ch)
  76:srcc/isr.c    **** {
 175              		.loc 1 76 0
 176              		.cfi_startproc
 177              		@ args = 0, pretend = 0, frame = 8
 178              		@ frame_needed = 1, uses_anonymous_args = 0
 179 0084 80B5     		push	{r7, lr}
 180              		.cfi_def_cfa_offset 8
 181              		.cfi_offset 7, -8
 182              		.cfi_offset 14, -4
 183 0086 82B0     		sub	sp, sp, #8
 184              		.cfi_def_cfa_offset 16
 185 0088 00AF     		add	r7, sp, #0
 186              		.cfi_def_cfa_register 7
 187 008a 0346     		mov	r3, r0
 188 008c FB71     		strb	r3, [r7, #7]
  77:srcc/isr.c    ****     //（1）收到的一个字节参与组帧
  78:srcc/isr.c    ****     if(gcRecvLen == 0)  gcRecvLen =useremuart_frame(ch,(uint8_t*)gcRecvBuf);
 189              		.loc 1 78 0
 190 008e 194B     		ldr	r3, .L21
 191 0090 1B88     		ldrh	r3, [r3]	@ movhi
 192 0092 9BB2     		uxth	r3, r3
 193 0094 002B     		cmp	r3, #0
 194 0096 08D1     		bne	.L13
 195              		.loc 1 78 0 is_stmt 0
 196 0098 FB79     		ldrb	r3, [r7, #7]	@ zero_extendqisi2
 197 009a 1749     		ldr	r1, .L21+4
 198 009c 1846     		mov	r0, r3
 199 009e FFF7FEFF 		bl	useremuart_frame
 200 00a2 0346     		mov	r3, r0
 201 00a4 1A46     		mov	r2, r3
 202 00a6 134B     		ldr	r3, .L21
 203 00a8 1A80     		strh	r2, [r3]	@ movhi
 204              	.L13:
  79:srcc/isr.c    ****     //（2）字节进入组帧后，判断gcRecvLen=0？若为0，表示组帧尚未完成，
  80:srcc/isr.c    ****     //     下次收到一个字节，再继续组帧
  81:srcc/isr.c    ****     if(gcRecvLen == 0) goto User_SysFun_Exit;
 205              		.loc 1 81 0 is_stmt 1
 206 00aa 124B     		ldr	r3, .L21
 207 00ac 1B88     		ldrh	r3, [r3]	@ movhi
 208 00ae 9BB2     		uxth	r3, r3
 209 00b0 002B     		cmp	r3, #0
 210 00b2 1AD0     		beq	.L20
  82:srcc/isr.c    ****     //（3）至此，gcRecvLen≠0,表示组帧完成，gcRecvLen为帧的长度,校验序列号后（与
  83:srcc/isr.c    ****     //     根据Flash中倒数一扇区开始的16字节进行比较）
  84:srcc/isr.c    ****     //     gcRecvBuf[16]进行跳转
  85:srcc/isr.c    ****     if(strncmp((char *)(gcRecvBuf),(char *)((MCU_SECTOR_NUM-1)*MCU_SECTORSIZE+
 211              		.loc 1 85 0
 212 00b4 1022     		movs	r2, #16
 213 00b6 4FF47C31 		mov	r1, #258048
 214 00ba 0F48     		ldr	r0, .L21+4
 215 00bc FFF7FEFF 		bl	strncmp
 216 00c0 0346     		mov	r3, r0
 217 00c2 002B     		cmp	r3, #0
 218 00c4 03D0     		beq	.L16
  86:srcc/isr.c    ****        MCU_FLASH_ADDR_START),16) != 0)
  87:srcc/isr.c    ****     {
  88:srcc/isr.c    ****         gcRecvLen = 0;         //恢复接收状态
 219              		.loc 1 88 0
 220 00c6 0B4B     		ldr	r3, .L21
 221 00c8 0022     		movs	r2, #0
 222 00ca 1A80     		strh	r2, [r3]	@ movhi
  89:srcc/isr.c    ****         goto User_SysFun_Exit;
 223              		.loc 1 89 0
 224 00cc 0EE0     		b	.L15
 225              	.L16:
  90:srcc/isr.c    ****     }
  91:srcc/isr.c    ****     //（4）至此，不仅收到完整帧，且序号比较也一致， 根据命令字节gcRecvBuf[16]进行跳转
  92:srcc/isr.c    ****     //若为User串口程序更新命令，则进行程序更新
  93:srcc/isr.c    ****     switch(gcRecvBuf[16])  //帧标识
 226              		.loc 1 93 0
 227 00ce 0A4B     		ldr	r3, .L21+4
 228 00d0 1B7C     		ldrb	r3, [r3, #16]
 229 00d2 DBB2     		uxtb	r3, r3
 230 00d4 002B     		cmp	r3, #0
 231 00d6 00D0     		beq	.L18
  94:srcc/isr.c    ****     {
  95:srcc/isr.c    ****         case 0:
  96:srcc/isr.c    ****             SYSTEM_FUNCTION((uint8_t *)(gcRecvBuf+17));
  97:srcc/isr.c    ****             gcRecvLen = 0;         //恢复接收状态
  98:srcc/isr.c    ****         break;
  99:srcc/isr.c    ****         default:
 100:srcc/isr.c    ****         break;
 232              		.loc 1 100 0
 233 00d8 08E0     		b	.L15
 234              	.L18:
  96:srcc/isr.c    ****             gcRecvLen = 0;         //恢复接收状态
 235              		.loc 1 96 0
 236 00da 084B     		ldr	r3, .L21+8
 237 00dc 1846     		mov	r0, r3
 238 00de FFF7FEFF 		bl	SYSTEM_FUNCTION
  97:srcc/isr.c    ****         break;
 239              		.loc 1 97 0
 240 00e2 044B     		ldr	r3, .L21
 241 00e4 0022     		movs	r2, #0
 242 00e6 1A80     		strh	r2, [r3]	@ movhi
  98:srcc/isr.c    ****         default:
 243              		.loc 1 98 0
 244 00e8 00E0     		b	.L15
 245              	.L20:
  81:srcc/isr.c    ****     //（3）至此，gcRecvLen≠0,表示组帧完成，gcRecvLen为帧的长度,校验序列号后（与
 246              		.loc 1 81 0
 247 00ea 00BF     		nop
 248              	.L15:
 101:srcc/isr.c    ****     }
 102:srcc/isr.c    **** User_SysFun_Exit:
 103:srcc/isr.c    ****     return;
 249              		.loc 1 103 0
 250 00ec 00BF     		nop
 104:srcc/isr.c    **** }
 251              		.loc 1 104 0
 252 00ee 0837     		adds	r7, r7, #8
 253              		.cfi_def_cfa_offset 8
 254 00f0 BD46     		mov	sp, r7
 255              		.cfi_def_cfa_register 13
 256              		@ sp needed
 257 00f2 80BD     		pop	{r7, pc}
 258              	.L22:
 259              		.align	2
 260              	.L21:
 261 00f4 00000000 		.word	gcRecvLen
 262 00f8 00000000 		.word	gcRecvBuf
 263 00fc 11000000 		.word	gcRecvBuf+17
 264              		.cfi_endproc
 265              	.LFE125:
 267              		.align	1
 268              		.global	SecAdd1
 269              		.syntax unified
 270              		.thumb
 271              		.thumb_func
 272              		.fpu fpv4-sp-d16
 274              	SecAdd1:
 275              	.LFB126:
 105:srcc/isr.c    **** 
 106:srcc/isr.c    **** //===========================================================================
 107:srcc/isr.c    **** //函数名称：SecAdd1
 108:srcc/isr.c    **** //函数返回：无
 109:srcc/isr.c    **** //参数说明：*p:为指向一个时分秒数组p[3]
 110:srcc/isr.c    **** //功能概要：秒单元+1，并处理时分单元（00:00:00-23:59:59)
 111:srcc/isr.c    **** //===========================================================================
 112:srcc/isr.c    **** void SecAdd1(volatile uint8_t *p)
 113:srcc/isr.c    **** {
 276              		.loc 1 113 0
 277              		.cfi_startproc
 278              		@ args = 0, pretend = 0, frame = 8
 279              		@ frame_needed = 1, uses_anonymous_args = 0
 280              		@ link register save eliminated.
 281 0100 80B4     		push	{r7}
 282              		.cfi_def_cfa_offset 4
 283              		.cfi_offset 7, -4
 284 0102 83B0     		sub	sp, sp, #12
 285              		.cfi_def_cfa_offset 16
 286 0104 00AF     		add	r7, sp, #0
 287              		.cfi_def_cfa_register 7
 288 0106 7860     		str	r0, [r7, #4]
 114:srcc/isr.c    ****      *(p+2)+=1;         //秒+1
 289              		.loc 1 114 0
 290 0108 7B68     		ldr	r3, [r7, #4]
 291 010a 0233     		adds	r3, r3, #2
 292 010c 1B78     		ldrb	r3, [r3]
 293 010e DAB2     		uxtb	r2, r3
 294 0110 7B68     		ldr	r3, [r7, #4]
 295 0112 0233     		adds	r3, r3, #2
 296 0114 0132     		adds	r2, r2, #1
 297 0116 D2B2     		uxtb	r2, r2
 298 0118 1A70     		strb	r2, [r3]
 115:srcc/isr.c    ****      if(*(p+2)>=60)     //秒溢出
 299              		.loc 1 115 0
 300 011a 7B68     		ldr	r3, [r7, #4]
 301 011c 0233     		adds	r3, r3, #2
 302 011e 1B78     		ldrb	r3, [r3]
 303 0120 DBB2     		uxtb	r3, r3
 304 0122 3B2B     		cmp	r3, #59
 305 0124 25D9     		bls	.L25
 116:srcc/isr.c    ****      {
 117:srcc/isr.c    ****         *(p+2)=0;       //清秒
 306              		.loc 1 117 0
 307 0126 7B68     		ldr	r3, [r7, #4]
 308 0128 0233     		adds	r3, r3, #2
 309 012a 0022     		movs	r2, #0
 310 012c 1A70     		strb	r2, [r3]
 118:srcc/isr.c    ****         *(p+1)+=1;      //分+1
 311              		.loc 1 118 0
 312 012e 7B68     		ldr	r3, [r7, #4]
 313 0130 0133     		adds	r3, r3, #1
 314 0132 1B78     		ldrb	r3, [r3]
 315 0134 DAB2     		uxtb	r2, r3
 316 0136 7B68     		ldr	r3, [r7, #4]
 317 0138 0133     		adds	r3, r3, #1
 318 013a 0132     		adds	r2, r2, #1
 319 013c D2B2     		uxtb	r2, r2
 320 013e 1A70     		strb	r2, [r3]
 119:srcc/isr.c    ****         if(*(p+1)>=60)  //分溢出
 321              		.loc 1 119 0
 322 0140 7B68     		ldr	r3, [r7, #4]
 323 0142 0133     		adds	r3, r3, #1
 324 0144 1B78     		ldrb	r3, [r3]
 325 0146 DBB2     		uxtb	r3, r3
 326 0148 3B2B     		cmp	r3, #59
 327 014a 12D9     		bls	.L25
 120:srcc/isr.c    ****         {
 121:srcc/isr.c    ****            *(p+1)=0;    //清分
 328              		.loc 1 121 0
 329 014c 7B68     		ldr	r3, [r7, #4]
 330 014e 0133     		adds	r3, r3, #1
 331 0150 0022     		movs	r2, #0
 332 0152 1A70     		strb	r2, [r3]
 122:srcc/isr.c    ****            *p+=1;       //时+1
 333              		.loc 1 122 0
 334 0154 7B68     		ldr	r3, [r7, #4]
 335 0156 1B78     		ldrb	r3, [r3]
 336 0158 DBB2     		uxtb	r3, r3
 337 015a 0133     		adds	r3, r3, #1
 338 015c DAB2     		uxtb	r2, r3
 339 015e 7B68     		ldr	r3, [r7, #4]
 340 0160 1A70     		strb	r2, [r3]
 123:srcc/isr.c    ****            if(*p>=24)   //时溢出
 341              		.loc 1 123 0
 342 0162 7B68     		ldr	r3, [r7, #4]
 343 0164 1B78     		ldrb	r3, [r3]
 344 0166 DBB2     		uxtb	r3, r3
 345 0168 172B     		cmp	r3, #23
 346 016a 02D9     		bls	.L25
 124:srcc/isr.c    ****            {
 125:srcc/isr.c    ****              *p=0;      //清时
 347              		.loc 1 125 0
 348 016c 7B68     		ldr	r3, [r7, #4]
 349 016e 0022     		movs	r2, #0
 350 0170 1A70     		strb	r2, [r3]
 351              	.L25:
 126:srcc/isr.c    ****            }
 127:srcc/isr.c    ****         }
 128:srcc/isr.c    ****      }
 129:srcc/isr.c    **** }
 352              		.loc 1 129 0
 353 0172 00BF     		nop
 354 0174 0C37     		adds	r7, r7, #12
 355              		.cfi_def_cfa_offset 4
 356 0176 BD46     		mov	sp, r7
 357              		.cfi_def_cfa_register 13
 358              		@ sp needed
 359 0178 5DF8047B 		ldr	r7, [sp], #4
 360              		.cfi_restore 7
 361              		.cfi_def_cfa_offset 0
 362 017c 7047     		bx	lr
 363              		.cfi_endproc
 364              	.LFE126:
 366              		.bss
 367              	SysTickCount.7474:
 368 0000 00       		.space	1
 370              		.text
 371              	.Letext0:
 372              		.file 3 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
 373              		.file 4 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
 374              		.file 5 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch08-LCD\\L
 375              		.file 6 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch08-LCD\\L
 376              		.file 7 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch08-LCD\\L
 377              		.file 8 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\sys\\lock.h"
 378              		.file 9 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\sys\\_types.h"
 379              		.file 10 "d:\\ahl-gec-ide(4.20)\\gcc\\lib\\gcc\\arm-none-eabi\\7.2.1\\include\\stddef.h"
 380              		.file 11 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\sys\\reent.h"
 381              		.file 12 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch08-LCD\\
 382              		.file 13 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch08-LCD\\
DEFINED SYMBOLS
                            *ABS*:00000000 isr.c
                            *COM*:00000004 component_fun
                            *COM*:00000004 g_LEDBuffer
                            *COM*:00000020 g_LCDBuffer
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:20     .text:00000000 $t
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:27     .text:00000000 EUSCIA3_IRQHandler
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:119    .text:0000004e SysTick_Handler
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:274    .text:00000100 SecAdd1
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:161    .text:0000007c $d
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:367    .bss:00000000 SysTickCount.7474
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:166    .text:00000084 $t
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:173    .text:00000084 User_SysFun
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:261    .text:000000f4 $d
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:267    .text:00000100 $t
C:\Users\lenovo\AppData\Local\Temp\cc0pzjLq.s:368    .bss:00000000 $d

UNDEFINED SYMBOLS
uart_get_re_int
uart_re1
uart_send1
wdog_feed
gTime
useremuart_frame
strncmp
SYSTEM_FUNCTION
gcRecvLen
gcRecvBuf
