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

📄 os_view.lst

📁 lpc2478开发板基于IAR编译器移植ucos实验例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0000001C   0400B0E1           MOVS     R0,R4
   \   00000020   ........           LDR      R1,??DataTable52  ;; OSView_TerminalRxCallbackFnct
   \   00000024   001091E5           LDR      R1,[R1, #+0]
   \   00000028   0FE0A0E1           MOV      LR,PC
   \   0000002C   01F0A0E1           MOV      PC,R1
    464              }
    465          }
   \                     ??OSView_CmdSendToApp_0:
   \   00000030   1080BDE8           POP      {R4,PC}          ;; return
    466          
    467          
    468          /*
    469          *********************************************************************************************************
    470          *                                       uC/OS-View COMMAND HANDLER
    471          *                                        (Get System Information)
    472          *********************************************************************************************************
    473          */
    474          

   \                                 In segment CODE, align 4, keep-with-next
    475          static  void  OSView_CmdGetSysInfo (void)
    476          {
   \                     OSView_CmdGetSysInfo:
   \   00000000   F0402DE9           PUSH     {R4-R7,LR}
   \   00000004   20D04DE2           SUB      SP,SP,#+32
    477              INT8U   s[OS_VIEW_CPU_NAME_SIZE+1];
    478              INT8U   i;
    479              INT32U  stk_base;
    480              INT32U  stk_size;
    481              INT32U  time;
    482          
    483          
    484              time = OSTimeGet();                                     /* Send current value of tick counter              */
   \   00000008   ........           _BLF     OSTimeGet,??OSTimeGet??rA
   \   0000000C   0070B0E1           MOVS     R7,R0
    485              OSView_TxStoINT32U(time);
   \   00000010   0700B0E1           MOVS     R0,R7
   \   00000014   ........           BL       OSView_TxStoINT32U
    486              OSView_TxStoPtr(OSTCBCur);                              /* Current task's OS_TCB                           */
   \   00000018   ........           LDR      R0,??DataTable26  ;; OSTCBCur
   \   0000001C   000090E5           LDR      R0,[R0, #+0]
   \   00000020   ........           BL       OSView_TxStoPtr
    487              OSView_TxStoINT16U(OS_VERSION);                         /* Send uC/OS-II's version number                  */
   \   00000024   470FA0E3           MOV      R0,#+284
   \   00000028   ........           BL       OSView_TxStoINT16U
    488              OSView_TxStoINT8U(1);                                   /* Indicate profiling information will be sent     */
   \   0000002C   0100A0E3           MOV      R0,#+1
   \   00000030   ........           BL       OSView_TxStoINT8U
    489          
    490              for (i = 0; i < OS_VIEW_CPU_NAME_SIZE; i++) {           /* Clear buffer to help with debug.                */
   \   00000034   0000A0E3           MOV      R0,#+0
   \   00000038   0040B0E1           MOVS     R4,R0
   \                     ??OSView_CmdGetSysInfo_0:
   \   0000003C   FF4014E2           ANDS     R4,R4,#0xFF      ;; Zero extend
   \   00000040   1E0054E3           CMP      R4,#+30
   \   00000044   0600002A           BCS      ??OSView_CmdGetSysInfo_1
    491                  s[i] = 0x00;
   \   00000048   0400B0E1           MOVS     R0,R4
   \   0000004C   FF0010E2           ANDS     R0,R0,#0xFF      ;; Zero extend
   \   00000050   0D10B0E1           MOVS     R1,SP
   \   00000054   0020A0E3           MOV      R2,#+0
   \   00000058   0120C0E7           STRB     R2,[R0, +R1]
    492              }
   \   0000005C   014094E2           ADDS     R4,R4,#+1
   \   00000060   F5FFFFEA           B        ??OSView_CmdGetSysInfo_0
    493              OSView_GetCPUName(s);                                   /* Get Processor Name in string 's'                */
   \                     ??OSView_CmdGetSysInfo_1:
   \   00000064   0D00B0E1           MOVS     R0,SP
   \   00000068   ........           _BLF     OSView_GetCPUName,??OSView_GetCPUName??rA
    494              OSView_TxStoStr(s, OS_VIEW_CPU_NAME_SIZE);
   \   0000006C   1E10A0E3           MOV      R1,#+30
   \   00000070   0D00B0E1           MOVS     R0,SP
   \   00000074   ........           BL       OSView_TxStoStr
    495          
    496              stk_base = OSView_GetIntStkBase();                      /* Interrupt stack base from port specific file    */
   \   00000078   ........           _BLF     OSView_GetIntStkBase,??OSView_GetIntStkBase??rA
   \   0000007C   0050B0E1           MOVS     R5,R0
    497              OSView_TxStoINT32U(stk_base);
   \   00000080   0500B0E1           MOVS     R0,R5
   \   00000084   ........           BL       OSView_TxStoINT32U
    498          
    499              stk_size = OSView_GetIntStkSize();                      /* Interrupt stack size from port specific file    */
   \   00000088   ........           _BLF     OSView_GetIntStkSize,??OSView_GetIntStkSize??rA
   \   0000008C   0060B0E1           MOVS     R6,R0
    500              OSView_TxStoINT32U(stk_size);
   \   00000090   0600B0E1           MOVS     R0,R6
   \   00000094   ........           BL       OSView_TxStoINT32U
    501          }
   \   00000098   20D08DE2           ADD      SP,SP,#+32       ;; stack cleaning
   \   0000009C   F080BDE8           POP      {R4-R7,PC}       ;; return
    502          
    503          /*$PAGE*/
    504          /*
    505          *********************************************************************************************************
    506          *                                       uC/OS-View COMMAND HANDLER
    507          *                                            (Get Task List)
    508          *********************************************************************************************************
    509          */
    510          

   \                                 In segment CODE, align 4, keep-with-next
    511          static  void  OSView_CmdGetTaskList (void)
    512          {
   \                     OSView_CmdGetTaskList:
   \   00000000   30402DE9           PUSH     {R4,R5,LR}
    513              INT8U   prio;
    514              OS_TCB *ptcb;
    515          
    516          
    517              OSView_TxStoINT8U('t');                                 /* Identifier for data type                        */
   \   00000004   7400A0E3           MOV      R0,#+116
   \   00000008   ........           BL       OSView_TxStoINT8U
    518              for (prio = 0; prio <= OS_LOWEST_PRIO; prio++) {
   \   0000000C   0000A0E3           MOV      R0,#+0
   \   00000010   0040B0E1           MOVS     R4,R0
   \                     ??OSView_CmdGetTaskList_0:
   \   00000014   FF4014E2           ANDS     R4,R4,#0xFF      ;; Zero extend
   \   00000018   200054E3           CMP      R4,#+32
   \   0000001C   0E00002A           BCS      ??OSView_CmdGetTaskList_1
    519                  ptcb = OSTCBPrioTbl[prio];
   \   00000020   0400B0E1           MOVS     R0,R4
   \   00000024   FF0010E2           ANDS     R0,R0,#0xFF      ;; Zero extend
   \   00000028   0410A0E3           MOV      R1,#+4
   \   0000002C   2C209FE5           LDR      R2,??OSView_CmdGetTaskList_2  ;; OSTCBPrioTbl
   \   00000030   912020E0           MLA      R0,R1,R0,R2
   \   00000034   000090E5           LDR      R0,[R0, #+0]
   \   00000038   0050B0E1           MOVS     R5,R0
    520                  if (ptcb != (OS_TCB *)0 && ptcb != (OS_TCB *)1) {   /* Does task exist? (Not a Mutex reserved task)    */
   \   0000003C   000055E3           CMP      R5,#+0
   \   00000040   0300000A           BEQ      ??OSView_CmdGetTaskList_3
   \   00000044   010055E3           CMP      R5,#+1
   \   00000048   0100000A           BEQ      ??OSView_CmdGetTaskList_3
    521                      OSView_TxStoINT32U((INT32U)ptcb);               /* Yes, send the task's TCB address                */
   \   0000004C   0500B0E1           MOVS     R0,R5
   \   00000050   ........           BL       OSView_TxStoINT32U
    522                  }
    523              }
   \                     ??OSView_CmdGetTaskList_3:
   \   00000054   014094E2           ADDS     R4,R4,#+1
   \   00000058   EDFFFFEA           B        ??OSView_CmdGetTaskList_0
    524          }
   \                     ??OSView_CmdGetTaskList_1:
   \   0000005C   3080BDE8           POP      {R4,R5,PC}       ;; return
   \                     ??OSView_CmdGetTaskList_2:
   \   00000060   ........           DC32     OSTCBPrioTbl
    525          
    526          /*
    527          *********************************************************************************************************
    528          *                                       uC/OS-View COMMAND HANDLER
    529          *                                         (Get Task Information)
    530          *********************************************************************************************************
    531          */
    532          

   \                                 In segment CODE, align 4, keep-with-next
    533          static  void  OSView_CmdGetTaskInfo (void)
    534          {
   \                     OSView_CmdGetTaskInfo:
   \   00000000   70402DE9           PUSH     {R4-R6,LR}
    535              OS_TCB  *ptcb;
    536              INT32U   cycles;
    537              INT8U    stat;
    538          
    539          
    540              ptcb   = (OS_TCB *)OSView_RxGetINT32U();                         /* Get the desired task's TCB address     */
   \   00000004   ........           BL       OSView_RxGetINT32U
   \   00000008   0040B0E1           MOVS     R4,R0
    541              cycles = OSView_TimeGetCycles();                                 /* Get timestamp                          */
   \   0000000C   ........           BL       OSView_TimeGetCycles
   \   00000010   0050B0E1           MOVS     R5,R0
    542              OSView_TxStoINT32U(cycles);
   \   00000014   0500B0E1           MOVS     R0,R5
   \   00000018   ........           BL       OSView_TxStoINT32U
    543              if (ptcb != (OS_TCB *)0 && ptcb != (OS_TCB *)1) {                /* Make sure we have a valid TCB pointer  */
   \   0000001C   000054E3           CMP      R4,#+0
   \   00000020   2800000A           BEQ      ??OSView_CmdGetTaskInfo_0
   \   00000024   010054E3           CMP      R4,#+1
   \   00000028   2600000A           BEQ      ??OSView_CmdGetTaskInfo_0
    544                  if (ptcb == OSTCBCur) {
   \   0000002C   ........           LDR      R0,??DataTable26  ;; OSTCBCur
   \   00000030   000090E5           LDR      R0,[R0, #+0]
   \   00000034   000054E1           CMP      R4,R0
   \   00000038   0500001A           BNE      ??OSView_CmdGetTaskInfo_1
    545                      ptcb->OSTCBCyclesTot  += cycles - ptcb->OSTCBCyclesStart;
   \   0000003C   380094E5           LDR      R0,[R4, #+56]
   \   00000040   000095E0           ADDS     R0,R5,R0
   \   00000044   3C1094E5           LDR      R1,[R4, #+60]
   \   00000048   010050E0           SUBS     R0,R0,R1
   \   0000004C   380084E5           STR      R0,[R4, #+56]
    546                      ptcb->OSTCBCyclesStart = cycles;
   \   00000050   3C5084E5           STR      R5,[R4, #+60]
    547                  }
    548                  OSView_TxStoStr(ptcb->OSTCBTaskName, OS_TASK_NAME_SIZE - 1); /* Task name                              */
   \                     ??OSView_CmdGetTaskInfo_1:
   \   00000054   0F10A0E3           MOV      R1,#+15
   \   00000058   480094E2           ADDS     R0,R4,#+72
   \   0000005C   ........           BL       OSView_TxStoStr
    549                  OSView_TxStoINT8U(ptcb->OSTCBPrio);                          /* Prio                                   */
   \   00000060   2E00D4E5           LDRB     R0,[R4, #+46]
   \   00000064   ........           BL       OSView_TxStoINT8U
    550                  stat = OSView_CmdGetTaskInfo_TCBStat(ptcb);                  /* Task status                            */
   \   00000068   0400B0E1           MOVS     R0,R4
   \   0000006C   ........           BL       OSView_CmdGetTaskInfo_TCBStat
   \   00000070   0060B0E1           MOVS     R6,R0
    551                  OSView_TxStoINT8U(stat);
   \   00000074   0600B0E1           MOVS     R0,R6
   \   00000078   ........           BL       OSView_TxStoINT8U
    552                  OSView_TxStoINT32U((INT32U)ptcb->OSTCBEventPtr);             /* Pointer to event task is waiting for.  */
   \   0000007C   1C0094E5           LDR      R0,[R4, #+28]
   \   00000080   ........           BL       OSView_TxStoINT32U
    553                  OSView_TxStoINT32U((INT32U)ptcb->OSTCBDly);                  /* Timeout (i.e. ticks of delayed task)   */
   \   00000084   BA02D4E1           LDRH     R0,[R4, #+42]
   \   00000088   ........           BL       OSView_TxStoINT32U
    554                  OSView_TxStoINT32U(ptcb->OSTCBCyclesTot);                    /* ExecTime                               */
   \   0000008C   380094E5           LDR      R0,[R4, #+56]
   \   00000090   ........           BL       OSView_TxStoINT32U
    555                  OSView_TxStoINT32U(ptcb->OSTCBCtxSwCtr);                     /* NumActivations                         */
   \   00000094   340094E5           LDR      R0,[R4, #+52]
   \   00000098   ........           BL       OSView_TxStoINT32U
    556          
    557                  OSView_TxStoINT32U((INT32U)ptcb->OSTCBStkBase);              /* Stack base address                     */
   \   0000009C   400094E5           LDR      R0,[R4, #+64]
   \   000000A0   ........           BL       OSView_TxStoINT32U
    558                  OSView_TxStoINT32U(ptcb->OSTCBStkSize * sizeof(OS_STK));     /* Stack size (in #bytes)                 */
   \   000000A4   0C0094E5           LDR      R0,[R4, #+12]
   \  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -