⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dma.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 3 页
字号:
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 + -