📄 extdmas.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 + -