📄 nwait.txt
字号:
;;;175 {
00033c e92d4038 STMFD sp!,{r3-r5,lr}
;;;176 U32 readVal;
;;;177 int i;
;;;178
;;;179 Uart_Printf("[nGCS4,32-bit,read,nWAIT Test].\n");
000340 e28f0090 ADR r0,|L1.984|
000344 ebfffffe BL Uart_Printf
;;;180
;;;181 rBWSCON=rBWSCON & ~(0xf<<16)|(BUS32<<16)|(ENWAIT<<18); //nGCS4
000348 e3a00448 MOV r0,#0x48000000
00034c e5900000 LDR r0,[r0,#0]
000350 e3c00af0 BIC r0,r0,#0xf0000
000354 e3800a60 ORR r0,r0,#0x60000
000358 e3a01448 MOV r1,#0x48000000
00035c e5810000 STR r0,[r1,#0]
;;;182 rBANKCON4=((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC));
000360 e3a00f80 MOV r0,#0x200
000364 e3a01448 MOV r1,#0x48000000
000368 e5810014 STR r0,[r1,#0x14]
;;;183
;;;184 Uart_Printf("rBWSCON:%x\n", rBWSCON);
00036c e3a00448 MOV r0,#0x48000000
000370 e5900000 LDR r0,[r0,#0]
000374 e1a01000 MOV r1,r0
000378 e24f0fb1 ADR r0,|L1.188|
00037c ebfffffe BL Uart_Printf
;;;185 Uart_Printf("rBANKCON4:%x\n", rBANKCON4);
000380 e3a00448 MOV r0,#0x48000000
000384 e5900014 LDR r0,[r0,#0x14]
000388 e1a01000 MOV r1,r0
00038c e24f0fb3 ADR r0,|L1.200|
000390 ebfffffe BL Uart_Printf
;;;186
;;;187 for(i=0;i<2;i++); //wait until the bank configuration is in effect.
000394 e3a04000 MOV r4,#0
|L1.920|
000398 e3540002 CMP r4,#2
00039c aa000001 BGE |L1.936|
0003a0 e2844001 ADD r4,r4,#1
0003a4 eafffffb B |L1.920|
;;;188
;;;189 Uart_Printf("Press any key to stop...\n");
|L1.936|
0003a8 e24f0fb6 ADR r0,|L1.216|
0003ac ebfffffe BL Uart_Printf
;;;190 while(1)
0003b0 e1a00000 NOP
|L1.948|
0003b4 e1a00000 NOP
;;;191 {
;;;192 readVal=(*(volatile U32 *)CS_nGCS4);
0003b8 e3a00580 MOV r0,#0x20000000
0003bc e5905000 LDR r5,[r0,#0]
;;;193 if(Uart_GetKey()!=0)
0003c0 ebfffffe BL Uart_GetKey
0003c4 e3500000 CMP r0,#0
0003c8 0a000000 BEQ |L1.976|
;;;194 break;
0003cc ea000000 B |L1.980|
;;;195 }
|L1.976|
0003d0 eafffff7 B |L1.948|
;;;196 }
|L1.980|
0003d4 e8bd8038 LDMFD sp!,{r3-r5,pc}
|L1.984|
0003d8 43476e5b DCB "[nGC"
0003dc 332c3453 DCB "S4,3"
0003e0 69622d32 DCB "2-bi"
0003e4 65722c74 DCB "t,re"
0003e8 6e2c6461 DCB "ad,n"
0003ec 54494157 DCB "WAIT"
0003f0 73655420 DCB " Tes"
0003f4 0a2e5d74 DCB "t].\n"
0003f8 00000000 DCB "\0\0\0\0"
ENDP
WaitWr32 PROC
;;;199 void WaitWr32(void)
;;;200 {
0003fc e92d4010 STMFD sp!,{r4,lr}
;;;201
;;;202 int i;
;;;203
;;;204 Uart_Printf("[nGCS4,32-bit,write,nWAIT Test].\n");
000400 e28f0094 ADR r0,|L1.1180|
000404 ebfffffe BL Uart_Printf
;;;205
;;;206 rBWSCON=rBWSCON & ~(0xf<<16)|(BUS32<<16)|(ENWAIT<<18); //nGCS4
000408 e3a00448 MOV r0,#0x48000000
00040c e5900000 LDR r0,[r0,#0]
000410 e3c00af0 BIC r0,r0,#0xf0000
000414 e3800a60 ORR r0,r0,#0x60000
000418 e3a01448 MOV r1,#0x48000000
00041c e5810000 STR r0,[r1,#0]
;;;207 rBANKCON4=((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC));
000420 e3a00f80 MOV r0,#0x200
000424 e3a01448 MOV r1,#0x48000000
000428 e5810014 STR r0,[r1,#0x14]
;;;208
;;;209 Uart_Printf("rBWSCON:%x\n", rBWSCON);
00042c e3a00448 MOV r0,#0x48000000
000430 e5900000 LDR r0,[r0,#0]
000434 e1a01000 MOV r1,r0
000438 e24f0fe1 ADR r0,|L1.188|
00043c ebfffffe BL Uart_Printf
;;;210 Uart_Printf("rBANKCON4:%x\n", rBANKCON4);
000440 e3a00448 MOV r0,#0x48000000
000444 e5900014 LDR r0,[r0,#0x14]
000448 e1a01000 MOV r1,r0
00044c e24f0fe3 ADR r0,|L1.200|
000450 ebfffffe BL Uart_Printf
;;;211
;;;212 for(i=0;i<2;i++); //wait until the bank configuration is in effect.
000454 e3a04000 MOV r4,#0
|L1.1112|
000458 e3540002 CMP r4,#2
00045c aa000001 BGE |L1.1128|
000460 e2844001 ADD r4,r4,#1
000464 eafffffb B |L1.1112|
;;;213
;;;214 Uart_Printf("Press any key to stop...\n");
|L1.1128|
000468 e24f0fe6 ADR r0,|L1.216|
00046c ebfffffe BL Uart_Printf
;;;215 while(1)
000470 e1a00000 NOP
|L1.1140|
000474 e1a00000 NOP
;;;216 {
;;;217 *((volatile U32 *)CS_nGCS4)=0;
000478 e3a00000 MOV r0,#0
00047c e3a01580 MOV r1,#0x20000000
000480 e5810000 STR r0,[r1,#0]
;;;218 if(Uart_GetKey()!=0)
000484 ebfffffe BL Uart_GetKey
000488 e3500000 CMP r0,#0
00048c 0a000000 BEQ |L1.1172|
;;;219 break;
000490 ea000000 B |L1.1176|
;;;220 }
|L1.1172|
000494 eafffff6 B |L1.1140|
;;;221 }
|L1.1176|
000498 e8bd8010 LDMFD sp!,{r4,pc}
|L1.1180|
00049c 43476e5b DCB "[nGC"
0004a0 332c3453 DCB "S4,3"
0004a4 69622d32 DCB "2-bi"
0004a8 72772c74 DCB "t,wr"
0004ac 2c657469 DCB "ite,"
0004b0 4941576e DCB "nWAI"
0004b4 65542054 DCB "T Te"
0004b8 2e5d7473 DCB "st]."
|L1.1212|
0004bc 0000000a DCB "\n\0\0\0"
ENDP
Test_WaitPin PROC
;;;31 void Test_WaitPin(void)
;;;32 {
0004c0 e92d4070 STMFD sp!,{r4-r6,lr}
;;;33 U32 savePLLCON,saveCLKDIVN;
;;;34 int i;
;;;35
;;;36 saveCLKDIVN=rCLKDIVN;
0004c4 e3a0044c MOV r0,#0x4c000000
0004c8 e5900014 LDR r0,[r0,#0x14]
0004cc e1a06000 MOV r6,r0
;;;37 savePLLCON=rMPLLCON;
0004d0 e3a0044c MOV r0,#0x4c000000
0004d4 e5900004 LDR r0,[r0,#4]
0004d8 e1a05000 MOV r5,r0
;;;38
;;;39 Uart_TxEmpty(1);
0004dc e3a00001 MOV r0,#1
0004e0 ebfffffe BL Uart_TxEmpty
;;;40 ChangeClockDivider(12,12); // 1:2:4
0004e4 e3a0100c MOV r1,#0xc
0004e8 e3a0000c MOV r0,#0xc
0004ec ebfffffe BL ChangeClockDivider
;;;41 ChangeMPllValue(246,13,1); //Fin=12MHz FCLK=100MHz for ALTERA
0004f0 e3a02001 MOV r2,#1
0004f4 e3a0100d MOV r1,#0xd
0004f8 e3a000f6 MOV r0,#0xf6
0004fc ebfffffe BL ChangeMPllValue
;;;42 Uart_Init(101606000/4,115200); // PCLK is about 25MHz
000500 e59f10d4 LDR r1,|L1.1500|
000504 e59f00d4 LDR r0,|L1.1504|
000508 ebfffffe BL Uart_Init
;;;43
;;;44 rMISCCR=0x330; //HCLK
00050c e3a00fcc MOV r0,#0x330
000510 e3a01456 MOV r1,#0x56000000
000514 e5810080 STR r0,[r1,#0x80]
;;;45 rGPHCON=(rGPHCON & (~(0x3<<18))) | (0x2<<18); //GPH9=CLKOUT0
000518 e3a00456 MOV r0,#0x56000000
00051c e5900070 LDR r0,[r0,#0x70]
000520 e3c00ac0 BIC r0,r0,#0xc0000
000524 e3800a80 ORR r0,r0,#0x80000
000528 e3a01456 MOV r1,#0x56000000
00052c e5810070 STR r0,[r1,#0x70]
;;;46
;;;47 Uart_Printf("Select test bus width(32bit(0)/16bit(1)/8bit(2): ");
000530 e28f00ac ADR r0,|L1.1508|
000534 ebfffffe BL Uart_Printf
;;;48 i=Uart_GetIntNum();
000538 ebfffffe BL Uart_GetIntNum
00053c e1a04000 MOV r4,r0
;;;49
;;;50 switch(i) {
000540 e3540000 CMP r4,#0
000544 0a000004 BEQ |L1.1372|
000548 e3540001 CMP r4,#1
00054c 0a000009 BEQ |L1.1400|
000550 e3540002 CMP r4,#2
000554 1a000015 BNE |L1.1456|
000558 ea00000d B |L1.1428|
;;;51 case 0:
;;;52 WaitWr32();
|L1.1372|
00055c ebfffffe BL WaitWr32
;;;53 Uart_Printf("\n");
000560 e24f00ac ADR r0,|L1.1212|
000564 ebfffffe BL Uart_Printf
;;;54 WaitRd32();
000568 ebfffffe BL WaitRd32
;;;55 Uart_Printf("\n");
00056c e24f00b8 ADR r0,|L1.1212|
000570 ebfffffe BL Uart_Printf
;;;56 break;
000574 ea00000e B |L1.1460|
;;;57 case 1:
;;;58 WaitWr16();
|L1.1400|
000578 ebfffffe BL WaitWr16
;;;59 Uart_Printf("\n");
00057c e24f00c8 ADR r0,|L1.1212|
000580 ebfffffe BL Uart_Printf
;;;60 WaitRd16();
000584 ebfffffe BL WaitRd16
;;;61 Uart_Printf("\n");
000588 e24f00d4 ADR r0,|L1.1212|
00058c ebfffffe BL Uart_Printf
;;;62 break;
000590 ea000007 B |L1.1460|
;;;63 case 2:
;;;64 WaitWr8();
|L1.1428|
000594 ebfffffe BL WaitWr8
;;;65 Uart_Printf("\n");
000598 e24f00e4 ADR r0,|L1.1212|
00059c ebfffffe BL Uart_Printf
;;;66 WaitRd8();
0005a0 ebfffffe BL WaitRd8
;;;67 Uart_Printf("\n");
0005a4 e24f00f0 ADR r0,|L1.1212|
0005a8 ebfffffe BL Uart_Printf
;;;68 break;
0005ac ea000000 B |L1.1460|
;;;69 default:
;;;70 break;
|L1.1456|
0005b0 e1a00000 NOP
;;;71 }
;;;72
;;;73 Uart_TxEmpty(1);
|L1.1460|
0005b4 e3a00001 MOV r0,#1
0005b8 ebfffffe BL Uart_TxEmpty
;;;74 rCLKDIVN=saveCLKDIVN;
0005bc e3a0044c MOV r0,#0x4c000000
0005c0 e5806014 STR r6,[r0,#0x14]
;;;75 rMPLLCON=savePLLCON;
0005c4 e3a0044c MOV r0,#0x4c000000
0005c8 e5805004 STR r5,[r0,#4]
;;;76 Uart_Init(0,115200);
0005cc e59f1008 LDR r1,|L1.1500|
0005d0 e3a00000 MOV r0,#0
0005d4 ebfffffe BL Uart_Init
;;;77 }
0005d8 e8bd8070 LDMFD sp!,{r4-r6,pc}
|L1.1500|
0005dc 0001c200 DCD 0x0001c200
|L1.1504|
0005e0 0183989c DCD 0x0183989c
|L1.1508|
0005e4 656c6553 DCB "Sele"
0005e8 74207463 DCB "ct t"
0005ec 20747365 DCB "est "
0005f0 20737562 DCB "bus "
0005f4 74646977 DCB "widt"
0005f8 32332868 DCB "h(32"
0005fc 28746962 DCB "bit("
000600 312f2930 DCB "0)/1"
000604 74696236 DCB "6bit"
000608 2f293128 DCB "(1)/"
00060c 74696238 DCB "8bit"
000610 3a293228 DCB "(2):"
000614 00000020 DCB " \0\0\0"
ENDP
Test_XBREQ PROC
;;;223 void Test_XBREQ(void)
;;;224 {
000618 e92d4010 STMFD sp!,{r4,lr}
;;;225 U32 saveGPBCON,saveGPBUP;
;;;226
;;;227 saveGPBCON=rGPBCON;
00061c e3a00456 MOV r0,#0x56000000
000620 e5900010 LDR r0,[r0,#0x10]
000624 e1a04000 MOV r4,r0
;;;228 rGPBCON=0x2800;
000628 e3a00da0 MOV r0,#0x2800
00062c e3a01456 MOV r1,#0x56000000
000630 e5810010 STR r0,[r1,#0x10]
;;;229
;;;230 Uart_Printf("Press any key!!\n");
000634 e28f0010 ADR r0,|L1.1612|
000638 ebfffffe BL Uart_Printf
;;;231 Uart_Getch();
00063c ebfffffe BL Uart_Getch
;;;232
;;;233 rGPBCON=saveGPBCON;
000640 e3a00456 MOV r0,#0x56000000
000644 e5804010 STR r4,[r0,#0x10]
;;;234 }
000648 e8bd8010 LDMFD sp!,{r4,pc}
|L1.1612|
00064c 73657250 DCB "Pres"
000650 6e612073 DCB "s an"
000654 656b2079 DCB "y ke"
000658 0a212179 DCB "y!!\n"
00065c 00000000 DCB "\0\0\0\0"
ENDP
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -