📄 userlib.txt
字号:
;;;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 + -