📄 dma.txt
字号:
00027c eafffff8 B |L1.612|
;;;113 {
;;;114 *((U32 *)i)=i^0x55aa5aa5;
|L1.640|
000280 e59f0218 LDR r0,|L1.1184|
000284 e0240000 EOR r0,r4,r0
000288 e5840000 STR r0,[r4,#0]
;;;115 memSum0+=i^0x55aa5aa5;
00028c e59f020c LDR r0,|L1.1184|
000290 e0240000 EOR r0,r4,r0
000294 e0800008 ADD r0,r0,r8
000298 e1a08000 MOV r8,r0
;;;116 }
00029c eafffff5 B |L1.632|
;;;117
;;;118 Uart_Printf("DMA%d start\n",ch);
|L1.672|
0002a0 e28f0f7f ADR r0,|L1.1188|
0002a4 e59d102c LDR r1,[sp,#0x2c]
0002a8 ebfffffe BL Uart_Printf
;;;119
;;;120 dmaDone=0;
0002ac e3a00000 MOV r0,#0
0002b0 e59f1160 LDR r1,|L1.1048|
0002b4 e5810000 STR r0,[r1,#0] ; dmaDone
;;;121
;;;122 pDMA->DISRC=srcAddr;
0002b8 e59d0030 LDR r0,[sp,#0x30]
0002bc e5850000 STR r0,[r5,#0]
;;;123 pDMA->DISRCC=(0<<1)|(0<<0); // inc,AHB
0002c0 e3a00000 MOV r0,#0
0002c4 e5850004 STR r0,[r5,#4]
;;;124 pDMA->DIDST=dstAddr;
0002c8 e59d0034 LDR r0,[sp,#0x34]
0002cc e5850008 STR r0,[r5,#8]
;;;125 pDMA->DIDSTC=(0<<2) | (0<<1)|(0<<0); // inc,AHB
0002d0 e3a00000 MOV r0,#0
0002d4 e585000c STR r0,[r5,#0xc]
;;;126 pDMA->DCON=tc|(1<<31)|(1<<30)|(1<<29)|(burst<<28)|(1<<27)|\
0002d8 e1870e0b ORR r0,r7,r11,LSL #28
0002dc e1800a06 ORR r0,r0,r6,LSL #20
0002e0 e1800007 ORR r0,r0,r7
0002e4 e38004c0 ORR r0,r0,#0xc0000000
0002e8 e38005a1 ORR r0,r0,#0x28400000
0002ec e5850010 STR r0,[r5,#0x10]
;;;127 (0<<23)|(1<<22)|(dsz<<20)|(tc);
;;;128 //HS,AHB,TC interrupt,whole, SW request mode,relaod off
;;;129 pDMA->DMASKTRIG=(1<<1)|1; //DMA on, SW_TRIG
0002f0 e3a00003 MOV r0,#3
0002f4 e5850020 STR r0,[r5,#0x20]
;;;130
;;;131 Timer_Start(3);//128us resolution
0002f8 e3a00003 MOV r0,#3
0002fc ebfffffe BL Timer_Start
;;;132 while(dmaDone==0);
000300 e1a00000 NOP
|L1.772|
000304 e59f010c LDR r0,|L1.1048|
000308 e5900000 LDR r0,[r0,#0] ; dmaDone
00030c e3500000 CMP r0,#0
000310 0afffffb BEQ |L1.772|
;;;133 time=Timer_Stop();
000314 ebfffffe BL Timer_Stop
000318 e58d0028 STR r0,[sp,#0x28]
;;;134
;;;135 Uart_Printf("DMA transfer done. time=%f, %fMB/S\n",(float)time/ONESEC3, length/((float)time/ONESEC3)/1000000.);
00031c e1a0000a MOV r0,r10
000320 ebfffffe BL _fflt
000324 e58d0008 STR r0,[sp,#8]
000328 e59d0028 LDR r0,[sp,#0x28]
00032c ebfffffe BL _fflt
000330 e58d0000 STR r0,[sp,#0]
000334 e59f1178 LDR r1,|L1.1204|
000338 ebfffffe BL _fdiv
00033c e58d0004 STR r0,[sp,#4]
000340 e59d1008 LDR r1,[sp,#8]
000344 ebfffffe BL _frdiv
000348 e58d000c STR r0,[sp,#0xc]
00034c ebfffffe BL _f2d
000350 e58d0010 STR r0,[sp,#0x10]
000354 e58d1014 STR r1,[sp,#0x14]
000358 e28f0f56 ADR r0,|L1.1208|
00035c e890000c LDMIA r0,{r2,r3}
000360 e59d0010 LDR r0,[sp,#0x10]
000364 ebfffffe BL _ddiv
000368 e58d0020 STR r0,[sp,#0x20]
00036c e58d1024 STR r1,[sp,#0x24]
000370 e59d0028 LDR r0,[sp,#0x28]
000374 ebfffffe BL _fflt
000378 e58d0010 STR r0,[sp,#0x10]
00037c e59f1130 LDR r1,|L1.1204|
000380 ebfffffe BL _fdiv
000384 e58d0014 STR r0,[sp,#0x14]
000388 ebfffffe BL _f2d
00038c e58d0018 STR r0,[sp,#0x18]
000390 e58d101c STR r1,[sp,#0x1c]
000394 e59d0024 LDR r0,[sp,#0x24]
000398 e58d0000 STR r0,[sp,#0]
00039c e1a02001 MOV r2,r1
0003a0 e28f0f46 ADR r0,|L1.1216|
0003a4 e59d1018 LDR r1,[sp,#0x18]
0003a8 e59d3020 LDR r3,[sp,#0x20]
0003ac ebfffffe BL Uart_Printf
;;;136 rINTMSK=BIT_ALLMSK;
0003b0 e3e00000 MVN r0,#0
0003b4 e3a0144a MOV r1,#0x4a000000
0003b8 e5810008 STR r0,[r1,#8]
;;;137
;;;138 for(i=dstAddr;i<dstAddr+length;i+=4)
0003bc e59d4034 LDR r4,[sp,#0x34]
|L1.960|
0003c0 e59d0034 LDR r0,[sp,#0x34]
0003c4 e080000a ADD r0,r0,r10
0003c8 e1500004 CMP r0,r4
0003cc da000008 BLE |L1.1012|
0003d0 ea000001 B |L1.988|
|L1.980|
0003d4 e2844004 ADD r4,r4,#4
0003d8 eafffff8 B |L1.960|
;;;139 {
;;;140 memSum1+=*((U32 *)i)=i^0x55aa5aa5;
|L1.988|
0003dc e59f00bc LDR r0,|L1.1184|
0003e0 e0240000 EOR r0,r4,r0
0003e4 e5840000 STR r0,[r4,#0]
0003e8 e0800009 ADD r0,r0,r9
0003ec e1a09000 MOV r9,r0
;;;141 }
0003f0 eafffff7 B |L1.980|
;;;142
;;;143 Uart_Printf("memSum0=%x,memSum1=%x\n",memSum0,memSum1);
|L1.1012|
0003f4 e1a02009 MOV r2,r9
0003f8 e1a01008 MOV r1,r8
0003fc e28f00e0 ADR r0,|L1.1252|
000400 ebfffffe BL Uart_Printf
;;;144 if(memSum0==memSum1)
000404 e1580009 CMP r8,r9
000408 1a00004a BNE |L1.1336|
;;;145 Uart_Printf("DMA test result--------------------------------------O.K.\n");
00040c e28f00e8 ADR r0,|L1.1276|
000410 ebfffffe BL Uart_Printf
000414 ea000049 B |L1.1344|
|L1.1048|
000418 00000000 DCD ||.bss$2||
|L1.1052|
00041c 414d445b DCB "[DMA"
000420 4d206425 DCB "%d M"
000424 4d324d45 DCB "EM2M"
000428 54204d45 DCB "EM T"
00042c 5d747365 DCB "est]"
000430 0000000a DCB "\n\0\0\0"
|L1.1076|
000434 00000000 DCD Dma0Done
|L1.1080|
000438 31fff000 DCD 0x31fff000
|L1.1084|
00043c 00000000 DCD Dma1Done
|L1.1088|
000440 4b000040 DCD 0x4b000040
|L1.1092|
000444 00000000 DCD Dma2Done
|L1.1096|
000448 4b000080 DCD 0x4b000080
|L1.1100|
00044c 00000000 DCD Dma3Done
|L1.1104|
000450 4b0000c0 DCD 0x4b0000c0
|L1.1108|
000454 25414d44 DCB "DMA%"
000458 38252064 DCB "d %8"
00045c 3e2d6878 DCB "xh->"
000460 68783825 DCB "%8xh"
000464 7a69732c DCB ",siz"
000468 78253d65 DCB "e=%x"
00046c 63742868 DCB "h(tc"
000470 6878253d DCB "=%xh"
000474 73642c29 DCB "),ds"
000478 64253d7a DCB "z=%d"
00047c 7275622c DCB ",bur"
000480 253d7473 DCB "st=%"
000484 00000a64 DCB "d\n\0\0"
|L1.1160|
000488 74696e49 DCB "Init"
00048c 696c6169 DCB "iali"
000490 7420657a DCB "ze t"
000494 73206568 DCB "he s"
000498 0a2e6372 DCB "rc.\n"
00049c 00000000 DCB "\0\0\0\0"
|L1.1184|
0004a0 55aa5aa5 DCD 0x55aa5aa5
|L1.1188|
0004a4 25414d44 DCB "DMA%"
0004a8 74732064 DCB "d st"
0004ac 0a747261 DCB "art\n"
0004b0 00000000 DCB "\0\0\0\0"
|L1.1204|
0004b4 45f42000 DCD 0x45f42000
|L1.1208|
0004b8 00000000 DCFD 0x412e848000000000 ; 1000000.
0004bc 412e8480
|L1.1216|
0004c0 20414d44 DCB "DMA "
0004c4 6e617274 DCB "tran"
0004c8 72656673 DCB "sfer"
0004cc 6e6f6420 DCB " don"
0004d0 74202e65 DCB "e. t"
0004d4 3d656d69 DCB "ime="
0004d8 202c6625 DCB "%f, "
0004dc 424d6625 DCB "%fMB"
0004e0 000a532f DCB "/S\n\0"
|L1.1252|
0004e4 536d656d DCB "memS"
0004e8 3d306d75 DCB "um0="
0004ec 6d2c7825 DCB "%x,m"
0004f0 75536d65 DCB "emSu"
0004f4 253d316d DCB "m1=%"
0004f8 00000a78 DCB "x\n\0\0"
|L1.1276|
0004fc 20414d44 DCB "DMA "
000500 74736574 DCB "test"
000504 73657220 DCB " res"
000508 2d746c75 DCB "ult-"
00050c 2d2d2d2d DCB "----"
000510 2d2d2d2d DCB "----"
000514 2d2d2d2d DCB "----"
000518 2d2d2d2d DCB "----"
00051c 2d2d2d2d DCB "----"
000520 2d2d2d2d DCB "----"
000524 2d2d2d2d DCB "----"
000528 2d2d2d2d DCB "----"
00052c 2d2d2d2d DCB "----"
000530 4b2e4f2d DCB "-O.K"
000534 00000a2e DCB ".\n\0\0"
;;;146 else
;;;147 Uart_Printf("DMA test result--------------------------------------ERROR!!!\n");
|L1.1336|
000538 e28f0008 ADR r0,|L1.1352|
00053c ebfffffe BL Uart_Printf
;;;148
;;;149 }
|L1.1344|
000540 e28dd03c ADD sp,sp,#0x3c
000544 e8bd8ff0 LDMFD sp!,{r4-r11,pc}
|L1.1352|
000548 20414d44 DCB "DMA "
00054c 74736574 DCB "test"
000550 73657220 DCB " res"
000554 2d746c75 DCB "ult-"
000558 2d2d2d2d DCB "----"
00055c 2d2d2d2d DCB "----"
000560 2d2d2d2d DCB "----"
000564 2d2d2d2d DCB "----"
000568 2d2d2d2d DCB "----"
00056c 2d2d2d2d DCB "----"
000570 2d2d2d2d DCB "----"
000574 2d2d2d2d DCB "----"
000578 2d2d2d2d DCB "----"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -