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

📄 dma2.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;112    */
;;;113        Uart_Printf("#");
000330  e28f0f6d          ADR      r0,|L1.1260|
000334  ebfffffe          BL       _printf
;;;114    
;;;115        switch(ch)
000338  e59d0014          LDR      r0,[sp,#0x14]
00033c  e3500000          CMP      r0,#0
000340  0a000006          BEQ      |L1.864|
000344  e3500001          CMP      r0,#1
000348  0a00000d          BEQ      |L1.900|
00034c  e3500002          CMP      r0,#2
000350  0a000014          BEQ      |L1.936|
000354  e3500003          CMP      r0,#3
000358  1a000028          BNE      |L1.1024|
00035c  ea00001a          B        |L1.972|
;;;116        {
;;;117        case 0:
;;;118            //DMA Ch 1
;;;119    		//DMA0123_M2M(1,_NONCACHE_STARTADDRESS+0x20000,_NONCACHE_STARTADDRESS+0xa0000,0x40000,1,0); //halfword,single
;;;120    		DMA0123_M2M(1, _NONCACHE_STARTADDRESS+0x40000, _NONCACHE_STARTADDRESS + 0x140000, 0xfffff,1, 0);
                  |L1.864|
000360  e3a03000          MOV      r3,#0
000364  e3a02001          MOV      r2,#1
000368  e88d000c          STMIA    sp,{r2,r3}
00036c  e0623a02          RSB      r3,r2,r2,LSL #20
000370  e59f2178          LDR      r2,|L1.1264|
000374  e2421940          SUB      r1,r2,#0x100000
000378  e3a00001          MOV      r0,#1
00037c  ebfffffe          BL       DMA0123_M2M
;;;121    		break;
000380  ea00001f          B        |L1.1028|
;;;122        case 1:
;;;123        	//DMA Ch 2
;;;124        	//DMA0123_M2M(2,_NONCACHE_STARTADDRESS+0x40000,_NONCACHE_STARTADDRESS+0xc0000,0x20000,2,0); //word,single
;;;125    		DMA0123_M2M(2, _NONCACHE_STARTADDRESS+0x80000, _NONCACHE_STARTADDRESS + 0x180000, 0xfffff,2, 0);
                  |L1.900|
000384  e3a03000          MOV      r3,#0
000388  e3a02002          MOV      r2,#2
00038c  e88d000c          STMIA    sp,{r2,r3}
000390  e59f315c          LDR      r3,|L1.1268|
000394  e59f215c          LDR      r2,|L1.1272|
000398  e2421940          SUB      r1,r2,#0x100000
00039c  e3a00002          MOV      r0,#2
0003a0  ebfffffe          BL       DMA0123_M2M
;;;126    		break;
0003a4  ea000016          B        |L1.1028|
;;;127        case 2:
;;;128            //DMA Ch 3
;;;129            //DMA0123_M2M(3,_NONCACHE_STARTADDRESS+0x60000,_NONCACHE_STARTADDRESS+0xe0000,0x8000,2,1); //word,burst
;;;130       		DMA0123_M2M(3, _NONCACHE_STARTADDRESS+0xC0000, _NONCACHE_STARTADDRESS + 0x1C0000, 0xfffff,2, 1);
                  |L1.936|
0003a8  e3a03001          MOV      r3,#1
0003ac  e3a02002          MOV      r2,#2
0003b0  e88d000c          STMIA    sp,{r2,r3}
0003b4  e0633982          RSB      r3,r3,r2,LSL #19
0003b8  e59f213c          LDR      r2,|L1.1276|
0003bc  e2421940          SUB      r1,r2,#0x100000
0003c0  e3a00003          MOV      r0,#3
0003c4  ebfffffe          BL       DMA0123_M2M
;;;131    		break;
0003c8  ea00000d          B        |L1.1028|
;;;132        case 3:
;;;133        	rDMASKTRIG0=(1<<1)|1;
                  |L1.972|
0003cc  e3a00003          MOV      r0,#3
0003d0  e59f1128          LDR      r1,|L1.1280|
0003d4  e5810020          STR      r0,[r1,#0x20]
;;;134        	rDMASKTRIG1=(1<<1)|1;
0003d8  e3a00003          MOV      r0,#3
0003dc  e2811940          ADD      r1,r1,#0x100000
0003e0  e5810020          STR      r0,[r1,#0x20]
;;;135        	rDMASKTRIG2=(1<<1)|1;
0003e4  e3a00003          MOV      r0,#3
0003e8  e0211a00          EOR      r1,r1,r0,LSL #20
0003ec  e5810020          STR      r0,[r1,#0x20]
;;;136        	rDMASKTRIG3=(1<<1)|1;
0003f0  e3a00003          MOV      r0,#3
0003f4  e1811a00          ORR      r1,r1,r0,LSL #20
0003f8  e5810020          STR      r0,[r1,#0x20]
;;;137    	break;	
0003fc  ea000000          B        |L1.1028|
;;;138    	default:
;;;139    		break;
                  |L1.1024|
000400  e1a00000          NOP      
;;;140        }
;;;141        
;;;142    	for(i=srcAddr;i<(srcAddr+length);i+=4)
                  |L1.1028|
000404  e1a04007          MOV      r4,r7
                  |L1.1032|
000408  e59d1010          LDR      r1,[sp,#0x10]
00040c  e0870001          ADD      r0,r7,r1
000410  e1500004          CMP      r0,r4
000414  da000006          BLE      |L1.1076|
000418  ea000001          B        |L1.1060|
                  |L1.1052|
00041c  e2844004          ADD      r4,r4,#4
000420  eafffff8          B        |L1.1032|
;;;143    		{
;;;144    		memSum0+=*((U32 *)i);
                  |L1.1060|
000424  e5940000          LDR      r0,[r4,#0]
000428  e0800009          ADD      r0,r0,r9
00042c  e1a09000          MOV      r9,r0
;;;145    		}
000430  eafffff9          B        |L1.1052|
;;;146    
;;;147    	while(dmaDone!=0xf);
                  |L1.1076|
000434  e1a00000          NOP      
                  |L1.1080|
000438  e51f02f4          LDR      r0,|L1.332|
00043c  e5900000          LDR      r0,[r0,#0]  ; dmaDone
000440  e350000f          CMP      r0,#0xf
000444  1afffffb          BNE      |L1.1080|
;;;148      
;;;149        rINTMSK=BIT_ALLMSK;
000448  e3e00000          MVN      r0,#0
00044c  e51f130c          LDR      r1,|L1.328|
000450  e5810008          STR      r0,[r1,#8]
;;;150        rINTSUBMSK=BIT_SUB_ALLMSK;
000454  e3e004e0          MVN      r0,#0xe0000000
000458  e1c11440          BIC      r1,r1,r0,ASR #8
00045c  e581001c          STR      r0,[r1,#0x1c]
;;;151    
;;;152    	
;;;153    	for(i=dstAddr;i<dstAddr+length;i+=4)
000460  e1a04008          MOV      r4,r8
                  |L1.1124|
000464  e59d1010          LDR      r1,[sp,#0x10]
000468  e0880001          ADD      r0,r8,r1
00046c  e1500004          CMP      r0,r4
000470  da000006          BLE      |L1.1168|
000474  ea000001          B        |L1.1152|
                  |L1.1144|
000478  e2844004          ADD      r4,r4,#4
00047c  eafffff8          B        |L1.1124|
;;;154    		{
;;;155    		memSum1+=*((U32 *)i);
                  |L1.1152|
000480  e5940000          LDR      r0,[r4,#0]
000484  e080000a          ADD      r0,r0,r10
000488  e1a0a000          MOV      r10,r0
;;;156    		}
00048c  eafffff9          B        |L1.1144|
;;;157    
;;;158        Uart_Printf("\nDMA%d %8xh->%8xh,size=%xh(tc=%xh),dsz=%d,burst=%d\n",ch,srcAddr,dstAddr,length,tc,dsz,burst);
                  |L1.1168|
000490  e59d0010          LDR      r0,[sp,#0x10]
000494  e59d1020          LDR      r1,[sp,#0x20]
000498  e1a03008          MOV      r3,r8
00049c  e1a02007          MOV      r2,r7
0004a0  e88d0843          STMIA    sp,{r0,r1,r6,r11}
0004a4  e28f0058          ADR      r0,|L1.1284|
0004a8  e59d1014          LDR      r1,[sp,#0x14]
0004ac  ebfffffe          BL       _printf
;;;159        Uart_Printf("memSum0=%x,memSum1=%x\n",memSum0,memSum1);
0004b0  e1a0200a          MOV      r2,r10
0004b4  e1a01009          MOV      r1,r9
0004b8  e28f0078          ADR      r0,|L1.1336|
0004bc  ebfffffe          BL       _printf
;;;160        if(memSum0==memSum1)
0004c0  e159000a          CMP      r9,r10
0004c4  1a000002          BNE      |L1.1236|
;;;161        	Uart_Printf("DMA test result--------------------------------------O.K.\n");
0004c8  e28f0080          ADR      r0,|L1.1360|
0004cc  ebfffffe          BL       _printf
0004d0  ea000001          B        |L1.1244|
;;;162        else 
;;;163        	Uart_Printf("DMA test result--------------------------------------ERROR!!!\n");
                  |L1.1236|
0004d4  e28f00b0          ADR      r0,|L1.1420|
0004d8  ebfffffe          BL       _printf
;;;164    
;;;165    }
                  |L1.1244|
0004dc  e28dd024          ADD      sp,sp,#0x24
0004e0  e8bd8ff0          LDMFD    sp!,{r4-r11,pc}
                  |L1.1252|
0004e4  00000000          DCD      WorstDmaDone
                  |L1.1256|
0004e8  13fff000          DCD      0x13fff000
                  |L1.1260|
0004ec  00000023          DCB      "#\0\0\0"
                  |L1.1264|
0004f0  11140000          DCD      0x11140000
                  |L1.1268|
0004f4  000fffff          DCD      0x000fffff
                  |L1.1272|
0004f8  11180000          DCD      0x11180000
                  |L1.1276|
0004fc  111c0000          DCD      0x111c0000
                  |L1.1280|
000500  40400000          DCD      0x40400000
                  |L1.1284|
000504  414d440a          DCB      "\nDMA"
000508  25206425          DCB      "%d %"
00050c  2d687838          DCB      "8xh-"
000510  7838253e          DCB      ">%8x"
000514  69732c68          DCB      "h,si"
000518  253d657a          DCB      "ze=%"
00051c  74286878          DCB      "xh(t"
000520  78253d63          DCB      "c=%x"
000524  642c2968          DCB      "h),d"
000528  253d7a73          DCB      "sz=%"
00052c  75622c64          DCB      "d,bu"
000530  3d747372          DCB      "rst="
000534  000a6425          DCB      "%d\n\0"
                  |L1.1336|
000538  536d656d          DCB      "memS"
00053c  3d306d75          DCB      "um0="
000540  6d2c7825          DCB      "%x,m"
000544  75536d65          DCB      "emSu"
000548  253d316d          DCB      "m1=%"
00054c  00000a78          DCB      "x\n\0\0"
                  |L1.1360|
000550  20414d44          DCB      "DMA "
000554  74736574          DCB      "test"
000558  73657220          DCB      " res"
00055c  2d746c75          DCB      "ult-"
000560  2d2d2d2d          DCB      "----"
000564  2d2d2d2d          DCB      "----"
000568  2d2d2d2d          DCB      "----"
00056c  2d2d2d2d          DCB      "----"
000570  2d2d2d2d          DCB      "----"
000574  2d2d2d2d          DCB      "----"
000578  2d2d2d2d          DCB      "----"
00057c  2d2d2d2d          DCB      "----"
000580  2d2d2d2d          DCB      "----"
000584  4b2e4f2d          DCB      "-O.K"
000588  00000a2e          DCB      ".\n\0\0"
                  |L1.1420|
00058c  20414d44          DCB      "DMA "
000590  74736574          DCB      "test"
000594  73657220          DCB      " res"
000598  2d746c75          DCB      "ult-"
00059c  2d2d2d2d          DCB      "----"
0005a0  2d2d2d2d          DCB      "----"
0005a4  2d2d2d2d          DCB      "----"
0005a8  2d2d2d2d          DCB      "----"
0005ac  2d2d2d2d          DCB      "----"
0005b0  2d2d2d2d          DCB      "----"
0005b4  2d2d2d2d          DCB      "----"
0005b8  2d2d2d2d          DCB      "----"
0005bc  2d2d2d2d          DCB      "----"
0005c0  5252452d          DCB      "-ERR"
0005c4  2121524f          DCB      "OR!!"
0005c8  00000a21          DCB      "!\n\0\0"
                          ENDP

                  Test_DMAWorst PROC
;;;37     void Test_DMAWorst(void)
;;;38     {
0005cc  e92d401c          STMFD    sp!,{r2-r4,lr}
;;;39         int i;
;;;40     
;;;41         Uart_Printf("[DMA0123 MEM2MEM Worst Test]\n");
0005d0  e28f0058          ADR      r0,|L1.1584|
0005d4  ebfffffe          BL       _printf
;;;42         dmaDone=0;
0005d8  e3a00000          MOV      r0,#0
0005dc  e51f1498          LDR      r1,|L1.332|
0005e0  e5810000          STR      r0,[r1,#0]  ; dmaDone
;;;43     
;;;44         for(i=_NONCACHE_STARTADDRESS;i<_NONCACHE_STARTADDRESS+0x800000;i+=4)
0005e4  e3a04544          MOV      r4,#0x11000000
                  |L1.1512|
0005e8  e3540546          CMP      r4,#0x11800000
0005ec  aa000006          BGE      |L1.1548|
0005f0  ea000001          B        |L1.1532|
                  |L1.1524|
0005f4  e2844004          ADD      r4,r4,#4
0005f8  eafffffa          B        |L1.1512|
;;;45         {
;;;46         	*((U32 *)i)=i^0x55aa5aa5;
                  |L1.1532|
0005fc  e59f004c          LDR      r0,|L1.1616|
000600  e0240000          EOR      r0,r4,r0
000604  e5840000          STR      r0,[r4,#0]
;;;47     		//*((U32 *)i)=i;
;;;48         }
000608  eafffff9          B        |L1.1524|
;;;49     
;;;50         //Start DMA ch0,1,2,3 simultaneously.
;;;51         //DMA0123_M2M(0,_NONCACHE_STARTADDRESS,_NONCACHE_STARTADDRESS+0x80000,0x80000,0,0); //byte,single
;;;52        	DMA0123_M2M(0, _NONCACHE_STARTADDRESS, _NONCACHE_STARTADDRESS + 0x100000, 0xfffff,0, 0);
                  |L1.1548|
00060c  e3a03000          MOV      r3,#0
000610  e58d3000          STR      r3,[sp,#0]
000614  e58d3004          STR      r3,[sp,#4]
000618  e51f312c          LDR      r3,|L1.1268|
00061c  e59f2030          LDR      r2,|L1.1620|
000620  e3a01544          MOV      r1,#0x11000000
000624  e3a00000          MOV      r0,#0
000628  ebfffffe          BL       DMA0123_M2M
;;;53     }
00062c  e8bd801c          LDMFD    sp!,{r2-r4,pc}
                  |L1.1584|
000630  414d445b          DCB      "[DMA"
000634  33323130          DCB      "0123"
000638  4d454d20          DCB      " MEM"
00063c  4d454d32          DCB      "2MEM"
000640  726f5720          DCB      " Wor"
000644  54207473          DCB      "st T"
000648  5d747365          DCB      "est]"
00064c  0000000a          DCB      "\n\0\0\0"
                  |L1.1616|
000650  55aa5aa5          DCD      0x55aa5aa5
                  |L1.1620|
000654  11100000          DCD      0x11100000
                          ENDP



                          AREA ||.bss||, NOINIT, ALIGN=2

                  dmaDone
                  ||.bss$2||
                          % 4


        END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -