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

📄 iotest.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 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 + -