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

📄 os_view.txt

📁 lpc2478开发板基于IAR编译器移植ucos实验例程
💻 TXT
📖 第 1 页 / 共 5 页
字号:
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 + -