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

📄 extdmas.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

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

                          AREA ||.text||, CODE, READONLY

                  Test_Dmareq PROC
;;;16     void Test_Dmareq(void)
;;;17     {
                  |L1.0|
000000  e92d40f8          STMFD    sp!,{r3-r7,lr}
;;;18     	int i, ack_count, total_count,c;
;;;19     	rGPCON_U=(rGPCON_U&~(0xcc00))|(0x0<<14)|(0x1<<10);//ch-0
000004  e59f0178          LDR      r0,|L1.388|
000008  e5900000          LDR      r0,[r0,#0]
00000c  e3c00ccc          BIC      r0,r0,#0xcc00
000010  e3800e40          ORR      r0,r0,#0x400
000014  e59f1168          LDR      r1,|L1.388|
000018  e5810000          STR      r0,[r1,#0]
;;;20     //	rGPCON_U=(rGPCON_U&~(0x33000))|(0x0<<16)|(0x1<<12);//ch-1
;;;21     	rGPDAT=(1<<24);//ch-0
00001c  e3a00740          MOV      r0,#0x1000000
000020  e1c11000          BIC      r1,r1,r0
000024  e581000c          STR      r0,[r1,#0xc]
;;;22     //	rGPDAT=(1<<25);//ch-1
;;;23     
;;;24     	Uart_Printf("1.byte single\n2.halfword single\n3.word single\n4.byte burst\n5.halfword burst\n6.word burst\n"); 
000028  e59f0158          LDR      r0,|L1.392|
00002c  ebfffffe          BL       _printf
;;;25     	Uart_Printf("select mode same as master board: ");
000030  e28f0f55          ADR      r0,|L1.396|
000034  ebfffffe          BL       _printf
;;;26     	c = Uart_Getch();
000038  ebfffffe          BL       Uart_Getch
00003c  e1a07000          MOV      r7,r0
;;;27     	switch(c)
000040  e2470031          SUB      r0,r7,#0x31
000044  e3500005          CMP      r0,#5
000048  908ff100          ADDLS    pc,pc,r0,LSL #2
00004c  ea00001d          B        |L1.200|
000050  ea000004          B        |L1.104|
000054  ea000007          B        |L1.120|
000058  ea00000a          B        |L1.136|
00005c  ea00000d          B        |L1.152|
000060  ea000010          B        |L1.168|
000064  ea000013          B        |L1.184|
;;;28     			{
;;;29     			case '1':
;;;30     				Uart_Printf("byte single transfer\n");
                  |L1.104|
000068  e28f0f50          ADR      r0,|L1.432|
00006c  ebfffffe          BL       _printf
;;;31     				//total_count=0xfffff;
;;;32     				total_count=32;
000070  e3a05020          MOV      r5,#0x20
;;;33     				break;
000074  ea000014          B        |L1.204|
;;;34     			case '2':
;;;35     				Uart_Printf("halfword single transfer\n");
                  |L1.120|
000078  e28f0f52          ADR      r0,|L1.456|
00007c  ebfffffe          BL       _printf
;;;36     				total_count=16;
000080  e3a05010          MOV      r5,#0x10
;;;37     				//total_count=0xfffff;
;;;38     				break;
000084  ea000010          B        |L1.204|
;;;39     			case '3':
;;;40     				Uart_Printf("word single transfer\n");
                  |L1.136|
000088  e28f0f4f          ADR      r0,|L1.460|
00008c  ebfffffe          BL       _printf
;;;41     				total_count=8;
000090  e3a05008          MOV      r5,#8
;;;42     				//total_count=0xfffff;
;;;43     				break;			
000094  ea00000c          B        |L1.204|
;;;44     			case '4':
;;;45     				Uart_Printf("byte burst transfer\n");
                  |L1.152|
000098  e28f0f51          ADR      r0,|L1.484|
00009c  ebfffffe          BL       _printf
;;;46     				total_count=8;
0000a0  e3a05008          MOV      r5,#8
;;;47     				//total_count=0xfffff;
;;;48     				break;
0000a4  ea000008          B        |L1.204|
;;;49     			case '5':
;;;50     				Uart_Printf("halfword burst transfer\n");
                  |L1.168|
0000a8  e28f0f53          ADR      r0,|L1.508|
0000ac  ebfffffe          BL       _printf
;;;51     				total_count=4;
0000b0  e3a05004          MOV      r5,#4
;;;52     				//total_count=0xfffff;
;;;53     				break;
0000b4  ea000004          B        |L1.204|
;;;54     			case '6':
;;;55     				Uart_Printf("word burst transfer\n");
                  |L1.184|
0000b8  e28f0f50          ADR      r0,|L1.512|
0000bc  ebfffffe          BL       _printf
;;;56     				total_count=2;
0000c0  e3a05002          MOV      r5,#2
;;;57     				//total_count=0xfffff;
;;;58     				break;
0000c4  ea000000          B        |L1.204|
;;;59     			default:
;;;60     				break;
                  |L1.200|
0000c8  e1a00000          NOP      
;;;61     			}
;;;62     
;;;63     
;;;64     	Uart_Printf("Setting a master board\n");
                  |L1.204|
0000cc  e28f0f51          ADR      r0,|L1.536|
0000d0  ebfffffe          BL       _printf
;;;65     	Uart_Printf("Enter any key\n");
0000d4  e28f0f55          ADR      r0,|L1.560|
0000d8  ebfffffe          BL       _printf
;;;66     	rGPDAT=(1<<24);//ch-0
0000dc  e3a00740          MOV      r0,#0x1000000
0000e0  e59f109c          LDR      r1,|L1.388|
0000e4  e581000c          STR      r0,[r1,#0xc]
;;;67     	Uart_Getch();
0000e8  ebfffffe          BL       Uart_Getch
;;;68     	ack_count=0;
0000ec  e3a06000          MOV      r6,#0
;;;69     
;;;70     
;;;71     /////////////////Handshake whole///////////////// 
;;;72     /*
;;;73     	rGPDAT=(0<<24);//ch-0
;;;74     	while(rGPDAT&(1<<26));
;;;75     //	for(i=0;i<11;i++);
;;;76     	for(i=0;i<5;i++);
;;;77     	rGPDAT=(1<<24);//ch-0
;;;78     	
;;;79     */
;;;80     /////////////////Demand single////////////////////
;;;81     /*
;;;82     	rGPDAT&=~(1<<24);//ch-0
;;;83         while(1)
;;;84         	{
;;;85     		if(Uart_GetKey())
;;;86     			break;
;;;87         	}
;;;88     
;;;89     	rGPDAT=(1<<24);//ch-0
;;;90     */
;;;91     
;;;92     /////////////////Handshake single///////////////// 	
;;;93     /*
;;;94     	for(i=0; i<32; i++)//ch-0
;;;95     	{
;;;96     		rGPDAT=(0<<24);//ch-0
;;;97     		while(rGPDAT&(1<<26));
;;;98     		Uart_Printf("%dth ack~~!!\n", i);
;;;99     		rGPDAT=(0x1<<24);
;;;100    		while(!(rGPDAT&(1<<26)));
;;;101    	}
;;;102    */
;;;103    
;;;104    //////////////////////////////////////////////////////////////////////////////
;;;105    //Single Handshake mode
;;;106    
;;;107        //while(1)//ch-0
;;;108        while(ack_count<total_count)
0000f0  e1a00000          NOP      
                  |L1.244|
0000f4  e1560005          CMP      r6,r5
0000f8  aa000020          BGE      |L1.384|
;;;109    	{
;;;110    		//Uart_Printf("If you want to transfer, then press any key, %dth iteration.. \n", ack_count);
;;;111    		//Uart_Getch();
;;;112    		rGPDAT=(0<<24);//ch-0
0000fc  e3a00000          MOV      r0,#0
000100  e59f107c          LDR      r1,|L1.388|
000104  e581000c          STR      r0,[r1,#0xc]
;;;113    		while(rGPDAT&(1<<26));
000108  e1a00000          NOP      
                  |L1.268|
00010c  e59f0070          LDR      r0,|L1.388|
000110  e590000c          LDR      r0,[r0,#0xc]
000114  e3100640          TST      r0,#0x4000000
000118  1afffffb          BNE      |L1.268|
;;;114    		for(i=0;i<5;i++);
00011c  e3a04000          MOV      r4,#0
                  |L1.288|
000120  e3540005          CMP      r4,#5
000124  aa000001          BGE      |L1.304|
000128  e2844001          ADD      r4,r4,#1
00012c  eafffffb          B        |L1.288|
;;;115    		rGPDAT=(0x1<<24);
                  |L1.304|
000130  e3a00740          MOV      r0,#0x1000000
000134  e59f1048          LDR      r1,|L1.388|
000138  e581000c          STR      r0,[r1,#0xc]
;;;116    		ack_count++;
00013c  e2866001          ADD      r6,r6,#1
;;;117    //		Uart_Printf("%dth ack~~!!\n", ack_count);
;;;118    		//if(ack_count==total_count) break;
;;;119    		//rGPDAT=(0x1<<24);
;;;120    		//rGPDAT=(0x1<<24);
;;;121    		while(!(rGPDAT&(1<<26)))
000140  e1a00000          NOP      
                  |L1.324|
000144  e59f0038          LDR      r0,|L1.388|
000148  e590000c          LDR      r0,[r0,#0xc]
00014c  e3100640          TST      r0,#0x4000000
000150  1a000004          BNE      |L1.360|
;;;122    		{
;;;123    			if(Uart_GetKey()!=0)break;
000154  ebfffffe          BL       Uart_GetKey
000158  e3500000          CMP      r0,#0
00015c  0a000000          BEQ      |L1.356|
000160  ea000000          B        |L1.360|
;;;124    		}
                  |L1.356|
000164  eafffff6          B        |L1.324|
;;;125    //		for(i=0;i<1000;i++);
;;;126    		for(i=0;i<5;i++);
                  |L1.360|
000168  e3a04000          MOV      r4,#0
                  |L1.364|
00016c  e3540005          CMP      r4,#5
000170  aa000001          BGE      |L1.380|
000174  e2844001          ADD      r4,r4,#1
000178  eafffffb          B        |L1.364|
;;;127    	}
                  |L1.380|
00017c  eaffffdc          B        |L1.244|
;;;128    
;;;129    		//rGPDAT=(0x1<<24);		
;;;130    
;;;131    
;;;132    
;;;133    }
                  |L1.384|
000180  e8bd80f8          LDMFD    sp!,{r3-r7,pc}
                  |L1.388|
000184  44800000          DCD      0x44800000
                  |L1.392|
000188  00000000          DCD      ||.constdata$1||
                  |L1.396|
00018c  656c6573          DCB      "sele"
000190  6d207463          DCB      "ct m"
000194  2065646f          DCB      "ode "
000198  656d6173          DCB      "same"
00019c  20736120          DCB      " as "
0001a0  7473616d          DCB      "mast"
0001a4  62207265          DCB      "er b"
0001a8  6472616f          DCB      "oard"
0001ac  0000203a          DCB      ": \0\0"
                  |L1.432|
0001b0  65747962          DCB      "byte"
0001b4  6e697320          DCB      " sin"
0001b8  20656c67          DCB      "gle "
0001bc  6e617274          DCB      "tran"
0001c0  72656673          DCB      "sfer"
0001c4  0000000a          DCB      "\n\0\0\0"
                  |L1.456|
0001c8  666c6168          DCB      "half"
                  |L1.460|
0001cc  64726f77          DCB      "word"
0001d0  6e697320          DCB      " sin"
0001d4  20656c67          DCB      "gle "
0001d8  6e617274          DCB      "tran"
0001dc  72656673          DCB      "sfer"
0001e0  0000000a          DCB      "\n\0\0\0"
                  |L1.484|
0001e4  65747962          DCB      "byte"
0001e8  72756220          DCB      " bur"
0001ec  74207473          DCB      "st t"
0001f0  736e6172          DCB      "rans"
0001f4  0a726566          DCB      "fer\n"
0001f8  00000000          DCB      "\0\0\0\0"
                  |L1.508|
0001fc  666c6168          DCB      "half"
                  |L1.512|
000200  64726f77          DCB      "word"
000204  72756220          DCB      " bur"
000208  74207473          DCB      "st t"
00020c  736e6172          DCB      "rans"
000210  0a726566          DCB      "fer\n"
000214  00000000          DCB      "\0\0\0\0"
                  |L1.536|
000218  74746553          DCB      "Sett"
00021c  20676e69          DCB      "ing "
000220  616d2061          DCB      "a ma"
000224  72657473          DCB      "ster"
000228  616f6220          DCB      " boa"
00022c  000a6472          DCB      "rd\n\0"
                  |L1.560|
000230  65746e45          DCB      "Ente"
000234  6e612072          DCB      "r an"
000238  656b2079          DCB      "y ke"
00023c  00000a79          DCB      "y\n\0\0"
                          ENDP



                          AREA ||.constdata||, DATA, READONLY, ALIGN=2

                  ||.constdata$1||
                          DCB      0x31,0x2e,0x62,0x79
                          DCB      0x74,0x65,0x20,0x73
                          DCB      0x69,0x6e,0x67,0x6c
                          DCB      0x65,0x0a,0x32,0x2e
                          DCB      0x68,0x61,0x6c,0x66
                          DCB      0x77,0x6f,0x72,0x64
                          DCB      0x20,0x73,0x69,0x6e
                          DCB      0x67,0x6c,0x65,0x0a
                          DCB      0x33,0x2e,0x77,0x6f
                          DCB      0x72,0x64,0x20,0x73
                          DCB      0x69,0x6e,0x67,0x6c
                          DCB      0x65,0x0a,0x34,0x2e
                          DCB      0x62,0x79,0x74,0x65
                          DCB      0x20,0x62,0x75,0x72
                          DCB      0x73,0x74,0x0a,0x35
                          DCB      0x2e,0x68,0x61,0x6c
                          DCB      0x66,0x77,0x6f,0x72
                          DCB      0x64,0x20,0x62,0x75
                          DCB      0x72,0x73,0x74,0x0a
                          DCB      0x36,0x2e,0x77,0x6f
                          DCB      0x72,0x64,0x20,0x62
                          DCB      0x75,0x72,0x73,0x74
                          DCB      0x0a,0x00
                          DCB      0x00,0x00


        END

⌨️ 快捷键说明

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