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

📄 os_time.lst

📁 ARM仿真案例
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00000034   3124               MOVS     R4,#+49
   \   00000036   0C5D               LDRB     R4,[R1, R4]
   \   00000038   1C43               ORRS     R4,R4,R3
   \   0000003A   1470               STRB     R4,[R2, #+0]
    165                          OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;
   \   0000003C   2F22               MOVS     R2,#+47
   \   0000003E   8A5C               LDRB     R2,[R1, R2]
   \   00000040   ....               LDR      R3,??DataTable8  ;; OSRdyTbl
   \   00000042   2F24               MOVS     R4,#+47
   \   00000044   0C5D               LDRB     R4,[R1, R4]
   \   00000046   ....               LDR      R5,??DataTable8  ;; OSRdyTbl
   \   00000048   2C5D               LDRB     R4,[R5, R4]
   \   0000004A   3031               ADDS     R1,R1,#+48
   \   0000004C   0978               LDRB     R1,[R1, #+0]
   \   0000004E   2143               ORRS     R1,R1,R4
   \   00000050   9954               STRB     R1,[R3, R2]
    166                          OS_EXIT_CRITICAL();
   \   00000052   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rT
    167                          OS_Sched();                                /* See if this is new highest priority      */
   \   00000056   ........           _BLF     OS_Sched,??OS_Sched??rT
   \   0000005A   01E0               B        ??OSTimeDlyResume_6
    168                      } else {
    169                          OS_EXIT_CRITICAL();                        /* Task may be suspended                    */
   \                     ??OSTimeDlyResume_5:
   \   0000005C   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rT
    170                      }
    171                      return (OS_NO_ERR);
   \                     ??OSTimeDlyResume_6:
   \   00000060   0020               MOVS     R0,#+0
   \   00000062   06E0               B        ??OSTimeDlyResume_1
    172                  } else {
    173                      OS_EXIT_CRITICAL();
   \                     ??OSTimeDlyResume_4:
   \   00000064   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rT
    174                      return (OS_TIME_NOT_DLY);                      /* Indicate that task was not delayed       */
   \   00000068   5020               MOVS     R0,#+80
   \   0000006A   02E0               B        ??OSTimeDlyResume_1
    175                  }
    176              }
    177              OS_EXIT_CRITICAL();
   \                     ??OSTimeDlyResume_3:
   \   0000006C   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rT
    178              return (OS_TASK_NOT_EXIST);                            /* The task does not exist                  */
   \   00000070   0B20               MOVS     R0,#+11
   \                     ??OSTimeDlyResume_1:
   \   00000072   30BC               POP      {R4,R5}
   \   00000074   02BC               POP      {R1}
   \   00000076   0847               BX       R1               ;; return
   \                     ??OSTimeDlyResume_2:
   \   00000078   ........           DC32     OSTCBPrioTbl
    179          }
    180          #endif    
    181          /*$PAGE*/
    182          /*
    183          *********************************************************************************************************
    184          *                                         GET CURRENT SYSTEM TIME
    185          *
    186          * Description: This function is used by your application to obtain the current value of the 32-bit
    187          *              counter which keeps track of the number of clock ticks.
    188          *
    189          * Arguments  : none
    190          *
    191          * Returns    : The current value of OSTime
    192          *********************************************************************************************************
    193          */
    194          
    195          #if OS_TIME_GET_SET_EN > 0

   \                                 In segment CODE, align 4, keep-with-next
    196          INT32U  OSTimeGet (void)
    197          {
   \                     OSTimeGet:
   \   00000000   10B5               PUSH     {R4,LR}
    198          #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
    199              OS_CPU_SR  cpu_sr;
    200          #endif    
    201              INT32U     ticks;
    202          
    203          
    204              OS_ENTER_CRITICAL();
   \   00000002   ........           _BLF     OS_CPU_SR_Save,??OS_CPU_SR_Save??rT
    205              ticks = OSTime;
   \   00000006   ....               LDR      R1,??DataTable10  ;; OSTime
   \   00000008   0C68               LDR      R4,[R1, #+0]
    206              OS_EXIT_CRITICAL();
   \   0000000A   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rT
    207              return (ticks);
   \   0000000E   2000               MOVS     R0,R4
   \   00000010   10BC               POP      {R4}
   \   00000012   02BC               POP      {R1}
   \   00000014   0847               BX       R1               ;; return
    208          }
    209          #endif    
    210          
    211          /*
    212          *********************************************************************************************************
    213          *                                            SET SYSTEM CLOCK
    214          *
    215          * Description: This function sets the 32-bit counter which keeps track of the number of clock ticks.
    216          *
    217          * Arguments  : ticks      specifies the new value that OSTime needs to take.
    218          *
    219          * Returns    : none
    220          *********************************************************************************************************
    221          */
    222          
    223          #if OS_TIME_GET_SET_EN > 0

   \                                 In segment CODE, align 4, keep-with-next
    224          void  OSTimeSet (INT32U ticks)
    225          {
   \                     OSTimeSet:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    226          #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
    227              OS_CPU_SR  cpu_sr;
    228          #endif    
    229          
    230          
    231              OS_ENTER_CRITICAL();
   \   00000004   ........           _BLF     OS_CPU_SR_Save,??OS_CPU_SR_Save??rT
    232              OSTime = ticks;
   \   00000008   ....               LDR      R1,??DataTable10  ;; OSTime
   \   0000000A   0C60               STR      R4,[R1, #+0]
    233              OS_EXIT_CRITICAL();
   \   0000000C   ........           _BLF     OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rT
    234          }
   \   00000010   10BC               POP      {R4}
   \   00000012   01BC               POP      {R0}
   \   00000014   0047               BX       R0               ;; 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
    235          #endif    

   Maximum stack usage in bytes:

     Function        CSTACK
     --------        ------
     OSTimeDly          12
     OSTimeDlyHMSM       8
     OSTimeDlyResume    12
     OSTimeGet           8
     OSTimeSet           8


   Segment part sizes:

     Function/Label  Bytes
     --------------  -----
     OSTimeDly         96
     OSTimeDlyHMSM    142
     OSTimeDlyResume  124
     OSTimeGet         22
     OSTimeSet         22
     ??DataTable6       4
     ??DataTable8       4
     ??DataTable10      4
      Others           80

 
 498 bytes in segment CODE
 
 418 bytes of CODE memory (+ 80 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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