📄 os_view.txt
字号:
000548 e1b00005 MOVS r0,r5
00054c e2451001 SUB r1,r5,#1
000550 e20150ff AND r5,r1,#0xff
000554 1afffff8 BNE |L1.1340|
;;;663 }
;;;664 }
000558 e8bd4030 POP {r4,r5,lr}
00055c e12fff1e BX lr
ENDP
OSView_CmdMemRdINT16U PROC
;;;637 static void OSView_CmdMemRdINT16U (void)
;;;638 {
000560 e92d4030 PUSH {r4,r5,lr}
;;;639 INT32U addr;
;;;640 INT8U nbytes;
;;;641
;;;642
;;;643 addr = OSView_RxGetINT32U();
000564 ebfffffe BL OSView_RxGetINT32U
000568 e1a04000 MOV r4,r0
;;;644 nbytes = OSView_RxGetINT8U();
00056c ebfffffe BL OSView_RxGetINT8U
000570 e1a05000 MOV r5,r0
;;;645 while (nbytes--) {
000574 ea000002 B |L1.1412|
|L1.1400|
;;;646 OSView_TxStoINT16U(*(INT16U *)addr);
000578 e1d400b0 LDRH r0,[r4,#0]
00057c ebfffffe BL OSView_TxStoINT16U
;;;647 addr += 2;
000580 e2844002 ADD r4,r4,#2
|L1.1412|
000584 e1b00005 MOVS r0,r5
000588 e2451001 SUB r1,r5,#1
00058c e20150ff AND r5,r1,#0xff
000590 1afffff8 BNE |L1.1400|
;;;648 }
;;;649 }
000594 e8bd4030 POP {r4,r5,lr}
000598 e12fff1e BX lr
ENDP
OSView_CmdMemRdINT8U PROC
;;;622 static void OSView_CmdMemRdINT8U (void)
;;;623 {
00059c e92d4030 PUSH {r4,r5,lr}
;;;624 INT32U addr;
;;;625 INT8U nbytes;
;;;626
;;;627
;;;628 addr = OSView_RxGetINT32U();
0005a0 ebfffffe BL OSView_RxGetINT32U
0005a4 e1a04000 MOV r4,r0
;;;629 nbytes = OSView_RxGetINT8U();
0005a8 ebfffffe BL OSView_RxGetINT8U
0005ac e1a05000 MOV r5,r0
;;;630 while (nbytes--) {
0005b0 ea000002 B |L1.1472|
|L1.1460|
;;;631 OSView_TxStoINT8U(*(INT8U *)addr);
0005b4 e5d40000 LDRB r0,[r4,#0]
0005b8 ebfffffe BL OSView_TxStoINT8U
;;;632 addr++;
0005bc e2844001 ADD r4,r4,#1
|L1.1472|
0005c0 e1b00005 MOVS r0,r5
0005c4 e2451001 SUB r1,r5,#1
0005c8 e20150ff AND r5,r1,#0xff
0005cc 1afffff8 BNE |L1.1460|
;;;633 }
;;;634 }
0005d0 e8bd4030 POP {r4,r5,lr}
0005d4 e12fff1e BX lr
ENDP
OSView_CmdTrace PROC
;;;744 {
;;;745 }
0005d8 e12fff1e BX lr
ENDP
OSView_CmdTickStep PROC
;;;711 static void OSView_CmdTickStep (void)
;;;712 {
0005dc e52de004 PUSH {lr}
;;;713 #if OS_TICK_STEP_EN > 0
;;;714 INT8U sub_cmd;
;;;715
;;;716
;;;717 sub_cmd = OSView_RxGetINT8U();
0005e0 ebfffffe BL OSView_RxGetINT8U
0005e4 e1a03000 MOV r3,r0
;;;718 switch (sub_cmd) {
0005e8 e3530000 CMP r3,#0
0005ec 0a000004 BEQ |L1.1540|
0005f0 e3530001 CMP r3,#1
0005f4 0a000007 BEQ |L1.1560|
0005f8 e3530002 CMP r3,#2
0005fc 1a00000f BNE |L1.1600|
000600 ea000009 B |L1.1580|
|L1.1540|
;;;719 case 0: /* Enable stepping */
000604 e1a00000 MOV r0,r0
;;;720 OSTickStepState = OS_TICK_STEP_WAIT;
000608 e3a00001 MOV r0,#1
00060c e59f1310 LDR r1,|L1.2340|
000610 e5c10000 STRB r0,[r1,#0] ; OSTickStepState
;;;721 break;
000614 ea000009 B |L1.1600|
|L1.1560|
;;;722
;;;723 case 1: /* Disable stepping, let tick ISR handle the ticks */
000618 e1a00000 MOV r0,r0
;;;724 OSTickStepState = OS_TICK_STEP_DIS;
00061c e3a00000 MOV r0,#0
000620 e59f12fc LDR r1,|L1.2340|
000624 e5c10000 STRB r0,[r1,#0] ; OSTickStepState
;;;725 break;
000628 ea000004 B |L1.1600|
|L1.1580|
;;;726
;;;727 case 2: /* Simulate the occurrence of one tick */
00062c e1a00000 MOV r0,r0
;;;728 OSTickStepState = OS_TICK_STEP_ONCE;
000630 e3a00002 MOV r0,#2
000634 e59f12e8 LDR r1,|L1.2340|
000638 e5c10000 STRB r0,[r1,#0] ; OSTickStepState
;;;729 break;
00063c e1a00000 MOV r0,r0
|L1.1600|
000640 e1a00000 MOV r0,r0
;;;730 }
;;;731 #endif
;;;732 }
000644 e49de004 POP {lr}
000648 e12fff1e BX lr
ENDP
OSView_CmdGetTaskList PROC
;;;511 static void OSView_CmdGetTaskList (void)
;;;512 {
00064c e92d4030 PUSH {r4,r5,lr}
;;;513 INT8U prio;
;;;514 OS_TCB *ptcb;
;;;515
;;;516
;;;517 OSView_TxStoINT8U('t'); /* Identifier for data type */
000650 e3a00074 MOV r0,#0x74
000654 ebfffffe BL OSView_TxStoINT8U
;;;518 for (prio = 0; prio <= OS_LOWEST_PRIO; prio++) {
000658 e3a05000 MOV r5,#0
00065c ea000009 B |L1.1672|
|L1.1632|
;;;519 ptcb = OSTCBPrioTbl[prio];
000660 e59f02c0 LDR r0,|L1.2344|
000664 e7904105 LDR r4,[r0,r5,LSL #2]
;;;520 if (ptcb != (OS_TCB *)0 && ptcb != (OS_TCB *)1) { /* Does task exist? (Not a Mutex reserved task) */
000668 e3540000 CMP r4,#0
00066c 0a000003 BEQ |L1.1664|
000670 e3540001 CMP r4,#1
000674 0a000001 BEQ |L1.1664|
;;;521 OSView_TxStoINT32U((INT32U)ptcb); /* Yes, send the task's TCB address */
000678 e1a00004 MOV r0,r4
00067c ebfffffe BL OSView_TxStoINT32U
|L1.1664|
000680 e2850001 ADD r0,r5,#1
000684 e20050ff AND r5,r0,#0xff
|L1.1672|
000688 e355001f CMP r5,#0x1f
00068c dafffff3 BLE |L1.1632|
;;;522 }
;;;523 }
;;;524 }
000690 e8bd4030 POP {r4,r5,lr}
000694 e12fff1e BX lr
ENDP
OSView_TxStoStr PROC
;;;1143 static void OSView_TxStoStr (INT8U *s, int max_len)
;;;1144 {
000698 e92d41f0 PUSH {r4-r8,lr}
00069c e1a04000 MOV r4,r0
0006a0 e1a05001 MOV r5,r1
;;;1145 INT8U len;
;;;1146 INT8U i;
;;;1147 INT8U *ps;
;;;1148
;;;1149
;;;1150 len = 0;
0006a4 e3a06000 MOV r6,#0
;;;1151 ps = s;
0006a8 e1a07004 MOV r7,r4
;;;1152 if (ps != (INT8U *)0) { /* Calculate length of string */
0006ac e1b04007 MOVS r4,r7
0006b0 0a000008 BEQ |L1.1752|
;;;1153 while (*ps && (len < max_len)) {
0006b4 ea000002 B |L1.1732|
|L1.1720|
;;;1154 ps++;
0006b8 e2877001 ADD r7,r7,#1
;;;1155 len++;
0006bc e2860001 ADD r0,r6,#1
0006c0 e20060ff AND r6,r0,#0xff
|L1.1732|
0006c4 e5d70000 LDRB r0,[r7,#0]
0006c8 e3500000 CMP r0,#0
0006cc 0a000001 BEQ |L1.1752|
0006d0 e1560005 CMP r6,r5
0006d4 bafffff7 BLT |L1.1720|
|L1.1752|
;;;1156 }
;;;1157 }
;;;1158 OSView_TxStoINT8U(len); /* Store string, length first */
0006d8 e1a00006 MOV r0,r6
0006dc ebfffffe BL OSView_TxStoINT8U
;;;1159 ps = s;
0006e0 e1a07004 MOV r7,r4
;;;1160 for (i = 0; i < len; i++) {
0006e4 e3a08000 MOV r8,#0
0006e8 ea000004 B |L1.1792|
|L1.1772|
;;;1161 OSView_TxStoINT8U((INT8U)*ps);
0006ec e5d70000 LDRB r0,[r7,#0]
0006f0 ebfffffe BL OSView_TxStoINT8U
;;;1162 ps++;
0006f4 e2877001 ADD r7,r7,#1
0006f8 e2880001 ADD r0,r8,#1
0006fc e20080ff AND r8,r0,#0xff
|L1.1792|
000700 e1580006 CMP r8,r6
000704 bafffff8 BLT |L1.1772|
;;;1163 }
;;;1164 }
000708 e8bd41f0 POP {r4-r8,lr}
00070c e12fff1e BX lr
ENDP
OSView_CmdGetTaskInfo_InvalidTask PROC
;;;575 static void OSView_CmdGetTaskInfo_InvalidTask (void)
;;;576 {
000710 e52de004 PUSH {lr}
;;;577 OSView_TxStoStr((INT8U *)"INVALID TASK!", 30); /* Task name */
000714 e3a0101e MOV r1,#0x1e
000718 e28f0f83 ADR r0,|L1.2348|
00071c ebfffffe BL OSView_TxStoStr
;;;578 OSView_TxStoINT8U(0); /* Prio */
000720 e3a00000 MOV r0,#0
000724 ebfffffe BL OSView_TxStoINT8U
;;;579 OSView_TxStoINT8U(0); /* Stat */
000728 e3a00000 MOV r0,#0
00072c ebfffffe BL OSView_TxStoINT8U
;;;580 OSView_TxStoINT32U(0); /* Data */
000730 e3a00000 MOV r0,#0
000734 ebfffffe BL OSView_TxStoINT32U
;;;581 OSView_TxStoINT32U(0); /* Timeout */
000738 e3a00000 MOV r0,#0
00073c ebfffffe BL OSView_TxStoINT32U
;;;582 OSView_TxStoINT32U(0); /* StackBase */
000740 e3a00000 MOV r0,#0
000744 ebfffffe BL OSView_TxStoINT32U
;;;583 OSView_TxStoINT32U(0); /* StackSize */
000748 e3a00000 MOV r0,#0
00074c ebfffffe BL OSView_TxStoINT32U
;;;584 OSView_TxStoINT32U(0); /* #Bytes used on stack */
000750 e3a00000 MOV r0,#0
000754 ebfffffe BL OSView_TxStoINT32U
;;;585 OSView_TxStoINT32U(0); /* Current SP address */
000758 e3a00000 MOV r0,#0
00075c ebfffffe BL OSView_TxStoINT32U
;;;586 OSView_TxStoINT32U(0); /* ExecTime */
000760 e3a00000 MOV r0,#0
000764 ebfffffe BL OSView_TxStoINT32U
;;;587 OSView_TxStoINT32U(0); /* NumActivations */
000768 e3a00000 MOV r0,#0
00076c ebfffffe BL OSView_TxStoINT32U
;;;588 }
000770 e49de004 POP {lr}
000774 e12fff1e BX lr
ENDP
OSView_CmdGetTaskInfo_TCBStat PROC
;;;597 static INT8U OSView_CmdGetTaskInfo_TCBStat (OS_TCB *ptcb)
;;;598 {
000778 e1a01000 MOV r1,r0
;;;599 INT8U stat;
;;;600
;;;601
;;;602 if (ptcb->OSTCBStat != OS_STAT_RDY) {
00077c e5d1202c LDRB r2,[r1,#0x2c]
000780 e3520000 CMP r2,#0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -