📄 iotest.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\iotest.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Test_IO_Strength PROC
;;;22 void Test_IO_Strength(void)
;;;23 {
000000 e92d40f8 STMFD sp!,{r3-r7,lr}
;;;24
;;;25 int i;
;;;26 U32 dsc_data=0, dsc_adr=0, dsc_ctrl=0;
000004 e3a04000 MOV r4,#0
000008 e3a07000 MOV r7,#0
00000c e3a05000 MOV r5,#0
;;;27
;;;28 Uart_Printf("Test2... I/O drive strength control test.\n");
000010 e28f00bc ADR r0,|L1.212|
000014 ebfffffe BL Uart_Printf
;;;29
;;;30 Uart_Printf("Current drive strength value(DISC0):%xh\n", rDSC0&0xff);
000018 e3a00456 MOV r0,#0x56000000
00001c e59000c4 LDR r0,[r0,#0xc4]
000020 e20010ff AND r1,r0,#0xff
000024 e28f00d4 ADR r0,|L1.256|
000028 ebfffffe BL Uart_Printf
;;;31
;;;32 Uart_Printf("DATA[31:0] dive strength(0:12,1:10,2:8,3:6[mA]) : ");
00002c e28f00f8 ADR r0,|L1.300|
000030 ebfffffe BL Uart_Printf
;;;33 i=Uart_GetIntNum();
000034 ebfffffe BL Uart_GetIntNum
000038 e1a06000 MOV r6,r0
;;;34 switch(i) {
00003c e3560000 CMP r6,#0
000040 0a000006 BEQ |L1.96|
000044 e3560001 CMP r6,#1
000048 0a000006 BEQ |L1.104|
00004c e3560002 CMP r6,#2
000050 0a000006 BEQ |L1.112|
000054 e3560003 CMP r6,#3
000058 1a000008 BNE |L1.128|
00005c ea000005 B |L1.120|
;;;35 case 0: dsc_data = 0x00; break;
|L1.96|
000060 e3a04000 MOV r4,#0
000064 ea000007 B |L1.136|
;;;36 case 1: dsc_data = 0x55; break;
|L1.104|
000068 e3a04055 MOV r4,#0x55
00006c ea000005 B |L1.136|
;;;37 case 2: dsc_data = 0xaa; break;
|L1.112|
000070 e3a040aa MOV r4,#0xaa
000074 ea000003 B |L1.136|
;;;38 case 3: dsc_data = 0xff; break;
|L1.120|
000078 e3a040ff MOV r4,#0xff
00007c ea000001 B |L1.136|
;;;39 default: dsc_data=0x00; break;
|L1.128|
000080 e3a04000 MOV r4,#0
000084 e1a00000 NOP
;;;40 }
;;;41
;;;42 Uart_Printf("ADDR bus dive strength(0:10,1:8,2:6,3:4[mA]) : ");
|L1.136|
000088 e28f00d0 ADR r0,|L1.352|
00008c ebfffffe BL Uart_Printf
;;;43 dsc_adr=Uart_GetIntNum();
000090 ebfffffe BL Uart_GetIntNum
000094 e1a07000 MOV r7,r0
;;;44
;;;45
;;;46 Uart_Printf("Control and clcok signal dive strength\n");
000098 e28f00f0 ADR r0,|L1.400|
00009c ebfffffe BL Uart_Printf
;;;47 Uart_Printf("CLK/Control signal (0:16/10,1:12/8,2:8/6,3:6/4[mA])");
0000a0 e28f0f44 ADR r0,|L1.440|
0000a4 ebfffffe BL Uart_Printf
;;;48 i=Uart_GetIntNum();
0000a8 ebfffffe BL Uart_GetIntNum
0000ac e1a06000 MOV r6,r0
;;;49 switch(i) {
0000b0 e3560000 CMP r6,#0
0000b4 0a00004c BEQ |L1.492|
0000b8 e3560001 CMP r6,#1
0000bc 0a00004c BEQ |L1.500|
0000c0 e3560002 CMP r6,#2
0000c4 0a00004c BEQ |L1.508|
0000c8 e3560003 CMP r6,#3
0000cc 1a00004e BNE |L1.524|
0000d0 ea00004b B |L1.516|
|L1.212|
0000d4 74736554 DCB "Test"
0000d8 2e2e2e32 DCB "2..."
0000dc 4f2f4920 DCB " I/O"
0000e0 69726420 DCB " dri"
0000e4 73206576 DCB "ve s"
0000e8 6e657274 DCB "tren"
0000ec 20687467 DCB "gth "
0000f0 746e6f63 DCB "cont"
0000f4 206c6f72 DCB "rol "
0000f8 74736574 DCB "test"
0000fc 00000a2e DCB ".\n\0\0"
|L1.256|
000100 72727543 DCB "Curr"
000104 20746e65 DCB "ent "
000108 76697264 DCB "driv"
00010c 74732065 DCB "e st"
000110 676e6572 DCB "reng"
000114 76206874 DCB "th v"
000118 65756c61 DCB "alue"
00011c 53494428 DCB "(DIS"
000120 3a293043 DCB "C0):"
000124 0a687825 DCB "%xh\n"
000128 00000000 DCB "\0\0\0\0"
|L1.300|
00012c 41544144 DCB "DATA"
000130 3a31335b DCB "[31:"
000134 64205d30 DCB "0] d"
000138 20657669 DCB "ive "
00013c 65727473 DCB "stre"
000140 6874676e DCB "ngth"
000144 313a3028 DCB "(0:1"
000148 3a312c32 DCB "2,1:"
00014c 322c3031 DCB "10,2"
000150 332c383a DCB ":8,3"
000154 6d5b363a DCB ":6[m"
000158 20295d41 DCB "A]) "
00015c 0000203a DCB ": \0\0"
|L1.352|
000160 52444441 DCB "ADDR"
000164 73756220 DCB " bus"
000168 76696420 DCB " div"
00016c 74732065 DCB "e st"
000170 676e6572 DCB "reng"
000174 30286874 DCB "th(0"
000178 2c30313a DCB ":10,"
00017c 2c383a31 DCB "1:8,"
000180 2c363a32 DCB "2:6,"
000184 5b343a33 DCB "3:4["
000188 295d416d DCB "mA])"
00018c 00203a20 DCB " : \0"
|L1.400|
000190 746e6f43 DCB "Cont"
000194 206c6f72 DCB "rol "
000198 20646e61 DCB "and "
00019c 6f636c63 DCB "clco"
0001a0 6973206b DCB "k si"
0001a4 6c616e67 DCB "gnal"
0001a8 76696420 DCB " div"
0001ac 74732065 DCB "e st"
0001b0 676e6572 DCB "reng"
0001b4 000a6874 DCB "th\n\0"
|L1.440|
0001b8 2f4b4c43 DCB "CLK/"
0001bc 746e6f43 DCB "Cont"
0001c0 206c6f72 DCB "rol "
0001c4 6e676973 DCB "sign"
0001c8 28206c61 DCB "al ("
0001cc 36313a30 DCB "0:16"
0001d0 2c30312f DCB "/10,"
0001d4 32313a31 DCB "1:12"
0001d8 322c382f DCB "/8,2"
0001dc 362f383a DCB ":8/6"
0001e0 363a332c DCB ",3:6"
0001e4 6d5b342f DCB "/4[m"
0001e8 00295d41 DCB "A])\0"
;;;50 case 0: dsc_ctrl = 0x00000000; break;
|L1.492|
0001ec e3a05000 MOV r5,#0
0001f0 ea000007 B |L1.532|
;;;51 case 1: dsc_ctrl = 0x15555555; break;
|L1.500|
0001f4 e59f5090 LDR r5,|L1.652|
0001f8 ea000005 B |L1.532|
;;;52 case 2: dsc_ctrl = 0x2aaaaaaa; break;
|L1.508|
0001fc e59f508c LDR r5,|L1.656|
000200 ea000003 B |L1.532|
;;;53 case 3: dsc_ctrl = 0x3fffffff; break;
|L1.516|
000204 e3e054c0 MVN r5,#0xc0000000
000208 ea000001 B |L1.532|
;;;54 default: dsc_ctrl=0x00000000; break;
|L1.524|
00020c e3a05000 MOV r5,#0
000210 e1a00000 NOP
;;;55 }
;;;56
;;;57 rDSC0 = (rDSC0 & ~(0x83ff<<0)) | (dsc_adr<<8) | dsc_data;
|L1.532|
000214 e3a00456 MOV r0,#0x56000000
000218 e59000c4 LDR r0,[r0,#0xc4]
00021c e3c00c83 BIC r0,r0,#0x8300
000220 e3c000ff BIC r0,r0,#0xff
000224 e1800407 ORR r0,r0,r7,LSL #8
000228 e1800004 ORR r0,r0,r4
00022c e3a01456 MOV r1,#0x56000000
000230 e58100c4 STR r0,[r1,#0xc4]
;;;58
;;;59 rDSC1 = dsc_ctrl;
000234 e3a00456 MOV r0,#0x56000000
000238 e58050c8 STR r5,[r0,#0xc8]
;;;60
;;;61 Uart_Printf("rDSC0=%x, rDSC1=%x.\n", rDSC0, rDSC1);
00023c e3a00456 MOV r0,#0x56000000
000240 e59000c8 LDR r0,[r0,#0xc8]
000244 e1a02000 MOV r2,r0
000248 e3a00456 MOV r0,#0x56000000
00024c e59000c4 LDR r0,[r0,#0xc4]
000250 e1a01000 MOV r1,r0
000254 e28f0038 ADR r0,|L1.660|
000258 ebfffffe BL Uart_Printf
;;;62
;;;63 Uart_Printf("Memory R/W test(y/n)? ");
00025c e28f0048 ADR r0,|L1.684|
000260 ebfffffe BL Uart_Printf
;;;64 if(Uart_Getch()=='y') {
000264 ebfffffe BL Uart_Getch
000268 e3500079 CMP r0,#0x79
00026c 1a000005 BNE |L1.648|
;;;65 do {
000270 e1a00000 NOP
;;;66 Mem_Test(1);
|L1.628|
000274 e3a00001 MOV r0,#1
000278 ebfffffe BL Mem_Test
;;;67 } while(Uart_GetKey()==0);
00027c ebfffffe BL Uart_GetKey
000280 e3500000 CMP r0,#0
000284 0afffffa BEQ |L1.628|
;;;68 }
;;;69 }
|L1.648|
000288 e8bd80f8 LDMFD sp!,{r3-r7,pc}
|L1.652|
00028c 15555555 DCD 0x15555555
|L1.656|
000290 2aaaaaaa DCD 0x2aaaaaaa
|L1.660|
000294 43534472 DCB "rDSC"
000298 78253d30 DCB "0=%x"
00029c 4472202c DCB ", rD"
0002a0 3d314353 DCB "SC1="
0002a4 0a2e7825 DCB "%x.\n"
0002a8 00000000 DCB "\0\0\0\0"
|L1.684|
0002ac 6f6d654d DCB "Memo"
0002b0 52207972 DCB "ry R"
0002b4 7420572f DCB "/W t"
0002b8 28747365 DCB "est("
0002bc 296e2f79 DCB "y/n)"
0002c0 0000203f DCB "? \0\0"
ENDP
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -