   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              		.section	.rodata
  19              		.align	2
  20              	.LC0:
  21 0000 61616161 		.ascii	"aaaaa\000"
  21      6100
  22              		.text
  23              		.align	1
  24              		.global	EUSCIA3_IRQHandler
  25              		.syntax unified
  26              		.thumb
  27              		.thumb_func
  28              		.fpu fpv4-sp-d16
  30              	EUSCIA3_IRQHandler:
  31              	.LFB123:
  32              		.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    **** void User_SysFun(uint8_t ch);
  10:srcc/isr.c    **** //======================================================================
  11:srcc/isr.c    **** //程序名称：UART_User_Handler
  12:srcc/isr.c    **** //触发条件：UART_User串口收到一个字节触发
  13:srcc/isr.c    **** //备    注：进入本程序后，可使用uart_get_re_int函数可再进行中断标志判断
  14:srcc/isr.c    **** //          （1-有UART接收中断，0-没有UART接收中断）
  15:srcc/isr.c    **** //======================================================================
  16:srcc/isr.c    **** void UART_User_Handler(void)
  17:srcc/isr.c    **** {
  33              		.loc 1 17 0
  34              		.cfi_startproc
  35              		@ args = 0, pretend = 0, frame = 8
  36              		@ frame_needed = 1, uses_anonymous_args = 0
  37 0000 80B5     		push	{r7, lr}
  38              		.cfi_def_cfa_offset 8
  39              		.cfi_offset 7, -8
  40              		.cfi_offset 14, -4
  41 0002 82B0     		sub	sp, sp, #8
  42              		.cfi_def_cfa_offset 16
  43 0004 00AF     		add	r7, sp, #0
  44              		.cfi_def_cfa_register 7
  45              	.LBB6:
  46              	.LBB7:
  47              		.file 2 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch12-DMA\\D
   1:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** /**************************************************************************//**
   2:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****  * @file     cmsis_gcc.h
   3:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****  * @version  V4.30
   5:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****  * @date     20. October 2015
   6:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****  ******************************************************************************/
   7:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** /* Copyright (c) 2009 - 2015 ARM LIMITED
   8:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** 
   9:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****    All rights reserved.
  10:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****      specific prior written permission.
  20:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****    *
  21:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****    POSSIBILITY OF SUCH DAMAGE.
  32:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****    ---------------------------------------------------------------------------*/
  33:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** 
  34:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** 
  35:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
  36:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** #define __CMSIS_GCC_H
  37:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** 
  38:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** /* ignore some GCC warnings */
  39:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** #if defined ( __GNUC__ )
  40:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** #pragma GCC diagnostic push
  41:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
  42:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
  43:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
  44:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** #endif
  45:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** 
  46:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** 
  47:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** /* ###########################  Core Function Access  ########################### */
  48:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** /** \ingroup  CMSIS_Core_FunctionInterface
  49:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****   @{
  51:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****  */
  52:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** 
  53:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** /**
  54:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****   \brief   Enable IRQ Interrupts
  55:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****            Can only be executed in Privileged modes.
  57:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****  */
  58:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __NVIC_EnableIRQ(void)
  59:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** {
  60:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****   __ASM volatile ("cpsie i" : : : "memory");
  61:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** }
  62:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** 
  63:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** 
  64:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** /**
  65:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****   \brief   Disable IRQ Interrupts
  66:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\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\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****   Can only be executed in Privileged modes.
  68:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****  */
  69:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __NVIC_DisableIRQ(void)
  70:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** {
  71:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h ****   __ASM volatile ("cpsid i" : : : "memory");
  48              		.loc 2 71 0
  49              		.syntax unified
  50              	@ 71 "C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-2
  51 0006 72B6     		cpsid i
  52              	@ 0 "" 2
  53              		.thumb
  54              		.syntax unified
  55              	.LBE7:
  56              	.LBE6:
  18:srcc/isr.c    **** 	 //（1）变量声明
  19:srcc/isr.c    ****     uint8_t flag,ch;
  20:srcc/isr.c    ****     DISABLE_INTERRUPTS;      //关总中断
  21:srcc/isr.c    ****     //（2）未触发串口接收中断，退出
  22:srcc/isr.c    ****     if(!uart_get_re_int(UART_User)) goto UART_User_Handler_EXIT;
  57              		.loc 1 22 0
  58 0008 0320     		movs	r0, #3
  59 000a FFF7FEFF 		bl	uart_get_re_int
  60 000e 0346     		mov	r3, r0
  61 0010 002B     		cmp	r3, #0
  62 0012 18D0     		beq	.L5
  23:srcc/isr.c    ****     uart_send_string(UART_User,"aaaaa");
  63              		.loc 1 23 0
  64 0014 1049     		ldr	r1, .L7
  65 0016 0320     		movs	r0, #3
  66 0018 FFF7FEFF 		bl	uart_send_string
  24:srcc/isr.c    ****     //（3）收到一个字节，读出该字节数据
  25:srcc/isr.c    ****     ch = uart_re1(UART_User,&flag);        //调用接收一个字节的函数
  67              		.loc 1 25 0
  68 001c BB1D     		adds	r3, r7, #6
  69 001e 1946     		mov	r1, r3
  70 0020 0320     		movs	r0, #3
  71 0022 FFF7FEFF 		bl	uart_re1
  72 0026 0346     		mov	r3, r0
  73 0028 FB71     		strb	r3, [r7, #7]
  26:srcc/isr.c    ****      
  27:srcc/isr.c    ****     if(!flag) goto UART_User_Handler_EXIT; //实际未收到数据，退出
  74              		.loc 1 27 0
  75 002a BB79     		ldrb	r3, [r7, #6]	@ zero_extendqisi2
  76 002c 002B     		cmp	r3, #0
  77 002e 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);     //例如，收到一个字节回发一个字节
  78              		.loc 1 31 0
  79 0030 FB79     		ldrb	r3, [r7, #7]	@ zero_extendqisi2
  80 0032 1946     		mov	r1, r3
  81 0034 0320     		movs	r0, #3
  82 0036 FFF7FEFF 		bl	uart_send1
  32:srcc/isr.c    ****         uart_send1(UART_UPDATE,ch);     //例如，收到一个字节回发一个字节
  83              		.loc 1 32 0
  84 003a FB79     		ldrb	r3, [r7, #7]	@ zero_extendqisi2
  85 003c 1946     		mov	r1, r3
  86 003e 0020     		movs	r0, #0
  87 0040 FFF7FEFF 		bl	uart_send1
  88 0044 02E0     		b	.L3
  89              	.L5:
  22:srcc/isr.c    ****     uart_send_string(UART_User,"aaaaa");
  90              		.loc 1 22 0
  91 0046 00BF     		nop
  92 0048 00E0     		b	.L3
  93              	.L6:
  27:srcc/isr.c    ****   //（4）以下代码根据是否使用模板提供的User串口通信帧结构，及是否利用User串口
  94              		.loc 1 27 0
  95 004a 00BF     		nop
  96              	.L3:
  97              	.LBB8:
  98              	.LBB9:
  60:C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-20210417\02_CPU\cmsis_gcc.h **** }
  99              		.loc 2 60 0
 100              		.syntax unified
 101              	@ 60 "C:\Users\lenovo\Desktop\MSP-20210417\MSP-20210417\User-MSP432-20210417\ch12-DMA\DMA(MSP432)-2
 102 004c 62B6     		cpsie i
 103              	@ 0 "" 2
 104              		.thumb
 105              		.syntax unified
 106              	.LBE9:
 107              	.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    **** }
 108              		.loc 1 52 0
 109 004e 00BF     		nop
 110 0050 0837     		adds	r7, r7, #8
 111              		.cfi_def_cfa_offset 8
 112 0052 BD46     		mov	sp, r7
 113              		.cfi_def_cfa_register 13
 114              		@ sp needed
 115 0054 80BD     		pop	{r7, pc}
 116              	.L8:
 117 0056 00BF     		.align	2
 118              	.L7:
 119 0058 00000000 		.word	.LC0
 120              		.cfi_endproc
 121              	.LFE123:
 123              		.section	.rodata
 124 0006 0000     		.align	2
 125              	.LC1:
 126 0008 74686973 		.ascii	"this is dma\000"
 126      20697320 
 126      646D6100 
 127              		.text
 128              		.align	1
 129              		.global	DMA_INT1_IRQHandler
 130              		.syntax unified
 131              		.thumb
 132              		.thumb_func
 133              		.fpu fpv4-sp-d16
 135              	DMA_INT1_IRQHandler:
 136              	.LFB124:
  53:srcc/isr.c    **** void DMA_INT1_IRQHandler(void)
  54:srcc/isr.c    **** {
 137              		.loc 1 54 0
 138              		.cfi_startproc
 139              		@ args = 0, pretend = 0, frame = 0
 140              		@ frame_needed = 1, uses_anonymous_args = 0
 141 005c 80B5     		push	{r7, lr}
 142              		.cfi_def_cfa_offset 8
 143              		.cfi_offset 7, -8
 144              		.cfi_offset 14, -4
 145 005e 00AF     		add	r7, sp, #0
 146              		.cfi_def_cfa_register 7
  55:srcc/isr.c    **** 	dma_disableCh(0);
 147              		.loc 1 55 0
 148 0060 0020     		movs	r0, #0
 149 0062 FFF7FEFF 		bl	dma_disableCh
  56:srcc/isr.c    ****      uart_send_string(0,"this is dma");
 150              		.loc 1 56 0
 151 0066 0349     		ldr	r1, .L10
 152 0068 0020     		movs	r0, #0
 153 006a FFF7FEFF 		bl	uart_send_string
  57:srcc/isr.c    **** }
 154              		.loc 1 57 0
 155 006e 00BF     		nop
 156 0070 80BD     		pop	{r7, pc}
 157              	.L11:
 158 0072 00BF     		.align	2
 159              	.L10:
 160 0074 08000000 		.word	.LC1
 161              		.cfi_endproc
 162              	.LFE124:
 164              		.align	1
 165              		.global	User_SysFun
 166              		.syntax unified
 167              		.thumb
 168              		.thumb_func
 169              		.fpu fpv4-sp-d16
 171              	User_SysFun:
 172              	.LFB125:
  58:srcc/isr.c    **** 
  59:srcc/isr.c    **** 
  60:srcc/isr.c    **** //内部函数
  61:srcc/isr.c    **** void User_SysFun(uint8_t ch)
  62:srcc/isr.c    **** {
 173              		.loc 1 62 0
 174              		.cfi_startproc
 175              		@ args = 0, pretend = 0, frame = 8
 176              		@ frame_needed = 1, uses_anonymous_args = 0
 177 0078 80B5     		push	{r7, lr}
 178              		.cfi_def_cfa_offset 8
 179              		.cfi_offset 7, -8
 180              		.cfi_offset 14, -4
 181 007a 82B0     		sub	sp, sp, #8
 182              		.cfi_def_cfa_offset 16
 183 007c 00AF     		add	r7, sp, #0
 184              		.cfi_def_cfa_register 7
 185 007e 0346     		mov	r3, r0
 186 0080 FB71     		strb	r3, [r7, #7]
  63:srcc/isr.c    ****     //（1）收到的一个字节参与组帧
  64:srcc/isr.c    ****     if(gcRecvLen == 0)  gcRecvLen =useremuart_frame(ch,(uint8_t*)gcRecvBuf);
 187              		.loc 1 64 0
 188 0082 194B     		ldr	r3, .L21
 189 0084 1B88     		ldrh	r3, [r3]	@ movhi
 190 0086 9BB2     		uxth	r3, r3
 191 0088 002B     		cmp	r3, #0
 192 008a 08D1     		bne	.L13
 193              		.loc 1 64 0 is_stmt 0
 194 008c FB79     		ldrb	r3, [r7, #7]	@ zero_extendqisi2
 195 008e 1749     		ldr	r1, .L21+4
 196 0090 1846     		mov	r0, r3
 197 0092 FFF7FEFF 		bl	useremuart_frame
 198 0096 0346     		mov	r3, r0
 199 0098 1A46     		mov	r2, r3
 200 009a 134B     		ldr	r3, .L21
 201 009c 1A80     		strh	r2, [r3]	@ movhi
 202              	.L13:
  65:srcc/isr.c    ****     //（2）字节进入组帧后，判断gcRecvLen=0？若为0，表示组帧尚未完成，
  66:srcc/isr.c    ****     //     下次收到一个字节，再继续组帧
  67:srcc/isr.c    ****     if(gcRecvLen == 0) goto User_SysFun_Exit;
 203              		.loc 1 67 0 is_stmt 1
 204 009e 124B     		ldr	r3, .L21
 205 00a0 1B88     		ldrh	r3, [r3]	@ movhi
 206 00a2 9BB2     		uxth	r3, r3
 207 00a4 002B     		cmp	r3, #0
 208 00a6 1AD0     		beq	.L20
  68:srcc/isr.c    ****     //（3）至此，gcRecvLen≠0,表示组帧完成，gcRecvLen为帧的长度,校验序列号后（与
  69:srcc/isr.c    ****     //     根据Flash中倒数一扇区开始的16字节进行比较）
  70:srcc/isr.c    ****     //     gcRecvBuf[16]进行跳转
  71:srcc/isr.c    ****     if(strncmp((char *)(gcRecvBuf),(char *)((MCU_SECTOR_NUM-1)*MCU_SECTORSIZE+
 209              		.loc 1 71 0
 210 00a8 1022     		movs	r2, #16
 211 00aa 4FF47C31 		mov	r1, #258048
 212 00ae 0F48     		ldr	r0, .L21+4
 213 00b0 FFF7FEFF 		bl	strncmp
 214 00b4 0346     		mov	r3, r0
 215 00b6 002B     		cmp	r3, #0
 216 00b8 03D0     		beq	.L16
  72:srcc/isr.c    ****        MCU_FLASH_ADDR_START),16) != 0)
  73:srcc/isr.c    ****     {
  74:srcc/isr.c    ****         gcRecvLen = 0;         //恢复接收状态
 217              		.loc 1 74 0
 218 00ba 0B4B     		ldr	r3, .L21
 219 00bc 0022     		movs	r2, #0
 220 00be 1A80     		strh	r2, [r3]	@ movhi
  75:srcc/isr.c    ****         goto User_SysFun_Exit;
 221              		.loc 1 75 0
 222 00c0 0EE0     		b	.L15
 223              	.L16:
  76:srcc/isr.c    ****     }
  77:srcc/isr.c    ****     //（4）至此，不仅收到完整帧，且序号比较也一致， 根据命令字节gcRecvBuf[16]进行跳转
  78:srcc/isr.c    ****     //若为User串口程序更新命令，则进行程序更新
  79:srcc/isr.c    ****     switch(gcRecvBuf[16])  //帧标识
 224              		.loc 1 79 0
 225 00c2 0A4B     		ldr	r3, .L21+4
 226 00c4 1B7C     		ldrb	r3, [r3, #16]
 227 00c6 DBB2     		uxtb	r3, r3
 228 00c8 002B     		cmp	r3, #0
 229 00ca 00D0     		beq	.L18
  80:srcc/isr.c    ****     {
  81:srcc/isr.c    ****         case 0:
  82:srcc/isr.c    ****             SYSTEM_FUNCTION((uint8_t *)(gcRecvBuf+17));
  83:srcc/isr.c    ****             gcRecvLen = 0;         //恢复接收状态
  84:srcc/isr.c    ****         break;
  85:srcc/isr.c    ****         default:
  86:srcc/isr.c    ****         break;
 230              		.loc 1 86 0
 231 00cc 08E0     		b	.L15
 232              	.L18:
  82:srcc/isr.c    ****             gcRecvLen = 0;         //恢复接收状态
 233              		.loc 1 82 0
 234 00ce 084B     		ldr	r3, .L21+8
 235 00d0 1846     		mov	r0, r3
 236 00d2 FFF7FEFF 		bl	SYSTEM_FUNCTION
  83:srcc/isr.c    ****         break;
 237              		.loc 1 83 0
 238 00d6 044B     		ldr	r3, .L21
 239 00d8 0022     		movs	r2, #0
 240 00da 1A80     		strh	r2, [r3]	@ movhi
  84:srcc/isr.c    ****         default:
 241              		.loc 1 84 0
 242 00dc 00E0     		b	.L15
 243              	.L20:
  67:srcc/isr.c    ****     //（3）至此，gcRecvLen≠0,表示组帧完成，gcRecvLen为帧的长度,校验序列号后（与
 244              		.loc 1 67 0
 245 00de 00BF     		nop
 246              	.L15:
  87:srcc/isr.c    ****     }
  88:srcc/isr.c    **** User_SysFun_Exit:
  89:srcc/isr.c    ****     return;
 247              		.loc 1 89 0
 248 00e0 00BF     		nop
  90:srcc/isr.c    **** }
 249              		.loc 1 90 0
 250 00e2 0837     		adds	r7, r7, #8
 251              		.cfi_def_cfa_offset 8
 252 00e4 BD46     		mov	sp, r7
 253              		.cfi_def_cfa_register 13
 254              		@ sp needed
 255 00e6 80BD     		pop	{r7, pc}
 256              	.L22:
 257              		.align	2
 258              	.L21:
 259 00e8 00000000 		.word	gcRecvLen
 260 00ec 00000000 		.word	gcRecvBuf
 261 00f0 11000000 		.word	gcRecvBuf+17
 262              		.cfi_endproc
 263              	.LFE125:
 265              	.Letext0:
 266              		.file 3 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
 267              		.file 4 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
 268              		.file 5 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch12-DMA\\D
 269              		.file 6 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch12-DMA\\D
 270              		.file 7 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch12-DMA\\D
 271              		.file 8 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\sys\\lock.h"
 272              		.file 9 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\sys\\_types.h"
 273              		.file 10 "d:\\ahl-gec-ide(4.20)\\gcc\\lib\\gcc\\arm-none-eabi\\7.2.1\\include\\stddef.h"
 274              		.file 11 "d:\\ahl-gec-ide(4.20)\\gcc\\arm-none-eabi\\include\\sys\\reent.h"
 275              		.file 12 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch12-DMA\\
 276              		.file 13 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch12-DMA\\
 277              		.file 14 "C:\\Users\\lenovo\\Desktop\\MSP-20210417\\MSP-20210417\\User-MSP432-20210417\\ch12-DMA\\
DEFINED SYMBOLS
                            *ABS*:00000000 isr.c
                            *COM*:00000004 component_fun
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:19     .rodata:00000000 $d
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:23     .text:00000000 $t
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:30     .text:00000000 EUSCIA3_IRQHandler
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:119    .text:00000058 $d
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:128    .text:0000005c $t
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:135    .text:0000005c DMA_INT1_IRQHandler
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:160    .text:00000074 $d
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:164    .text:00000078 $t
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:171    .text:00000078 User_SysFun
C:\Users\lenovo\AppData\Local\Temp\ccAYF3ha.s:259    .text:000000e8 $d

UNDEFINED SYMBOLS
uart_get_re_int
uart_send_string
uart_re1
uart_send1
dma_disableCh
useremuart_frame
strncmp
SYSTEM_FUNCTION
gcRecvLen
gcRecvBuf
