; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o..\output\dma_burst.o --asm_dir=..\List\ --list_dir=..\List\ --depend=..\output\dma_burst.d --cpu=Cortex-M0+ --apcs=interwork --diag_suppress=9931 -I..\FWLib\SC32F1XXX_Lib\inc -I..\User\HeadFiles -I..\User -I..\Drivers -I..\Apps -I..\CMSIS -IF:\Users\SOC\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\Device\ARM\ARMCM0plus\Include -D__UVISION_VERSION=536 -DARMCM0P -DSC32f10xx --omf_browse=..\output\dma_burst.crf ..\Apps\DMA_Burst.c]
                          THUMB

                          AREA ||i.DMA_Burst_Function||, CODE, READONLY, ALIGN=2

                          REQUIRE _printf_percent
                          REQUIRE _printf_d
                          REQUIRE _printf_int_dec
                  DMA_Burst_Function PROC
;;;12     
;;;13     void DMA_Burst_Function(void)
000000  b0ec              SUB      sp,sp,#0x1b0
;;;14     {
;;;15       DMA_InitTypeDef DMA_InitStruct; //定义DMA初始化结构体变量
;;;16       uint8_t DMA_Burst_Src[200], DMA_Burst_Dst[200];
;;;17     	uint8_t i;
;;;18     	for(i=0;i<200;i++)
000002  2000              MOVS     r0,#0
000004  ad07              ADD      r5,sp,#0x1c           ;16
                  |L1.6|
;;;19     	{
;;;20     	 DMA_Burst_Src[i] = i;//被搬运数组写入数据
000006  5428              STRB     r0,[r5,r0]
000008  1c40              ADDS     r0,r0,#1
00000a  b2c0              UXTB     r0,r0                 ;18
00000c  28c8              CMP      r0,#0xc8              ;18
00000e  d3fa              BCC      |L1.6|
;;;21     	}
;;;22     	
;;;23       /* 使能DMA的时钟 */
;;;24       RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA, ENABLE);
000010  2101              MOVS     r1,#1
000012  4608              MOV      r0,r1
000014  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;25     
;;;26       /* DMA外设配置 */
;;;27       DMA_StructInit(&DMA_InitStruct);
000018  4668              MOV      r0,sp
00001a  f7fffffe          BL       DMA_StructInit
;;;28       DMA_InitStruct.DMA_BufferSize = 200;	//DMA搬运数量为200个
00001e  20c8              MOVS     r0,#0xc8
;;;29       DMA_InitStruct.DMA_Burst = DMA_Burst_128B;	//批量传输模式，Brust=128
000020  9003              STR      r0,[sp,#0xc]
000022  2001              MOVS     r0,#1
000024  03c0              LSLS     r0,r0,#15
000026  466a              MOV      r2,sp
000028  8150              STRH     r0,[r2,#0xa]
;;;30       DMA_InitStruct.DMA_CircularMode = DMA_CircularMode_Enable;	//开启循环模式
00002a  2010              MOVS     r0,#0x10
00002c  8050              STRH     r0,[r2,#2]
;;;31       DMA_InitStruct.DMA_DataSize = DMA_DataSize_Byte;	//传输宽度为1byte
00002e  2000              MOVS     r0,#0
;;;32       DMA_InitStruct.DMA_SourceMode = DMA_SourceMode_INC_CIRC;	//源地址循环递增
000030  2103              MOVS     r1,#3
000032  8090              STRH     r0,[r2,#4]            ;31
000034  0289              LSLS     r1,r1,#10
000036  8111              STRH     r1,[r2,#8]
;;;33       DMA_InitStruct.DMA_TargetMode = DMA_TargetMode_INC_CIRC;	//目标地址循环递增
000038  1089              ASRS     r1,r1,#2
00003a  80d1              STRH     r1,[r2,#6]
;;;34       DMA_InitStruct.DMA_SrcAddress = (uint32_t)&DMA_Burst_Src;	//设置源地址首地址
;;;35       DMA_InitStruct.DMA_DstAddress = (uint32_t)&DMA_Burst_Dst;	//设置目标地址首地址
00003c  ae39              ADD      r6,sp,#0xe4
00003e  a904              ADD      r1,sp,#0x10
000040  c161              STM      r1!,{r0,r5,r6}
;;;36       DMA_InitStruct.DMA_Request = DMA_Request_Null;	//无触发源
;;;37       DMA_InitStruct.DMA_Priority = DMA_Priority_HIGH;	//设置优先级为高
000042  2002              MOVS     r0,#2
;;;38       DMA_Init(DMA0, &DMA_InitStruct);
000044  4f1c              LDR      r7,|L1.184|
000046  8010              STRH     r0,[r2,#0]            ;37
000048  4669              MOV      r1,sp
00004a  4638              MOV      r0,r7
00004c  f7fffffe          BL       DMA_Init
;;;39     
;;;40       DMA_Cmd(DMA0, ENABLE);//使能DMA0
000050  2101              MOVS     r1,#1
000052  4638              MOV      r0,r7
000054  f7fffffe          BL       DMA_Cmd
;;;41     
;;;42       DMA_SoftwareTrigger(DMA0);	//软件触发，一次触发搬运完所有的Cnt
000058  4638              MOV      r0,r7
00005a  f7fffffe          BL       DMA_SoftwareTrigger
                  |L1.94|
;;;43     
;;;44       while(1)
;;;45       {
;;;46         if(DMA_GetFlagStatus(DMA0, DMA_FLAG_TCIF) == SET)//DMA搬运完成
00005e  2102              MOVS     r1,#2
000060  4638              MOV      r0,r7
000062  f7fffffe          BL       DMA_GetFlagStatus
000066  2801              CMP      r0,#1
000068  d1f9              BNE      |L1.94|
;;;47         {
;;;48           DMA_ClearFlag(DMA0, DMA_FLAG_TCIF);//清标志
00006a  2102              MOVS     r1,#2
00006c  4638              MOV      r0,r7
00006e  f7fffffe          BL       DMA_ClearFlag
;;;49     
;;;50     			printf("Brust搬运成功\r\n");
000072  a012              ADR      r0,|L1.188|
000074  f7fffffe          BL       __2printf
;;;51     			printf("被搬运的数组为: \r\n");
000078  a014              ADR      r0,|L1.204|
00007a  f7fffffe          BL       __2printf
;;;52     			for(i=0;i<200;i++)
00007e  2400              MOVS     r4,#0
                  |L1.128|
;;;53     	    {
;;;54     				printf("%d、", DMA_Burst_Src[i]);
000080  5d29              LDRB     r1,[r5,r4]
000082  a017              ADR      r0,|L1.224|
000084  f7fffffe          BL       __2printf
000088  1c64              ADDS     r4,r4,#1
00008a  b2e4              UXTB     r4,r4                 ;52
00008c  2cc8              CMP      r4,#0xc8              ;52
00008e  d3f7              BCC      |L1.128|
;;;55     			}
;;;56     			printf("\r\n");
000090  a012              ADR      r0,|L1.220|
000092  f7fffffe          BL       __2printf
;;;57           printf("搬运完成后的数组为: \r\n");
000096  a014              ADR      r0,|L1.232|
000098  f7fffffe          BL       __2printf
;;;58     			for(i=0;i<200;i++)
00009c  2400              MOVS     r4,#0
                  |L1.158|
;;;59     	    {
;;;60     				printf("%d、", DMA_Burst_Dst[i]);
00009e  5d31              LDRB     r1,[r6,r4]
0000a0  a00f              ADR      r0,|L1.224|
0000a2  f7fffffe          BL       __2printf
0000a6  1c64              ADDS     r4,r4,#1
0000a8  b2e4              UXTB     r4,r4                 ;58
0000aa  2cc8              CMP      r4,#0xc8              ;58
0000ac  d3f7              BCC      |L1.158|
;;;61     			}
;;;62           printf("\r\n");
0000ae  a00b              ADR      r0,|L1.220|
0000b0  f7fffffe          BL       __2printf
0000b4  e7d3              B        |L1.94|
;;;63         }	
;;;64       }
;;;65     }
;;;66     
                          ENDP

0000b6  0000              DCW      0x0000
                  |L1.184|
                          DCD      0x40010800
                  |L1.188|
0000bc  42727573          DCB      "Brust",176,225,212,203,179,201,185,166,"\r\n",0
0000c0  74b0e1d4
0000c4  cbb3c9b9
0000c8  a60d0a00
                  |L1.204|
0000cc  b1bbb0e1          DCB      177,187,176,225,212,203,181,196,202,253,215,233,206,170,":"
0000d0  d4cbb5c4
0000d4  cafdd7e9
0000d8  ceaa3a  
0000db  20                DCB      " "
                  |L1.220|
0000dc  0d0a00            DCB      "\r\n",0
0000df  00                DCB      0
                  |L1.224|
0000e0  2564a1a2          DCB      "%d",161,162,0
0000e4  00      
0000e5  00                DCB      0
0000e6  00                DCB      0
0000e7  00                DCB      0
                  |L1.232|
0000e8  b0e1d4cb          DCB      176,225,212,203,205,234,179,201,186,243,181,196,202,253,215
0000ec  cdeab3c9
0000f0  baf3b5c4
0000f4  cafdd7  
0000f7  e9ceaa3a          DCB      233,206,170,": \r\n",0
0000fb  200d0a00
0000ff  00                DCB      0

;*** Start embedded assembler ***

#line 1 "..\\Apps\\DMA_Burst.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___11_DMA_Burst_c_6fcf391c____REV16|
#line 463 "..\\CMSIS\\cmsis_armcc.h"
|__asm___11_DMA_Burst_c_6fcf391c____REV16| PROC
#line 464

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___11_DMA_Burst_c_6fcf391c____REVSH|
#line 478
|__asm___11_DMA_Burst_c_6fcf391c____REVSH| PROC
#line 479

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
