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

📄 os_time.lst

📁 lpc2478开发板基于IAR编译器移植ucos实验例程
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00000090   BA02C5E1           STRH     R0,[R5, #+42]
    188              if ((ptcb->OSTCBStat & OS_STAT_PEND_ANY) != OS_STAT_RDY) {
   \   00000094   2C00D5E5           LDRB     R0,[R5, #+44]
   \   00000098   370010E3           TST      R0,#0x37
   \   0000009C   0500000A           BEQ      ??OSTimeDlyResume_6
    189                  ptcb->OSTCBStat     &= ~OS_STAT_PEND_ANY;              /* Yes, Clear status flag               */
   \   000000A0   2C00D5E5           LDRB     R0,[R5, #+44]
   \   000000A4   C80010E2           ANDS     R0,R0,#0xC8
   \   000000A8   2C00C5E5           STRB     R0,[R5, #+44]
    190                  ptcb->OSTCBStatPend  =  OS_STAT_PEND_TO;               /* Indicate PEND timeout                */
   \   000000AC   0100A0E3           MOV      R0,#+1
   \   000000B0   2D00C5E5           STRB     R0,[R5, #+45]
   \   000000B4   010000EA           B        ??OSTimeDlyResume_7
    191              } else {
    192                  ptcb->OSTCBStatPend  =  OS_STAT_PEND_OK;
   \                     ??OSTimeDlyResume_6:
   \   000000B8   0000A0E3           MOV      R0,#+0
   \   000000BC   2D00C5E5           STRB     R0,[R5, #+45]
    193              }
    194              if ((ptcb->OSTCBStat & OS_STAT_SUSPEND) == OS_STAT_RDY) {  /* Is task suspended?                   */
   \                     ??OSTimeDlyResume_7:
   \   000000C0   2C00D5E5           LDRB     R0,[R5, #+44]
   \   000000C4   080010E3           TST      R0,#0x8
   \   000000C8   1100001A           BNE      ??OSTimeDlyResume_8
    195                  OSRdyGrp               |= ptcb->OSTCBBitY;             /* No,  Make ready                      */
   \   000000CC   ........           LDR      R0,??DataTable6  ;; OSRdyGrp
   \   000000D0   ........           LDR      R1,??DataTable6  ;; OSRdyGrp
   \   000000D4   0010D1E5           LDRB     R1,[R1, #+0]
   \   000000D8   3220D5E5           LDRB     R2,[R5, #+50]
   \   000000DC   011092E1           ORRS     R1,R2,R1
   \   000000E0   0010C0E5           STRB     R1,[R0, #+0]
    196                  OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;
   \   000000E4   3000D5E5           LDRB     R0,[R5, #+48]
   \   000000E8   ........           LDR      R1,??DataTable8  ;; OSRdyTbl
   \   000000EC   3020D5E5           LDRB     R2,[R5, #+48]
   \   000000F0   ........           LDR      R3,??DataTable8  ;; OSRdyTbl
   \   000000F4   0320D2E7           LDRB     R2,[R2, +R3]
   \   000000F8   3130D5E5           LDRB     R3,[R5, #+49]
   \   000000FC   022093E1           ORRS     R2,R3,R2
   \   00000100   0120C0E7           STRB     R2,[R0, +R1]
    197                  OS_EXIT_CRITICAL();
   \   00000104   0600B0E1           MOVS     R0,R6
   \   00000108   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rA
    198                  OS_Sched();                                            /* See if this is new highest priority  */
   \   0000010C   ........           _BLF     OS_Sched,??OS_Sched??rA
   \   00000110   010000EA           B        ??OSTimeDlyResume_9
    199              } else {
    200                  OS_EXIT_CRITICAL();                                    /* Task may be suspended                */
   \                     ??OSTimeDlyResume_8:
   \   00000114   0600B0E1           MOVS     R0,R6
   \   00000118   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rA
    201              }
    202              return (OS_ERR_NONE);
   \                     ??OSTimeDlyResume_9:
   \   0000011C   0000A0E3           MOV      R0,#+0
   \                     ??OSTimeDlyResume_1:
   \   00000120   7080BDE8           POP      {R4-R6,PC}       ;; return
   \                     ??OSTimeDlyResume_2:
   \   00000124   ........           DC32     OSTCBPrioTbl
    203          }
    204          #endif
    205          /*$PAGE*/
    206          /*
    207          *********************************************************************************************************
    208          *                                         GET CURRENT SYSTEM TIME
    209          *
    210          * Description: This function is used by your application to obtain the current value of the 32-bit
    211          *              counter which keeps track of the number of clock ticks.
    212          *
    213          * Arguments  : none
    214          *
    215          * Returns    : The current value of OSTime
    216          *********************************************************************************************************
    217          */
    218          
    219          #if OS_TIME_GET_SET_EN > 0

   \                                 In segment CODE, align 4, keep-with-next
    220          INT32U  OSTimeGet (void)
    221          {
   \                     OSTimeGet:
   \   00000000   30402DE9           PUSH     {R4,R5,LR}
    222              INT32U     ticks;
    223          #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
    224              OS_CPU_SR  cpu_sr = 0;
   \   00000004   0000A0E3           MOV      R0,#+0
   \   00000008   0050B0E1           MOVS     R5,R0
    225          #endif
    226          
    227          
    228          
    229              OS_ENTER_CRITICAL();
   \   0000000C   ........           _BLF     OS_CPU_SR_Save,??OS_CPU_SR_Save??rA
   \   00000010   0050B0E1           MOVS     R5,R0
    230              ticks = OSTime;
   \   00000014   ........           LDR      R0,??DataTable10  ;; OSTime
   \   00000018   000090E5           LDR      R0,[R0, #+0]
   \   0000001C   0040B0E1           MOVS     R4,R0
    231              OS_EXIT_CRITICAL();
   \   00000020   0500B0E1           MOVS     R0,R5
   \   00000024   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rA
    232              return (ticks);
   \   00000028   0400B0E1           MOVS     R0,R4
   \   0000002C   3080BDE8           POP      {R4,R5,PC}       ;; return
    233          }
    234          #endif
    235          
    236          /*
    237          *********************************************************************************************************
    238          *                                            SET SYSTEM CLOCK
    239          *
    240          * Description: This function sets the 32-bit counter which keeps track of the number of clock ticks.
    241          *
    242          * Arguments  : ticks      specifies the new value that OSTime needs to take.
    243          *
    244          * Returns    : none
    245          *********************************************************************************************************
    246          */
    247          
    248          #if OS_TIME_GET_SET_EN > 0

   \                                 In segment CODE, align 4, keep-with-next
    249          void  OSTimeSet (INT32U ticks)
    250          {
   \                     OSTimeSet:
   \   00000000   30402DE9           PUSH     {R4,R5,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
    251          #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
    252              OS_CPU_SR  cpu_sr = 0;
   \   00000008   0000A0E3           MOV      R0,#+0
   \   0000000C   0050B0E1           MOVS     R5,R0
    253          #endif
    254          
    255          
    256          
    257              OS_ENTER_CRITICAL();
   \   00000010   ........           _BLF     OS_CPU_SR_Save,??OS_CPU_SR_Save??rA
   \   00000014   0050B0E1           MOVS     R5,R0
    258              OSTime = ticks;
   \   00000018   ........           LDR      R0,??DataTable10  ;; OSTime
   \   0000001C   004080E5           STR      R4,[R0, #+0]
    259              OS_EXIT_CRITICAL();
   \   00000020   0500B0E1           MOVS     R0,R5
   \   00000024   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rA
    260          }
   \   00000028   3080BDE8           POP      {R4,R5,PC}       ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable6:
   \   00000000   ........           DC32     OSRdyGrp

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable8:
   \   00000000   ........           DC32     OSRdyTbl

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable10:
   \   00000000   ........           DC32     OSTime
    261          #endif

   Maximum stack usage in bytes:

     Function        CSTACK
     --------        ------
     OSTimeDly          16
     OSTimeDlyHMSM      28
     OSTimeDlyResume    16
     OSTimeGet          12
     OSTimeSet          12


   Segment part sizes:

     Function/Label  Bytes
     --------------  -----
     OSTimeDly        172
     OSTimeDlyHMSM    260
     OSTimeDlyResume  296
     OSTimeGet         48
     OSTimeSet         44
     ??DataTable6       4
     ??DataTable8       4
     ??DataTable10      4
      Others           48

 
 880 bytes in segment CODE
 
 832 bytes of CODE memory (+ 48 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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