📄 os_view.txt
字号:
0009d4 e28d0004 ADD r0,sp,#4
0009d8 ebfffffe BL OSView_GetCPUName
;;;494 OSView_TxStoStr(s, OS_VIEW_CPU_NAME_SIZE);
0009dc e3a0101e MOV r1,#0x1e
0009e0 e28d0004 ADD r0,sp,#4
0009e4 ebfffffe BL OSView_TxStoStr
;;;495
;;;496 stk_base = OSView_GetIntStkBase(); /* Interrupt stack base from port specific file */
0009e8 ebfffffe BL OSView_GetIntStkBase
0009ec e1a05000 MOV r5,r0
;;;497 OSView_TxStoINT32U(stk_base);
0009f0 e1a00005 MOV r0,r5
0009f4 ebfffffe BL OSView_TxStoINT32U
;;;498
;;;499 stk_size = OSView_GetIntStkSize(); /* Interrupt stack size from port specific file */
0009f8 ebfffffe BL OSView_GetIntStkSize
0009fc e1a06000 MOV r6,r0
;;;500 OSView_TxStoINT32U(stk_size);
000a00 e1a00006 MOV r0,r6
000a04 ebfffffe BL OSView_TxStoINT32U
;;;501 }
000a08 e28dd024 ADD sp,sp,#0x24
000a0c e8bd40f0 POP {r4-r7,lr}
000a10 e12fff1e BX lr
ENDP
OSView_CmdSendToApp PROC
;;;456 static void OSView_CmdSendToApp (void)
;;;457 {
000a14 e92d4010 PUSH {r4,lr}
;;;458 INT8U rx_data;
;;;459
;;;460
;;;461 rx_data = OSView_RxGetINT8U(); /* Read data typed at terminal */
000a18 ebfffffe BL OSView_RxGetINT8U
000a1c e1a04000 MOV r4,r0
;;;462 if ((void *)OSView_TerminalRxCallbackFnct != (void *)0) { /* See if callback is defined */
000a20 e59f0530 LDR r0,|L1.3928|
000a24 e5900000 LDR r0,[r0,#0] ; OSView_TerminalRxCallbackFnct
000a28 e3500000 CMP r0,#0
000a2c 0a000004 BEQ |L1.2628|
;;;463 (*OSView_TerminalRxCallbackFnct)(rx_data); /* Pass character received to application */
000a30 e1a00004 MOV r0,r4
000a34 e59f151c LDR r1,|L1.3928|
000a38 e5911000 LDR r1,[r1,#0] ; OSView_TerminalRxCallbackFnct
000a3c e1a0e00f MOV lr,pc
000a40 e12fff11 BX r1
|L1.2628|
;;;464 }
;;;465 }
000a44 e8bd4010 POP {r4,lr}
000a48 e12fff1e BX lr
ENDP
OSView_CmdParsePkt PROC
;;;370 static INT8U OSView_CmdParsePkt (void)
;;;371 {
000a4c e92d4010 PUSH {r4,lr}
;;;372 INT8U cmd0;
;;;373
;;;374
;;;375 cmd0 = OSView_RxGetINT8U(); /* First byte contains command */
000a50 ebfffffe BL OSView_RxGetINT8U
000a54 e1a04000 MOV r4,r0
;;;376 if (cmd0 == 'C') {
000a58 e3540043 CMP r4,#0x43
000a5c 1a000005 BNE |L1.2680|
;;;377 OSView_CmdSendToApp();
000a60 ebfffffe BL OSView_CmdSendToApp
;;;378 OSView_TxBufCnt = 0;
000a64 e3a00000 MOV r0,#0
000a68 e51f1160 LDR r1,|L1.2320|
000a6c e1c100b0 STRH r0,[r1,#0] ; OSView_TxBufCnt
|L1.2672|
;;;379 return (0);
000a70 e8bd4010 POP {r4,lr}
;;;380 }
;;;381 if (OSView_TxBufCnt > 0) { /* Do cmds only if Tx of the last one is done */
;;;382 return (0);
;;;383 }
;;;384 switch (cmd0) {
;;;385 case 's':
;;;386 OSView_TxStoINT8U(cmd0);
;;;387 OSView_CmdGetSysInfo();
;;;388 break;
;;;389
;;;390 case 't':
;;;391 OSView_TxStoINT8U(cmd0);
;;;392 OSView_CmdGetTaskInfo();
;;;393 break;
;;;394
;;;395 case 'l':
;;;396 OSView_TxStoINT8U(cmd0);
;;;397 OSView_CmdGetTaskList();
;;;398 break;
;;;399
;;;400 case 'S':
;;;401 OSView_TxStoINT8U(cmd0);
;;;402 OSView_CmdTickStep();
;;;403 break;
;;;404
;;;405 case 'T':
;;;406 OSView_TxStoINT8U(cmd0);
;;;407 OSView_CmdTrace();
;;;408 break;
;;;409
;;;410 case 'b':
;;;411 OSView_TxStoINT8U(cmd0);
;;;412 OSView_CmdMemRdINT8U();
;;;413 break;
;;;414
;;;415 case 'w':
;;;416 OSView_TxStoINT8U(cmd0);
;;;417 OSView_CmdMemRdINT16U();
;;;418 break;
;;;419
;;;420 case 0:
;;;421 OSView_TxStoINT8U(cmd0);
;;;422 OSView_CmdMemRdINT32U();
;;;423 break;
;;;424
;;;425 case '1':
;;;426 OSView_TxStoINT8U(cmd0);
;;;427 OSView_CmdMemWrINT8U();
;;;428 break;
;;;429
;;;430 case '2':
;;;431 OSView_TxStoINT8U(cmd0);
;;;432 OSView_CmdMemWrINT16U();
;;;433 break;
;;;434
;;;435 case '4':
;;;436 OSView_TxStoINT8U(cmd0);
;;;437 OSView_CmdMemWrINT32U();
;;;438 break;
;;;439
;;;440 default:
;;;441 break;
;;;442 }
;;;443 return (OSView_TxBufCnt);
;;;444 }
000a74 e12fff1e BX lr
|L1.2680|
000a78 e51f0170 LDR r0,|L1.2320|
000a7c e1d000b0 LDRH r0,[r0,#0] ; OSView_TxBufCnt
000a80 e3500000 CMP r0,#0
000a84 da000001 BLE |L1.2704|
000a88 e3a00000 MOV r0,#0
000a8c eafffff7 B |L1.2672|
|L1.2704|
000a90 e3540054 CMP r4,#0x54
000a94 0a00002e BEQ |L1.2900|
000a98 ca00000c BGT |L1.2768|
000a9c e3540032 CMP r4,#0x32
000aa0 0a000044 BEQ |L1.3000|
000aa4 ca000004 BGT |L1.2748|
000aa8 e3540000 CMP r4,#0
000aac 0a000037 BEQ |L1.2960|
000ab0 e3540031 CMP r4,#0x31
000ab4 1a000049 BNE |L1.3040|
000ab8 ea000039 B |L1.2980|
|L1.2748|
000abc e3540034 CMP r4,#0x34
000ac0 0a000041 BEQ |L1.3020|
000ac4 e3540053 CMP r4,#0x53
000ac8 1a000044 BNE |L1.3040|
000acc ea00001b B |L1.2880|
|L1.2768|
000ad0 e3540073 CMP r4,#0x73
000ad4 0a00000a BEQ |L1.2820|
000ad8 ca000004 BGT |L1.2800|
000adc e3540062 CMP r4,#0x62
000ae0 0a000020 BEQ |L1.2920|
000ae4 e354006c CMP r4,#0x6c
000ae8 1a00003c BNE |L1.3040|
000aec ea00000e B |L1.2860|
|L1.2800|
000af0 e3540074 CMP r4,#0x74
000af4 0a000007 BEQ |L1.2840|
000af8 e3540077 CMP r4,#0x77
000afc 1a000037 BNE |L1.3040|
000b00 ea00001d B |L1.2940|
|L1.2820|
000b04 e1a00000 MOV r0,r0
000b08 e1a00004 MOV r0,r4
000b0c ebfffffe BL OSView_TxStoINT8U
000b10 ebfffffe BL OSView_CmdGetSysInfo
000b14 ea000033 B |L1.3048|
|L1.2840|
000b18 e1a00000 MOV r0,r0
000b1c e1a00004 MOV r0,r4
000b20 ebfffffe BL OSView_TxStoINT8U
000b24 ebfffffe BL OSView_CmdGetTaskInfo
000b28 ea00002e B |L1.3048|
|L1.2860|
000b2c e1a00000 MOV r0,r0
000b30 e1a00004 MOV r0,r4
000b34 ebfffffe BL OSView_TxStoINT8U
000b38 ebfffffe BL OSView_CmdGetTaskList
000b3c ea000029 B |L1.3048|
|L1.2880|
000b40 e1a00000 MOV r0,r0
000b44 e1a00004 MOV r0,r4
000b48 ebfffffe BL OSView_TxStoINT8U
000b4c ebfffffe BL OSView_CmdTickStep
000b50 ea000024 B |L1.3048|
|L1.2900|
000b54 e1a00000 MOV r0,r0
000b58 e1a00004 MOV r0,r4
000b5c ebfffffe BL OSView_TxStoINT8U
000b60 ebfffffe BL OSView_CmdTrace
000b64 ea00001f B |L1.3048|
|L1.2920|
000b68 e1a00000 MOV r0,r0
000b6c e1a00004 MOV r0,r4
000b70 ebfffffe BL OSView_TxStoINT8U
000b74 ebfffffe BL OSView_CmdMemRdINT8U
000b78 ea00001a B |L1.3048|
|L1.2940|
000b7c e1a00000 MOV r0,r0
000b80 e1a00004 MOV r0,r4
000b84 ebfffffe BL OSView_TxStoINT8U
000b88 ebfffffe BL OSView_CmdMemRdINT16U
000b8c ea000015 B |L1.3048|
|L1.2960|
000b90 e1a00000 MOV r0,r0
000b94 e1a00004 MOV r0,r4
000b98 ebfffffe BL OSView_TxStoINT8U
000b9c ebfffffe BL OSView_CmdMemRdINT32U
000ba0 ea000010 B |L1.3048|
|L1.2980|
000ba4 e1a00000 MOV r0,r0
000ba8 e1a00004 MOV r0,r4
000bac ebfffffe BL OSView_TxStoINT8U
000bb0 ebfffffe BL OSView_CmdMemWrINT8U
000bb4 ea00000b B |L1.3048|
|L1.3000|
000bb8 e1a00000 MOV r0,r0
000bbc e1a00004 MOV r0,r4
000bc0 ebfffffe BL OSView_TxStoINT8U
000bc4 ebfffffe BL OSView_CmdMemWrINT16U
000bc8 ea000006 B |L1.3048|
|L1.3020|
000bcc e1a00000 MOV r0,r0
000bd0 e1a00004 MOV r0,r4
000bd4 ebfffffe BL OSView_TxStoINT8U
000bd8 ebfffffe BL OSView_CmdMemWrINT32U
000bdc ea000001 B |L1.3048|
|L1.3040|
000be0 e1a00000 MOV r0,r0
000be4 e1a00000 MOV r0,r0
|L1.3048|
000be8 e1a00000 MOV r0,r0
000bec e51f02e4 LDR r0,|L1.2320|
000bf0 e1d000b0 LDRH r0,[r0,#0] ; OSView_TxBufCnt
000bf4 e20000ff AND r0,r0,#0xff
000bf8 eaffff9c B |L1.2672|
ENDP
OSView_Task PROC
;;;233 static void OSView_Task (void *p_arg)
;;;234 {
000bfc e92d4038 PUSH {r3-r5,lr}
;;;235 INT16U len;
;;;236 INT8U err;
;;;237 #if OS_SEM_EN == 0 && OS_MBOX_EN > 0
;;;238 void *msg;
;;;239 #endif
;;;240 #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
;;;241 OS_CPU_SR cpu_sr = 0;
000c00 e3a05000 MOV r5,#0
;;;242 #endif
;;;243
;;;244
;;;245 (void)p_arg;
;;;246 while (1) {
000c04 ea00000f B |L1.3144|
|L1.3080|
;;;247 #if OS_SEM_EN > 0
;;;248 (void)OSSemPend(OSView_Sem, 0, &err); /* Wait for a packet to be received */
000c08 e28d2000 ADD r2,sp,#0
000c0c e3a01000 MOV r1,#0
000c10 e59f0344 LDR r0,|L1.3932|
000c14 e5900000 LDR r0,[r0,#0] ; OSView_Sem
000c18 ebfffffe BL OSSemPend
;;;249 #else
;;;250 #if OS_MBOX_EN > 0
;;;251 (void)OSMboxPend(OSView_Mbox, 0, &err); /* Wait for a packet to be received */
;;;252 #endif
;;;253 #endif
;;;254 len = OSView_CmdParsePkt(); /* Parse packet and formulate
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -