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

📄 userlib.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;102    	for(j=0, i=0; incmd[i]!=NULL; i++) {
0002f4  e3a04000          MOV      r4,#0
0002f8  e3a05000          MOV      r5,#0
                  |L1.764|
0002fc  e7d60005          LDRB     r0,[r6,r5]
000300  e3500000          CMP      r0,#0
000304  0a00003d          BEQ      |L1.1024|
000308  ea000001          B        |L1.788|
                  |L1.780|
00030c  e2855001          ADD      r5,r5,#1
000310  eafffff9          B        |L1.764|
;;;103    		if(incmd[i] != ' ' && incmd[i] != 0x09 && incmd[i] != ',') {
                  |L1.788|
000314  e7d60005          LDRB     r0,[r6,r5]
000318  e3500020          CMP      r0,#0x20
00031c  0a000031          BEQ      |L1.1000|
000320  e7d60005          LDRB     r0,[r6,r5]
000324  e3500009          CMP      r0,#9
000328  0a00002e          BEQ      |L1.1000|
00032c  e7d60005          LDRB     r0,[r6,r5]
000330  e350002c          CMP      r0,#0x2c
000334  0a00002b          BEQ      |L1.1000|
;;;104    			overlap=0;
000338  e3a08000          MOV      r8,#0
;;;105    			switch(cmd_level) {
00033c  e3570000          CMP      r7,#0
000340  0a000006          BEQ      |L1.864|
000344  e3570001          CMP      r7,#1
000348  0a00000c          BEQ      |L1.896|
00034c  e3570002          CMP      r7,#2
000350  0a000012          BEQ      |L1.928|
000354  e3570003          CMP      r7,#3
000358  1a000020          BNE      |L1.992|
00035c  ea000017          B        |L1.960|
;;;106    				case 0:
;;;107    					scmd1[j] = incmd[i];
                  |L1.864|
000360  e7d60005          LDRB     r0,[r6,r5]
000364  e59f1220          LDR      r1,|L1.1420|
000368  e7c10004          STRB     r0,[r1,r4]
;;;108    					scmd1[j+1]='\0';
00036c  e3a00000          MOV      r0,#0
000370  e59f1214          LDR      r1,|L1.1420|
000374  e0811004          ADD      r1,r1,r4
000378  e5c10001          STRB     r0,[r1,#1]
;;;109    				//if(DEBUG_LEVEL>0) Uart_Printf("(%c)", scmd1[j]);
;;;110    				break;
00037c  ea000017          B        |L1.992|
;;;111    				case 1:
;;;112    					scmd2[j] = incmd[i];
                  |L1.896|
000380  e7d60005          LDRB     r0,[r6,r5]
000384  e59f1204          LDR      r1,|L1.1424|
000388  e7c10004          STRB     r0,[r1,r4]
;;;113    					scmd2[j+1]='\0';
00038c  e3a00000          MOV      r0,#0
000390  e59f11f8          LDR      r1,|L1.1424|
000394  e0811004          ADD      r1,r1,r4
000398  e5c10001          STRB     r0,[r1,#1]
;;;114    				//if(DEBUG_LEVEL>0) Uart_Printf("%c", scmd2[j]);
;;;115    				break;
00039c  ea00000f          B        |L1.992|
;;;116    				case 2:
;;;117    					scmd3[j] = incmd[i];
                  |L1.928|
0003a0  e7d60005          LDRB     r0,[r6,r5]
0003a4  e59f11e8          LDR      r1,|L1.1428|
0003a8  e7c10004          STRB     r0,[r1,r4]
;;;118    					scmd3[j+1]='\0';
0003ac  e3a00000          MOV      r0,#0
0003b0  e59f11dc          LDR      r1,|L1.1428|
0003b4  e0811004          ADD      r1,r1,r4
0003b8  e5c10001          STRB     r0,[r1,#1]
;;;119    				//if(DEBUG_LEVEL>0) Uart_Printf("[%c]", scmd3[j]);
;;;120    				break;
0003bc  ea000007          B        |L1.992|
;;;121    				case 3:
;;;122    					scmd4[j] = incmd[i];
                  |L1.960|
0003c0  e7d60005          LDRB     r0,[r6,r5]
0003c4  e59f11cc          LDR      r1,|L1.1432|
0003c8  e7c10004          STRB     r0,[r1,r4]
;;;123    					scmd4[j+1]='\0';
0003cc  e3a00000          MOV      r0,#0
0003d0  e59f11c0          LDR      r1,|L1.1432|
0003d4  e0811004          ADD      r1,r1,r4
0003d8  e5c10001          STRB     r0,[r1,#1]
;;;124    				//if(DEBUG_LEVEL>0) Uart_Printf("[%c]", cmd4[j]);
;;;125    				break;
0003dc  e1a00000          NOP      
;;;126    
;;;127    			}
;;;128    			j++;
                  |L1.992|
0003e0  e2844001          ADD      r4,r4,#1
0003e4  ea000004          B        |L1.1020|
;;;129    		} else {
;;;130    			j=0;
                  |L1.1000|
0003e8  e3a04000          MOV      r4,#0
;;;131    			if(overlap==0) {
0003ec  e3580000          CMP      r8,#0
0003f0  1a000000          BNE      |L1.1016|
;;;132    				cmd_level++;
0003f4  e2877001          ADD      r7,r7,#1
;;;133    			}
;;;134    			overlap=1;
                  |L1.1016|
0003f8  e3a08001          MOV      r8,#1
;;;135    		}
;;;136    	}
                  |L1.1020|
0003fc  eaffffc2          B        |L1.780|
;;;137    
;;;138    	// Make argument.
;;;139    	cmd2 = Get_Num(scmd2);		// atox(scmd2);
                  |L1.1024|
000400  e59f0188          LDR      r0,|L1.1424|
000404  ebfffffe          BL       Get_Num
000408  e59f118c          LDR      r1,|L1.1436|
00040c  e5810000          STR      r0,[r1,#0]  ; cmd2
;;;140    	cmd3 = Get_Num(scmd3);		// : Character to hexa(decimal)
000410  e59f017c          LDR      r0,|L1.1428|
000414  ebfffffe          BL       Get_Num
000418  e59f1180          LDR      r1,|L1.1440|
00041c  e5810000          STR      r0,[r1,#0]  ; cmd3
;;;141    	cmd4 = Get_Num(scmd4);		// : Character to hexa(decimal)
000420  e59f0170          LDR      r0,|L1.1432|
000424  ebfffffe          BL       Get_Num
000428  e59f1174          LDR      r1,|L1.1444|
00042c  e5810000          STR      r0,[r1,#0]  ; cmd4
;;;142    
;;;143    	if(cmd2==0xffffffff) cmd2=0;
000430  e59f0164          LDR      r0,|L1.1436|
000434  e5900000          LDR      r0,[r0,#0]  ; cmd2
000438  e3700001          CMN      r0,#1
00043c  1a000002          BNE      |L1.1100|
000440  e3a00000          MOV      r0,#0
000444  e59f1150          LDR      r1,|L1.1436|
000448  e5810000          STR      r0,[r1,#0]  ; cmd2
;;;144    	if(cmd3==0xffffffff) cmd3=0;
                  |L1.1100|
00044c  e59f014c          LDR      r0,|L1.1440|
000450  e5900000          LDR      r0,[r0,#0]  ; cmd3
000454  e3700001          CMN      r0,#1
000458  1a000002          BNE      |L1.1128|
00045c  e3a00000          MOV      r0,#0
000460  e59f1138          LDR      r1,|L1.1440|
000464  e5810000          STR      r0,[r1,#0]  ; cmd3
;;;145    	if(cmd4==0xffffffff) cmd4=0;
                  |L1.1128|
000468  e59f0134          LDR      r0,|L1.1444|
00046c  e5900000          LDR      r0,[r0,#0]  ; cmd4
000470  e3700001          CMN      r0,#1
000474  1a000002          BNE      |L1.1156|
000478  e3a00000          MOV      r0,#0
00047c  e59f1120          LDR      r1,|L1.1444|
000480  e5810000          STR      r0,[r1,#0]  ; cmd4
;;;146    }
                  |L1.1156|
000484  e8bd81f0          LDMFD    sp!,{r4-r8,pc}
                          ENDP

                  Execute_Precmd PROC
;;;206    void Execute_Precmd(void)
;;;207    {
000488  e92d40f8          STMFD    sp!,{r3-r7,lr}
;;;208    	int cnt=0, i=0, cmd_sel=0, exec_cmd=1;
00048c  e3a06000          MOV      r6,#0
000490  e3a04000          MOV      r4,#0
000494  e3a05000          MOV      r5,#0
000498  e3a07001          MOV      r7,#1
;;;209    	char ch;
;;;210    
;;;211    	for(i=0; i<MAX_PRECMD_SIZE && pre_scmd[i][0]!=NULL; i++) {
00049c  e3a04000          MOV      r4,#0
                  |L1.1184|
0004a0  e354000a          CMP      r4,#0xa
0004a4  aa00000e          BGE      |L1.1252|
0004a8  e0840104          ADD      r0,r4,r4,LSL #2
0004ac  e59f10f4          LDR      r1,|L1.1448|
0004b0  e7d10200          LDRB     r0,[r1,r0,LSL #4]
0004b4  e3500000          CMP      r0,#0
0004b8  0a000009          BEQ      |L1.1252|
0004bc  ea000001          B        |L1.1224|
                  |L1.1216|
0004c0  e2844001          ADD      r4,r4,#1
0004c4  eafffff5          B        |L1.1184|
;;;212    		Uart_Printf("%d: [%s]\n", i, pre_scmd[i]);
                  |L1.1224|
0004c8  e0840104          ADD      r0,r4,r4,LSL #2
0004cc  e59f10d4          LDR      r1,|L1.1448|
0004d0  e0812200          ADD      r2,r1,r0,LSL #4
0004d4  e1a01004          MOV      r1,r4
0004d8  e28f00cc          ADR      r0,|L1.1452|
0004dc  ebfffffe          BL       Uart_Printf
;;;213    	}
0004e0  eafffff6          B        |L1.1216|
;;;214    	if(i==0) return;
                  |L1.1252|
0004e4  e3540000          CMP      r4,#0
0004e8  1a000000          BNE      |L1.1264|
;;;215    	Uart_Printf("select num(-1 to exit)? ");
;;;216    	cmd_sel = Uart_GetIntNum();
;;;217    	
;;;218    	if(cmd_sel != -1) {
;;;219    		Uart_Printf("\n>> %s", pre_scmd[cmd_sel]);
;;;220    		Uart_Printf("\n");
;;;221    		Get_Cmd(pre_scmd[cmd_sel]);		// Make sbuf -> scmd...
;;;222    
;;;223    		for(i=0; (int)(command_set[i][0])!=NULL; i++) {
;;;224    			if(!strcmp((command_set[i][1]), scmd1)) {
;;;225    				((void (*)(void)) (command_set[i][0]))();
;;;226    				break;
;;;227    			}
;;;228    		}
;;;229    	}
;;;230    
;;;231    }
                  |L1.1260|
0004ec  e8bd80f8          LDMFD    sp!,{r3-r7,pc}
                  |L1.1264|
0004f0  e28f00c0          ADR      r0,|L1.1464|          ;215
0004f4  ebfffffe          BL       Uart_Printf           ;215
0004f8  ebfffffe          BL       Uart_GetIntNum        ;216
0004fc  e1a05000          MOV      r5,r0                 ;216
000500  e3750001          CMN      r5,#1                 ;218
000504  0a00001f          BEQ      |L1.1416|             ;218
000508  e0850105          ADD      r0,r5,r5,LSL #2       ;219
00050c  e59f2094          LDR      r2,|L1.1448|          ;219
000510  e0821200          ADD      r1,r2,r0,LSL #4       ;219
000514  e28f00b8          ADR      r0,|L1.1492|          ;219
000518  ebfffffe          BL       Uart_Printf           ;219
00051c  e28f0090          ADR      r0,|L1.1460|          ;220
000520  ebfffffe          BL       Uart_Printf           ;220
000524  e0851105          ADD      r1,r5,r5,LSL #2       ;221
000528  e59f2078          LDR      r2,|L1.1448|          ;221
00052c  e0820201          ADD      r0,r2,r1,LSL #4       ;221
000530  ebfffffe          BL       Get_Cmd               ;221
000534  e3a04000          MOV      r4,#0                 ;223
                  |L1.1336|
000538  e59f009c          LDR      r0,|L1.1500|          ;223
00053c  e7900184          LDR      r0,[r0,r4,LSL #3]     ;223
000540  e3500000          CMP      r0,#0                 ;223
000544  0a00000f          BEQ      |L1.1416|             ;223
000548  ea000001          B        |L1.1364|             ;223
                  |L1.1356|
00054c  e2844001          ADD      r4,r4,#1              ;223
000550  eafffff8          B        |L1.1336|             ;223
                  |L1.1364|
000554  e59f1080          LDR      r1,|L1.1500|          ;224
000558  e0811184          ADD      r1,r1,r4,LSL #3       ;224
00055c  e5910004          LDR      r0,[r1,#4]            ;224
000560  e59f1024          LDR      r1,|L1.1420|          ;224
000564  ebfffffe          BL       strcmp                ;224
000568  e3500000          CMP      r0,#0                 ;224
00056c  1a000004          BNE      |L1.1412|             ;224
000570  e59f1064          LDR      r1,|L1.1500|          ;225
000574  e7910184          LDR      r0,[r1,r4,LSL #3]     ;225
000578  e1a0e00f          MOV      lr,pc                 ;225
00057c  e1a0f000          MOV      pc,r0                 ;225
000580  ea000000          B        |L1.1416|             ;226
                  |L1.1412|
000584  eafffff0          B        |L1.1356|             ;228
                  |L1.1416|
000588  eaffffd7          B        |L1.1260|
                  |L1.1420|
00058c  00000050          DCD      ||.bss$2|| + 80
                  |L1.1424|
000590  00000064          DCD      ||.bss$2|| + 100
                  |L1.1428|
000594  00000078          DCD      ||.bss$2|| + 120
                  |L1.1432|
000598  0000008c          DCD      ||.bss$2|| + 140
                  |L1.1436|
00059c  000000a0          DCD      ||.bss$2|| + 160
                  |L1.1440|
0005a0  000000a4          DCD      ||.bss$2|| + 164
                  |L1.1444|
0005a4  000000a8          DCD      ||.bss$2|| + 168
                  |L1.1448|
0005a8  000000ac          DCD      ||.bss$2|| + 172
                  |L1.1452|
0005ac  203a6425          DCB      "%d: "
0005b0  5d73255b          DCB      "[%s]"
                  |L1.1460|
0005b4  0000000a          DCB      "\n\0\0\0"
                  |L1.1464|
0005b8  656c6573          DCB      "sele"
0005bc  6e207463          DCB      "ct n"
0005c0  2d286d75          DCB      "um(-"
0005c4  6f742031          DCB      "1 to"
0005c8  69786520          DCB      " exi"
0005cc  203f2974          DCB      "t)? "
0005d0  00000000          DCB      "\0\0\0\0"
                  |L1.1492|
0005d4  203e3e0a          DCB      "\n>> "
0005d8  00007325          DCB      "%s\0\0"
                  |L1.1500|
0005dc  00000000          DCD      command_set
                          ENDP

                  Manual_Register_Set PROC
;;;51     void Manual_Register_Set(void)
;;;52     {
0005e0  e92d4038          STMFD    sp!,{r3-r5,lr}
;;;53     	U32 i=0, j=0;
0005e4  e3a05000          MOV      r5,#0
0005e8  e3a04000          MOV      r4,#0
;;;54     
;;;55     	Uart_Printf("Manual regiter set. (q)uit.\n");
0005ec  e28f0f4c          ADR      r0,|L1.1828|
0005f0  ebfffffe          BL       Uart_Printf
;;;56     	Uart_Printf("Usage(?): >> <command> <opr1> (<opr2>)\n");

⌨️ 快捷键说明

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