📄 extdmam.txt
字号:
; 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 + -