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

📄 userlib.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0005f4  e28f0f52          ADR      r0,|L1.1860|
0005f8  ebfffffe          BL       Uart_Printf
;;;57     	Manset_Usage();
0005fc  ebfffffe          BL       Manset_Usage
;;;58     
;;;59     	while (1) {
000600  e1a00000          NOP      
                  |L1.1540|
000604  e1a00000          NOP      
;;;60     		Uart_Printf(">> ");
000608  e28f0f57          ADR      r0,|L1.1900|
00060c  ebfffffe          BL       Uart_Printf
;;;61     		Uart_GetString(sbuf);
000610  e59f0158          LDR      r0,|L1.1904|
000614  ebfffffe          BL       Uart_GetString
;;;62     
;;;63     		if(*sbuf==NULL) continue;
000618  e59f0150          LDR      r0,|L1.1904|
00061c  e5d00000          LDRB     r0,[r0,#0]  ; sbuf
000620  e3500000          CMP      r0,#0
000624  1a000000          BNE      |L1.1580|
000628  eafffff5          B        |L1.1540|
;;;64     		else if(*sbuf=='P') Execute_Precmd();
                  |L1.1580|
00062c  e59f013c          LDR      r0,|L1.1904|
000630  e5d00000          LDRB     r0,[r0,#0]  ; sbuf
000634  e3500050          CMP      r0,#0x50
000638  1a000001          BNE      |L1.1604|
00063c  ebfffffe          BL       Execute_Precmd
000640  ea000035          B        |L1.1820|
;;;65     
;;;66     		else if(*sbuf==ESC_KEY) break;
                  |L1.1604|
000644  e59f0124          LDR      r0,|L1.1904|
000648  e5d00000          LDRB     r0,[r0,#0]  ; sbuf
00064c  e3500071          CMP      r0,#0x71
000650  1a000000          BNE      |L1.1624|
000654  ea000031          B        |L1.1824|
;;;67     		else if(*sbuf==ESC_KEY) {
                  |L1.1624|
000658  e59f0110          LDR      r0,|L1.1904|
00065c  e5d00000          LDRB     r0,[r0,#0]  ; sbuf
000660  e3500071          CMP      r0,#0x71
000664  1a000001          BNE      |L1.1648|
;;;68     			Manset_Usage();
000668  ebfffffe          BL       Manset_Usage
00066c  ea00002a          B        |L1.1820|
;;;69     		} else {
;;;70     			Get_Cmd(sbuf);
                  |L1.1648|
000670  e59f00f8          LDR      r0,|L1.1904|
000674  ebfffffe          BL       Get_Cmd
;;;71     
;;;72     			for(i=0; (int)(command_set[i][0])!=NULL; i++) {
000678  e3a05000          MOV      r5,#0
                  |L1.1660|
00067c  e51f00a8          LDR      r0,|L1.1500|
000680  e7900185          LDR      r0,[r0,r5,LSL #3]
000684  e3500000          CMP      r0,#0
000688  0a000023          BEQ      |L1.1820|
00068c  ea000001          B        |L1.1688|
                  |L1.1680|
000690  e2855001          ADD      r5,r5,#1
000694  eafffff8          B        |L1.1660|
;;;73     				if(!strcmp((command_set[i][1]), scmd1)) {
                  |L1.1688|
000698  e51f10c4          LDR      r1,|L1.1500|
00069c  e0811185          ADD      r1,r1,r5,LSL #3
0006a0  e5910004          LDR      r0,[r1,#4]
0006a4  e51f1120          LDR      r1,|L1.1420|
0006a8  ebfffffe          BL       strcmp
0006ac  e3500000          CMP      r0,#0
0006b0  1a000018          BNE      |L1.1816|
;;;74     					((void (*)(void)) (command_set[i][0]))();
0006b4  e51f10e0          LDR      r1,|L1.1500|
0006b8  e7910185          LDR      r0,[r1,r5,LSL #3]
0006bc  e1a0e00f          MOV      lr,pc
0006c0  e1a0f000          MOV      pc,r0
;;;75     					for(j=MAX_PRECMD_SIZE-1; j>0; j--) {
0006c4  e3a04009          MOV      r4,#9
                  |L1.1736|
0006c8  e3540000          CMP      r4,#0
0006cc  0a00000b          BEQ      |L1.1792|
0006d0  ea000001          B        |L1.1756|
                  |L1.1748|
0006d4  e2444001          SUB      r4,r4,#1
0006d8  eafffffa          B        |L1.1736|
;;;76     						//if((int)pre_scmd[j][0]==NULL) continue;
;;;77     						strcpy(pre_scmd[j], pre_scmd[j-1]);
                  |L1.1756|
0006dc  e0842104          ADD      r2,r4,r4,LSL #2
0006e0  e51f3140          LDR      r3,|L1.1448|
0006e4  e0832202          ADD      r2,r3,r2,LSL #4
0006e8  e2421050          SUB      r1,r2,#0x50
0006ec  e0842104          ADD      r2,r4,r4,LSL #2
0006f0  e51f3150          LDR      r3,|L1.1448|
0006f4  e0830202          ADD      r0,r3,r2,LSL #4
0006f8  ebfffffe          BL       strcpy
;;;78     					}
0006fc  eafffff4          B        |L1.1748|
;;;79     
;;;80     					strcpy(pre_scmd[j], sbuf);
                  |L1.1792|
000700  e0841104          ADD      r1,r4,r4,LSL #2
000704  e51f2164          LDR      r2,|L1.1448|
000708  e0820201          ADD      r0,r2,r1,LSL #4
00070c  e59f105c          LDR      r1,|L1.1904|
000710  ebfffffe          BL       strcpy
;;;81     					break;
000714  ea000000          B        |L1.1820|
;;;82     				}
;;;83     			}
                  |L1.1816|
000718  eaffffdc          B        |L1.1680|
;;;84     		} // end of if(*sbuf==NULL)...
;;;85     
;;;86     	}
                  |L1.1820|
00071c  eaffffb8          B        |L1.1540|
;;;87     
;;;88     }
                  |L1.1824|
000720  e8bd8038          LDMFD    sp!,{r3-r5,pc}
                  |L1.1828|
000724  756e614d          DCB      "Manu"
000728  72206c61          DCB      "al r"
00072c  74696765          DCB      "egit"
000730  73207265          DCB      "er s"
000734  202e7465          DCB      "et. "
000738  75297128          DCB      "(q)u"
00073c  0a2e7469          DCB      "it.\n"
000740  00000000          DCB      "\0\0\0\0"
                  |L1.1860|
000744  67617355          DCB      "Usag"
000748  293f2865          DCB      "e(?)"
00074c  3e3e203a          DCB      ": >>"
000750  6f633c20          DCB      " <co"
000754  6e616d6d          DCB      "mman"
000758  3c203e64          DCB      "d> <"
00075c  3172706f          DCB      "opr1"
000760  3c28203e          DCB      "> (<"
000764  3272706f          DCB      "opr2"
000768  000a293e          DCB      ">)\n\0"
                  |L1.1900|
00076c  00203e3e          DCB      ">> \0"
                  |L1.1904|
000770  00000000          DCD      ||.bss$2||
                          ENDP

                  Uart_AppendString PROC
;;;233    void Uart_AppendString(char *string)
;;;234    {
000774  e92d4070          STMFD    sp!,{r4-r6,lr}
000778  e1a04000          MOV      r4,r0
;;;235        char *string2 = string;
00077c  e1a06004          MOV      r6,r4
;;;236        char c;
;;;237    
;;;238    	string = (string + strlen(string));
000780  e1a00004          MOV      r0,r4
000784  ebfffffe          BL       strlen
000788  e0804004          ADD      r4,r0,r4
;;;239    
;;;240        while((c = Uart_Getch())!='\r') {
00078c  e1a00000          NOP      
                  |L1.1936|
000790  ebfffffe          BL       Uart_Getch
000794  e1a05000          MOV      r5,r0
000798  e350000d          CMP      r0,#0xd
00079c  0a00000b          BEQ      |L1.2000|
;;;241            if(c=='\b') {
0007a0  e3550008          CMP      r5,#8
0007a4  1a000005          BNE      |L1.1984|
;;;242                if( (int)string2 < (int)string ) {
0007a8  e1560004          CMP      r6,r4
0007ac  aa000006          BGE      |L1.1996|
;;;243                    Uart_Printf("\b \b");
0007b0  e28f002c          ADR      r0,|L1.2020|
0007b4  ebfffffe          BL       Uart_Printf
;;;244                    string--;
0007b8  e2444001          SUB      r4,r4,#1
0007bc  ea000002          B        |L1.1996|
;;;245                }
;;;246            } else {
;;;247                *string++ = c;
                  |L1.1984|
0007c0  e4c45001          STRB     r5,[r4],#1
;;;248                Uart_SendByte(c);
0007c4  e1a00005          MOV      r0,r5
0007c8  ebfffffe          BL       Uart_SendByte
;;;249            }
;;;250        }
                  |L1.1996|
0007cc  eaffffef          B        |L1.1936|
;;;251        *string='\0';
                  |L1.2000|
0007d0  e3a00000          MOV      r0,#0
0007d4  e5c40000          STRB     r0,[r4,#0]
;;;252        Uart_SendByte('\n');
0007d8  e3a0000a          MOV      r0,#0xa
0007dc  ebfffffe          BL       Uart_SendByte
;;;253    }
0007e0  e8bd8070          LDMFD    sp!,{r4-r6,pc}
                  |L1.2020|
0007e4  00082008          DCB      "\b \b\0"
                          ENDP

                  Memory_Dump PROC
;;;256    void Memory_Dump(void)
;;;257    {
0007e8  e92d4010          STMFD    sp!,{r4,lr}
;;;258    	int i;
;;;259    
;;;260    	Uart_Printf("memory dump\n");
0007ec  e28f006c          ADR      r0,|L1.2144|
0007f0  ebfffffe          BL       Uart_Printf
;;;261    	for(i=0; i<cmd3; i+=4) {
0007f4  e3a04000          MOV      r4,#0
                  |L1.2040|
0007f8  e51f0260          LDR      r0,|L1.1440|
0007fc  e5900000          LDR      r0,[r0,#0]  ; cmd3
000800  e1540000          CMP      r4,r0
000804  2a000014          BCS      |L1.2140|
000808  ea000001          B        |L1.2068|
                  |L1.2060|
00080c  e2844004          ADD      r4,r4,#4
000810  eafffff8          B        |L1.2040|
;;;262    		Uart_Printf("  %08xh: %08xh\n", (cmd2+i), *(U32 *)(cmd2+i));
                  |L1.2068|
000814  e51f0280          LDR      r0,|L1.1436|
000818  e5900000          LDR      r0,[r0,#0]  ; cmd2
00081c  e7902004          LDR      r2,[r0,r4]
000820  e51f028c          LDR      r0,|L1.1436|
000824  e5900000          LDR      r0,[r0,#0]  ; cmd2
000828  e0801004          ADD      r1,r0,r4
00082c  e28f003c          ADR      r0,|L1.2160|
000830  ebfffffe          BL       Uart_Printf
;;;263    		if(Uart_GetKey()!=NULL) {
000834  ebfffffe          BL       Uart_GetKey
000838  e3500000          CMP      r0,#0
00083c  0a000005          BEQ      |L1.2136|
;;;264     			Uart_Printf("Break at %x\n", cmd2+i);
000840  e51f02ac          LDR      r0,|L1.1436|
000844  e5900000          LDR      r0,[r0,#0]  ; cmd2
000848  e0801004          ADD      r1,r0,r4
00084c  e28f002c          ADR      r0,|L1.2176|
000850  ebfffffe          BL       Uart_Printf
;;;265     			break;
000854  ea000000          B        |L1.2140|
;;;266     		}
;;;267    	}
                  |L1.2136|
000858  eaffffeb          B        |L1.2060|
;;;268    }
                  |L1.2140|
00085c  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.2144|
000860  6f6d656d          DCB      "memo"
000864  64207972          DCB      "ry d"
000868  0a706d75          DCB      "ump\n"
00086c  00000000          DCB      "\0\0\0\0"
                  |L1.2160|
000870  30252020          DCB      "  %0"
000874  3a687838          DCB      "8xh:"
000878  38302520          DCB      " %08"
00087c  000a6878          DCB      "xh\n\0"
                  |L1.2176|
000880  61657242          DCB      "Brea"
000884  7461206b          DCB      "k at"
000888  0a782520          DCB      " %x\n"
00088c  00000000          DCB      "\0\0\0\0"
                          ENDP

                  Multimem_Write PROC
;;;270    void Multimem_Write(void)
;;;271    {
000890  e92d4030          STMFD    sp!,{r4,r5,lr}
000894  e24dd014          SUB      sp,sp,#0x14
;;;272    	U32 i, itmp;
;;;273    	char tmps[20];
;;;274    
;;;275    	if(cmd2%4) cmd2=(cmd2/4)*4;
000898  e51f0304          LDR      r0,|L1.1436|
00089c  e5900000          LDR      r0,[r0,#0]  ; cmd2
0008a0  e3100003          TST      r0,#3
0008a4  0a000005          BEQ      |L1.2240|
0008a8  e51f0314          LDR      r0,|L1.1436|
0008ac  e5900000          LDR      r0,[r0,#0]  ; cmd2
0008b0  e1a00120          MOV      r0,r0,LSR #2
0008b4  e1a00100          MOV      r0,r0,LSL #2
0008b8  e51f1324          LDR      r1,|L1.1436|
0008bc  e5810000          STR      r0,[r1,#0]  ; cmd2
;;;276    	Uart_Printf("Multiple memory write (q)uit.\n");
                  |L1.2240|
0008c0  e28f0064          ADR      r0,|L1.2348|
0008c4  ebfffffe          BL       Uart_Printf
;;;277    
;;;278    	for(i=0; ; ) {
0008c8  e3a04000          MOV      r4,#0
                  |L1.2252|
0008cc  e1a00000          NOP      
;;;279    		Uart_Printf("  %08xh ? ", cmd2+i);
0008d0  e51f033c          LDR      r0,|L1.1436|
0008d4  e5900000          LDR      r0,[r0,#0]  ; cmd2
0008d8  e0801004          ADD      r1,r0,r4
0008dc  e28f0068          ADR      r0,|L1.2380|
0008e0  ebfffffe          BL       Uart_Printf
;;;280    		Uart_GetString(tmps);
0008e4  e1a0000d          MOV      r0,sp
0008e8  ebfffffe          BL       Uart_GetString
;;;281    		if(*tmps=='q') break;
0008ec  e5dd0000          LDRB     r0,[sp,#0]
0008f0  e3500071          CMP      r0,#0x71
0008f4  1a000000          BNE      |L1.2300|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -