📄 os_view.lst
字号:
\ 0000004C 000090E5 LDR R0,[R0, #+0]
\ 00000050 0040B0E1 MOVS R4,R0
358 OS_EXIT_CRITICAL();
\ 00000054 0700B0E1 MOVS R0,R7
\ 00000058 ........ _BLF OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rA
359 return (cycles);
\ 0000005C 0400B0E1 MOVS R0,R4
\ 00000060 F080BDE8 POP {R4-R7,PC} ;; return
360 }
361
362 /*$PAGE*/
363 /*
364 *********************************************************************************************************
365 * uC/OS-View COMMAND HANDLER
366 * (Parse Packet)
367 *********************************************************************************************************
368 */
369
\ In segment CODE, align 4, keep-with-next
370 static INT8U OSView_CmdParsePkt (void)
371 {
\ OSView_CmdParsePkt:
\ 00000000 10402DE9 PUSH {R4,LR}
372 INT8U cmd0;
373
374
375 cmd0 = OSView_RxGetINT8U(); /* First byte contains command */
\ 00000004 ........ BL OSView_RxGetINT8U
\ 00000008 0040B0E1 MOVS R4,R0
376 if (cmd0 == 'C') {
\ 0000000C 430054E3 CMP R4,#+67
\ 00000010 0500001A BNE ??OSView_CmdParsePkt_0
377 OSView_CmdSendToApp();
\ 00000014 ........ BL OSView_CmdSendToApp
378 OSView_TxBufCnt = 0;
\ 00000018 ........ LDR R0,??DataTable95 ;; OSView_TxBufCnt
\ 0000001C 0010A0E3 MOV R1,#+0
\ 00000020 B010C0E1 STRH R1,[R0, #+0]
379 return (0);
\ 00000024 0000A0E3 MOV R0,#+0
\ 00000028 4B0000EA B ??OSView_CmdParsePkt_1
380 }
381 if (OSView_TxBufCnt > 0) { /* Do cmds only if Tx of the last one is done */
\ ??OSView_CmdParsePkt_0:
\ 0000002C ........ LDR R0,??DataTable95 ;; OSView_TxBufCnt
\ 00000030 B000D0E1 LDRH R0,[R0, #+0]
\ 00000034 010050E3 CMP R0,#+1
\ 00000038 0100003A BCC ??OSView_CmdParsePkt_2
382 return (0);
\ 0000003C 0000A0E3 MOV R0,#+0
\ 00000040 450000EA B ??OSView_CmdParsePkt_1
383 }
384 switch (cmd0) {
\ ??OSView_CmdParsePkt_2:
\ 00000044 0400B0E1 MOVS R0,R4
\ 00000048 000050E3 CMP R0,#+0
\ 0000004C 3000000A BEQ ??OSView_CmdParsePkt_3
\ 00000050 310050E3 CMP R0,#+49
\ 00000054 3200000A BEQ ??OSView_CmdParsePkt_4
\ 00000058 320050E3 CMP R0,#+50
\ 0000005C 3400000A BEQ ??OSView_CmdParsePkt_5
\ 00000060 340050E3 CMP R0,#+52
\ 00000064 3600000A BEQ ??OSView_CmdParsePkt_6
\ 00000068 530050E3 CMP R0,#+83
\ 0000006C 1800000A BEQ ??OSView_CmdParsePkt_7
\ 00000070 540050E3 CMP R0,#+84
\ 00000074 1A00000A BEQ ??OSView_CmdParsePkt_8
\ 00000078 620050E3 CMP R0,#+98
\ 0000007C 1C00000A BEQ ??OSView_CmdParsePkt_9
\ 00000080 6C0050E3 CMP R0,#+108
\ 00000084 0E00000A BEQ ??OSView_CmdParsePkt_10
\ 00000088 730050E3 CMP R0,#+115
\ 0000008C 0400000A BEQ ??OSView_CmdParsePkt_11
\ 00000090 740050E3 CMP R0,#+116
\ 00000094 0600000A BEQ ??OSView_CmdParsePkt_12
\ 00000098 770050E3 CMP R0,#+119
\ 0000009C 1800000A BEQ ??OSView_CmdParsePkt_13
\ 000000A0 2A0000EA B ??OSView_CmdParsePkt_14
385 case 's':
386 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_11:
\ 000000A4 0400B0E1 MOVS R0,R4
\ 000000A8 ........ BL OSView_TxStoINT8U
387 OSView_CmdGetSysInfo();
\ 000000AC ........ BL OSView_CmdGetSysInfo
\ 000000B0 260000EA B ??OSView_CmdParsePkt_14
388 break;
389
390 case 't':
391 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_12:
\ 000000B4 0400B0E1 MOVS R0,R4
\ 000000B8 ........ BL OSView_TxStoINT8U
392 OSView_CmdGetTaskInfo();
\ 000000BC ........ BL OSView_CmdGetTaskInfo
\ 000000C0 220000EA B ??OSView_CmdParsePkt_14
393 break;
394
395 case 'l':
396 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_10:
\ 000000C4 0400B0E1 MOVS R0,R4
\ 000000C8 ........ BL OSView_TxStoINT8U
397 OSView_CmdGetTaskList();
\ 000000CC ........ BL OSView_CmdGetTaskList
\ 000000D0 1E0000EA B ??OSView_CmdParsePkt_14
398 break;
399
400 case 'S':
401 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_7:
\ 000000D4 0400B0E1 MOVS R0,R4
\ 000000D8 ........ BL OSView_TxStoINT8U
402 OSView_CmdTickStep();
\ 000000DC ........ BL OSView_CmdTickStep
\ 000000E0 1A0000EA B ??OSView_CmdParsePkt_14
403 break;
404
405 case 'T':
406 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_8:
\ 000000E4 0400B0E1 MOVS R0,R4
\ 000000E8 ........ BL OSView_TxStoINT8U
407 OSView_CmdTrace();
\ 000000EC ........ BL OSView_CmdTrace
\ 000000F0 160000EA B ??OSView_CmdParsePkt_14
408 break;
409
410 case 'b':
411 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_9:
\ 000000F4 0400B0E1 MOVS R0,R4
\ 000000F8 ........ BL OSView_TxStoINT8U
412 OSView_CmdMemRdINT8U();
\ 000000FC ........ BL OSView_CmdMemRdINT8U
\ 00000100 120000EA B ??OSView_CmdParsePkt_14
413 break;
414
415 case 'w':
416 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_13:
\ 00000104 0400B0E1 MOVS R0,R4
\ 00000108 ........ BL OSView_TxStoINT8U
417 OSView_CmdMemRdINT16U();
\ 0000010C ........ BL OSView_CmdMemRdINT16U
\ 00000110 0E0000EA B ??OSView_CmdParsePkt_14
418 break;
419
420 case 0:
421 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_3:
\ 00000114 0400B0E1 MOVS R0,R4
\ 00000118 ........ BL OSView_TxStoINT8U
422 OSView_CmdMemRdINT32U();
\ 0000011C ........ BL OSView_CmdMemRdINT32U
\ 00000120 0A0000EA B ??OSView_CmdParsePkt_14
423 break;
424
425 case '1':
426 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_4:
\ 00000124 0400B0E1 MOVS R0,R4
\ 00000128 ........ BL OSView_TxStoINT8U
427 OSView_CmdMemWrINT8U();
\ 0000012C ........ BL OSView_CmdMemWrINT8U
\ 00000130 060000EA B ??OSView_CmdParsePkt_14
428 break;
429
430 case '2':
431 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_5:
\ 00000134 0400B0E1 MOVS R0,R4
\ 00000138 ........ BL OSView_TxStoINT8U
432 OSView_CmdMemWrINT16U();
\ 0000013C ........ BL OSView_CmdMemWrINT16U
\ 00000140 020000EA B ??OSView_CmdParsePkt_14
433 break;
434
435 case '4':
436 OSView_TxStoINT8U(cmd0);
\ ??OSView_CmdParsePkt_6:
\ 00000144 0400B0E1 MOVS R0,R4
\ 00000148 ........ BL OSView_TxStoINT8U
437 OSView_CmdMemWrINT32U();
\ 0000014C ........ BL OSView_CmdMemWrINT32U
438 break;
439
440 default:
441 break;
442 }
443 return (OSView_TxBufCnt);
\ ??OSView_CmdParsePkt_14:
\ 00000150 ........ LDR R0,??DataTable95 ;; OSView_TxBufCnt
\ 00000154 B000D0E1 LDRH R0,[R0, #+0]
\ 00000158 FF0010E2 ANDS R0,R0,#0xFF ;; Zero extend
\ ??OSView_CmdParsePkt_1:
\ 0000015C 1080BDE8 POP {R4,PC} ;; return
444 }
445
446 /*$PAGE*/
447 /*
448 *********************************************************************************************************
449 * uC/OS-View COMMAND HANDLER
450 * (Send to Application)
451 *
452 * Description: This routine transfers a character to the application.
453 *********************************************************************************************************
454 */
455
\ In segment CODE, align 4, keep-with-next
456 static void OSView_CmdSendToApp (void)
457 {
\ OSView_CmdSendToApp:
\ 00000000 10402DE9 PUSH {R4,LR}
458 INT8U rx_data;
459
460
461 rx_data = OSView_RxGetINT8U(); /* Read data typed at terminal */
\ 00000004 ........ BL OSView_RxGetINT8U
\ 00000008 0040B0E1 MOVS R4,R0
462 if ((void *)OSView_TerminalRxCallbackFnct != (void *)0) { /* See if callback is defined */
\ 0000000C ........ LDR R0,??DataTable52 ;; OSView_TerminalRxCallbackFnct
\ 00000010 000090E5 LDR R0,[R0, #+0]
\ 00000014 000050E3 CMP R0,#+0
\ 00000018 0400000A BEQ ??OSView_CmdSendToApp_0
463 (*OSView_TerminalRxCallbackFnct)(rx_data); /* Pass character received to application */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -