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

📄 extdmam.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]

; commandline [-errors .\err\extdmam.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  DmaX1Done PROC
;;;290    static void __irq DmaX1Done(void)
;;;291    {
                  |L1.0|
000000  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;292    	rSUBSRCPND=BIT_SUB_DMA1;
000004  e3a00640          MOV      r0,#0x4000000
000008  e59f103c          LDR      r1,|L1.76|
00000c  e5810018          STR      r0,[r1,#0x18]
;;;293    	ClearPending(BIT_DMA);
000010  e3a00940          MOV      r0,#0x100000
000014  e1c11000          BIC      r1,r1,r0
000018  e5810000          STR      r0,[r1,#0]
00001c  e1c10000          BIC      r0,r1,r0
000020  e5900010          LDR      r0,[r0,#0x10]
000024  e5810010          STR      r0,[r1,#0x10]
000028  e1a00001          MOV      r0,r1
00002c  e5900010          LDR      r0,[r0,#0x10]
;;;294    	ExtdmaDone=1;
000030  e3a00001          MOV      r0,#1
000034  e59f1014          LDR      r1,|L1.80|
000038  e5810000          STR      r0,[r1,#0]  ; ExtdmaDone
;;;295    	Uart_Printf("DMA1 Done!\n");
00003c  e28f0010          ADR      r0,|L1.84|
000040  ebfffffe          BL       _printf
;;;296    }
000044  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
000048  e25ef004          SUBS     pc,lr,#4
                  |L1.76|
00004c  40200000          DCD      0x40200000
                  |L1.80|
000050  0000000c          DCD      ||.bss$2|| + 12
                  |L1.84|
000054  31414d44          DCB      "DMA1"
000058  6e6f4420          DCB      " Don"
00005c  000a2165          DCB      "e!\n\0"
                          ENDP

                  DmaX0Done PROC
;;;279    	
;;;280    {
                  |L1.96|
000060  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;281    	rINTMSK|=BIT_DMA;
000064  e51f0020          LDR      r0,|L1.76|
000068  e5900008          LDR      r0,[r0,#8]
00006c  e3800940          ORR      r0,r0,#0x100000
000070  e51f102c          LDR      r1,|L1.76|
000074  e5810008          STR      r0,[r1,#8]
;;;282    	rINTSUBMSK|=BIT_SUB_DMA0;
000078  e1a00001          MOV      r0,r1
00007c  e590001c          LDR      r0,[r0,#0x1c]
000080  e3800780          ORR      r0,r0,#0x2000000
000084  e581001c          STR      r0,[r1,#0x1c]
;;;283    	rSUBSRCPND=BIT_SUB_DMA0;
000088  e3a00780          MOV      r0,#0x2000000
00008c  e1c11000          BIC      r1,r1,r0
000090  e5810018          STR      r0,[r1,#0x18]
;;;284    	ClearPending(BIT_DMA);
000094  e3a00940          MOV      r0,#0x100000
000098  e1c11000          BIC      r1,r1,r0
00009c  e5810000          STR      r0,[r1,#0]
0000a0  e1c10000          BIC      r0,r1,r0
0000a4  e5900010          LDR      r0,[r0,#0x10]
0000a8  e5810010          STR      r0,[r1,#0x10]
0000ac  e1a00001          MOV      r0,r1
0000b0  e5900010          LDR      r0,[r0,#0x10]
;;;285    	ExtdmaDone=1;
0000b4  e3a00001          MOV      r0,#1
0000b8  e51f1070          LDR      r1,|L1.80|
0000bc  e5810000          STR      r0,[r1,#0]  ; ExtdmaDone
;;;286    	rDMASKTRIG0|=(1<<2);
0000c0  e59f001c          LDR      r0,|L1.228|
0000c4  e5900020          LDR      r0,[r0,#0x20]
0000c8  e3800004          ORR      r0,r0,#4
0000cc  e59f1010          LDR      r1,|L1.228|
0000d0  e5810020          STR      r0,[r1,#0x20]
;;;287    	Uart_Printf("DMA0 Done!\n");
0000d4  e28f000c          ADR      r0,|L1.232|
0000d8  ebfffffe          BL       _printf
;;;288    }
0000dc  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
0000e0  e25ef004          SUBS     pc,lr,#4
                  |L1.228|
0000e4  40400000          DCD      0x40400000
                  |L1.232|
0000e8  30414d44          DCB      "DMA0"
0000ec  6e6f4420          DCB      " Don"
0000f0  000a2165          DCB      "e!\n\0"
                          ENDP

                  extM2M_test PROC
;;;96     void extM2M_test(U32 ch, U32 s_addr, U32 d_addr)
;;;97     {
0000f4  e92d4ff8          STMFD    sp!,{r3-r11,lr}
0000f8  e1a06000          MOV      r6,r0
0000fc  e1a07001          MOV      r7,r1
000100  e1a05002          MOV      r5,r2
;;;98         U8 cxdma=0;
000104  e3a09000          MOV      r9,#0
;;;99     	U32 i;
;;;100    	int trscount;
;;;101    	volatile U32 memSum0=0, memSum1=0;
000108  e3a00000          MOV      r0,#0
00010c  e1a0a000          MOV      r10,r0
000110  e3a00000          MOV      r0,#0
000114  e1a0b000          MOV      r11,r0
;;;102    
;;;103    	if(extDMAdsz==0)
000118  e59f03b8          LDR      r0,|L1.1240|
00011c  e5900000          LDR      r0,[r0,#0]  ; extDMAdsz
000120  e3500000          CMP      r0,#0
000124  1a00000a          BNE      |L1.340|
;;;104    	     trscount=extDMAtc*(extDMAburst ? 4:1)*1;
000128  e59f03ac          LDR      r0,|L1.1244|
00012c  e5900000          LDR      r0,[r0,#0]  ; extDMAburst
000130  e3500000          CMP      r0,#0
000134  0a000001          BEQ      |L1.320|
000138  e3a00004          MOV      r0,#4
00013c  ea000000          B        |L1.324|
                  |L1.320|
000140  e3a00001          MOV      r0,#1
                  |L1.324|
000144  e59f1394          LDR      r1,|L1.1248|
000148  e5911000          LDR      r1,[r1,#0]  ; extDMAtc
00014c  e0080091          MUL      r8,r1,r0
000150  ea00001e          B        |L1.464|
;;;105    	else if(extDMAdsz==1)
                  |L1.340|
000154  e59f037c          LDR      r0,|L1.1240|
000158  e5900000          LDR      r0,[r0,#0]  ; extDMAdsz
00015c  e3500001          CMP      r0,#1
000160  1a00000b          BNE      |L1.404|
;;;106    	     trscount=extDMAtc*(extDMAburst ? 4:1)*2;
000164  e59f0370          LDR      r0,|L1.1244|
000168  e5900000          LDR      r0,[r0,#0]  ; extDMAburst
00016c  e3500000          CMP      r0,#0
000170  0a000001          BEQ      |L1.380|
000174  e3a00004          MOV      r0,#4
000178  ea000000          B        |L1.384|
                  |L1.380|
00017c  e3a00001          MOV      r0,#1
                  |L1.384|
000180  e59f1358          LDR      r1,|L1.1248|
000184  e5911000          LDR      r1,[r1,#0]  ; extDMAtc
000188  e0000091          MUL      r0,r1,r0
00018c  e1a08080          MOV      r8,r0,LSL #1
000190  ea00000e          B        |L1.464|
;;;107    	else if(extDMAdsz==2)
                  |L1.404|
000194  e59f033c          LDR      r0,|L1.1240|
000198  e5900000          LDR      r0,[r0,#0]  ; extDMAdsz
00019c  e3500002          CMP      r0,#2
0001a0  1a00000a          BNE      |L1.464|
;;;108    	     trscount=extDMAtc*(extDMAburst ? 4:1)*4;
0001a4  e59f0330          LDR      r0,|L1.1244|
0001a8  e5900000          LDR      r0,[r0,#0]  ; extDMAburst
0001ac  e3500000          CMP      r0,#0
0001b0  0a000001          BEQ      |L1.444|
0001b4  e3a00004          MOV      r0,#4
0001b8  ea000000          B        |L1.448|
                  |L1.444|
0001bc  e3a00001          MOV      r0,#1
                  |L1.448|
0001c0  e59f1318          LDR      r1,|L1.1248|
0001c4  e5911000          LDR      r1,[r1,#0]  ; extDMAtc
0001c8  e0000091          MUL      r0,r1,r0
0001cc  e1a08100          MOV      r8,r0,LSL #2
;;;109    
;;;110    /*	
;;;111    	for(i=s_addr;i<s_addr+trscount;i+=4)
;;;112    	{
;;;113    		// *((U32 *)i)= i^0x55aa5aa5;
;;;114    		 *((U32 *)i)= i;
;;;115    		Uart_Printf("source data = %x\n",*((U32 *)i));
;;;116    		//memSum0+=*((U32 *)i);
;;;117    	}
;;;118    */
;;;119    /*
;;;120    	for(i=0;i<trscount;i++)
;;;121    	{
;;;122    		*((U8 *)(i+s_addr))= ++cxdma;
;;;123    		Uart_Printf("source data = %x\n",*((U8 *)(s_addr+i)));
;;;124    	}
;;;125    */
;;;126    
;;;127    	//initializing the destination memory....
;;;128    	for(i=0;i<32;i++)
                  |L1.464|
0001d0  e3a04000          MOV      r4,#0
                  |L1.468|
0001d4  e3540020          CMP      r4,#0x20
0001d8  2a000005          BCS      |L1.500|
0001dc  ea000001          B        |L1.488|
                  |L1.480|
0001e0  e2844001          ADD      r4,r4,#1
0001e4  eafffffa          B        |L1.468|
;;;129    	{
;;;130    		*((U8 *)(i+d_addr))= 0xff;
                  |L1.488|
0001e8  e3a000ff          MOV      r0,#0xff
0001ec  e7c40005          STRB     r0,[r4,r5]
;;;131    	}
0001f0  eafffffa          B        |L1.480|
;;;132    /*
;;;133    	for(i=0;i<trscount;i++)
;;;134    	{
;;;135    		*((U8 *)(i+s_addr))= i;
;;;136    	}
;;;137    */
;;;138    
;;;139    	Uart_Printf("ch=%x\n",ch);
                  |L1.500|
0001f4  e1a01006          MOV      r1,r6
0001f8  e28f0fb9          ADR      r0,|L1.1252|
0001fc  ebfffffe          BL       _printf
;;;140    	switch(ch)
000200  e3560000          CMP      r6,#0
000204  0a000002          BEQ      |L1.532|
000208  e3560001          CMP      r6,#1
00020c  1a00001a          BNE      |L1.636|
000210  ea00000c          B        |L1.584|
;;;141    		{
;;;142    		case 0: 
;;;143    			pISR_DMA = (unsigned)DmaX0Done;
                  |L1.532|
000214  e59f02d0          LDR      r0,|L1.1260|
000218  e59f12d0          LDR      r1,|L1.1264|
00021c  e5810f70          STR      r0,[r1,#0xf70]
;;;144    			rINTSUBMSK&=~(BIT_SUB_DMA0);
000220  e51f01dc          LDR      r0,|L1.76|
000224  e590001c          LDR      r0,[r0,#0x1c]
000228  e3c00780          BIC      r0,r0,#0x2000000
00022c  e51f11e8          LDR      r1,|L1.76|
000230  e581001c          STR      r0,[r1,#0x1c]
;;;145    			rINTMSK &= ~(BIT_DMA);
000234  e1a00001          MOV      r0,r1
000238  e5900008          LDR      r0,[r0,#8]
00023c  e3c00940          BIC      r0,r0,#0x100000
000240  e5810008          STR      r0,[r1,#8]
;;;146    			break;
000244  ea00000d          B        |L1.640|
;;;147    		case 1:
;;;148    			pISR_DMA = (unsigned)DmaX1Done;
                  |L1.584|
000248  e59f02a4          LDR      r0,|L1.1268|
00024c  e59f129c          LDR      r1,|L1.1264|
000250  e5810f70          STR      r0,[r1,#0xf70]
;;;149    			rINTSUBMSK&=~(BIT_SUB_DMA1);
000254  e51f0210          LDR      r0,|L1.76|
000258  e590001c          LDR      r0,[r0,#0x1c]
00025c  e3c00640          BIC      r0,r0,#0x4000000
000260  e51f121c          LDR      r1,|L1.76|
000264  e581001c          STR      r0,[r1,#0x1c]
;;;150    			rINTMSK &= ~(BIT_DMA);			
000268  e1a00001          MOV      r0,r1
00026c  e5900008          LDR      r0,[r0,#8]
000270  e3c00940          BIC      r0,r0,#0x100000
000274  e5810008          STR      r0,[r1,#8]
;;;151    			break;
000278  ea000000          B        |L1.640|
;;;152    		default:
;;;153    			break;
                  |L1.636|
00027c  e1a00000          NOP      
;;;154    		}	
;;;155    
;;;156    	ExtdmaDone=0;
                  |L1.640|
000280  e3a00000          MOV      r0,#0
000284  e51f123c          LDR      r1,|L1.80|
000288  e5810000          STR      r0,[r1,#0]  ; ExtdmaDone
;;;157    
;;;158    	
;;;159    	Uart_Printf("DMA%d start\n",ch);
00028c  e1a01006          MOV      r1,r6
000290  e28f0f98          ADR      r0,|L1.1272|
000294  ebfffffe          BL       _printf
;;;160    	Uart_Printf("extDMAburst:%x, extDMAdsz:%x, extDMAtc:%x\n", extDMAburst, extDMAdsz, extDMAtc);
000298  e59f0240          LDR      r0,|L1.1248|
00029c  e5903000          LDR      r3,[r0,#0]  ; extDMAtc
0002a0  e59f0230          LDR      r0,|L1.1240|
0002a4  e5902000          LDR      r2,[r0,#0]  ; extDMAdsz
0002a8  e59f022c          LDR      r0,|L1.1244|
0002ac  e5901000          LDR      r1,[r0,#0]  ; extDMAburst
0002b0  e28f0f94          ADR      r0,|L1.1288|
0002b4  ebfffffe          BL       _printf
;;;161    	
;;;162    	switch(ch)
0002b8  e3560000          CMP      r6,#0
0002bc  0a000002          BEQ      |L1.716|
0002c0  e3560001          CMP      r6,#1
0002c4  1a000036          BNE      |L1.932|
0002c8  ea00001a          B        |L1.824|
;;;163    		{
;;;164    		case 0:
;;;165    			rDISRC0=s_addr;
                  |L1.716|
0002cc  e51f01f0          LDR      r0,|L1.228|
0002d0  e5807000          STR      r7,[r0,#0]
;;;166    			rDISRCC0=(0<<1)|(0<<0);

⌨️ 快捷键说明

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