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

📄 os_task.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0000007E   8DF80100           STRB     R0,[SP, #+1]
    109              bitx_new              = (OS_PRIO)(1uL << x_new);
   \   00000082   0120               MOVS     R0,#+1
   \   00000084   9DF80310           LDRB     R1,[SP, #+3]
   \   00000088   8840               LSLS     R0,R0,R1
   \   0000008A   8DF80000           STRB     R0,[SP, #+0]
    110          
    111              OSTCBPrioTbl[oldprio] = (OS_TCB *)0;                    /* Remove TCB from old priority            */
   \   0000008E   9DF80800           LDRB     R0,[SP, #+8]
   \   00000092   ........           LDR.W    R1,??DataTable14
   \   00000096   0022               MOVS     R2,#+0
   \   00000098   41F82020           STR      R2,[R1, R0, LSL #+2]
    112              OSTCBPrioTbl[newprio] =  ptcb;                          /* Place pointer to TCB @ new priority     */
   \   0000009C   E4B2               UXTB     R4,R4            ;; ZeroExt  R4,R4,#+24,#+24
   \   0000009E   ........           LDR.W    R0,??DataTable14
   \   000000A2   40F82470           STR      R7,[R0, R4, LSL #+2]
    113              y_old                 =  ptcb->OSTCBY;
   \   000000A6   97F83800           LDRB     R0,[R7, #+56]
   \   000000AA   8146               MOV      R9,R0
    114              bity_old              =  ptcb->OSTCBBitY;
   \   000000AC   97F83A00           LDRB     R0,[R7, #+58]
   \   000000B0   8DF80200           STRB     R0,[SP, #+2]
    115              bitx_old              =  ptcb->OSTCBBitX;
   \   000000B4   97F83900           LDRB     R0,[R7, #+57]
   \   000000B8   8246               MOV      R10,R0
    116              if ((OSRdyTbl[y_old] &   bitx_old) != 0u) {             /* If task is ready make it not            */
   \   000000BA   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   000000BE   ........           LDR.W    R0,??DataTable14_2
   \   000000C2   19F80000           LDRB     R0,[R9, R0]
   \   000000C6   5FFA8AFA           UXTB     R10,R10          ;; ZeroExt  R10,R10,#+24,#+24
   \   000000CA   1AEA0000           ANDS     R0,R10,R0
   \   000000CE   C0B2               UXTB     R0,R0            ;; ZeroExt  R0,R0,#+24,#+24
   \   000000D0   0028               CMP      R0,#+0
   \   000000D2   36D0               BEQ.N    ??OSTaskChangePrio_5
    117                   OSRdyTbl[y_old] &= (OS_PRIO)~bitx_old;
   \   000000D4   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   000000D8   ........           LDR.W    R0,??DataTable14_2
   \   000000DC   19F80000           LDRB     R0,[R9, R0]
   \   000000E0   30EA0A00           BICS     R0,R0,R10
   \   000000E4   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   000000E8   ........           LDR.W    R1,??DataTable14_2
   \   000000EC   09F80100           STRB     R0,[R9, R1]
    118                   if (OSRdyTbl[y_old] == 0u) {
   \   000000F0   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   000000F4   ........           LDR.W    R0,??DataTable14_2
   \   000000F8   19F80000           LDRB     R0,[R9, R0]
   \   000000FC   0028               CMP      R0,#+0
   \   000000FE   08D1               BNE.N    ??OSTaskChangePrio_6
    119                       OSRdyGrp &= (OS_PRIO)~bity_old;
   \   00000100   ........           LDR.W    R0,??DataTable14_3
   \   00000104   0078               LDRB     R0,[R0, #+0]
   \   00000106   9DF80210           LDRB     R1,[SP, #+2]
   \   0000010A   8843               BICS     R0,R0,R1
   \   0000010C   ........           LDR.W    R1,??DataTable14_3
   \   00000110   0870               STRB     R0,[R1, #+0]
    120                   }
    121                   OSRdyGrp        |= bity_new;                       /* Make new priority ready to run          */
   \                     ??OSTaskChangePrio_6:
   \   00000112   ........           LDR.W    R0,??DataTable14_3
   \   00000116   0078               LDRB     R0,[R0, #+0]
   \   00000118   9DF80110           LDRB     R1,[SP, #+1]
   \   0000011C   0843               ORRS     R0,R1,R0
   \   0000011E   ........           LDR.W    R1,??DataTable14_3
   \   00000122   0870               STRB     R0,[R1, #+0]
    122                   OSRdyTbl[y_new] |= bitx_new;
   \   00000124   5FFA88F8           UXTB     R8,R8            ;; ZeroExt  R8,R8,#+24,#+24
   \   00000128   ........           LDR.W    R0,??DataTable14_2
   \   0000012C   18F80000           LDRB     R0,[R8, R0]
   \   00000130   9DF80010           LDRB     R1,[SP, #+0]
   \   00000134   0843               ORRS     R0,R1,R0
   \   00000136   5FFA88F8           UXTB     R8,R8            ;; ZeroExt  R8,R8,#+24,#+24
   \   0000013A   ........           LDR.W    R1,??DataTable14_2
   \   0000013E   08F80100           STRB     R0,[R8, R1]
    123              }
    124          
    125          #if (OS_EVENT_EN)
    126              pevent = ptcb->OSTCBEventPtr;
   \                     ??OSTaskChangePrio_5:
   \   00000142   F869               LDR      R0,[R7, #+28]
   \   00000144   0500               MOVS     R5,R0
    127              if (pevent != (OS_EVENT *)0) {
   \   00000146   002D               CMP      R5,#+0
   \   00000148   29D0               BEQ.N    ??OSTaskChangePrio_7
    128                  pevent->OSEventTbl[y_old] &= (OS_PRIO)~bitx_old;    /* Remove old task prio from wait list     */
   \   0000014A   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   0000014E   19EB0500           ADDS     R0,R9,R5
   \   00000152   C07A               LDRB     R0,[R0, #+11]
   \   00000154   30EA0A00           BICS     R0,R0,R10
   \   00000158   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   0000015C   19EB0501           ADDS     R1,R9,R5
   \   00000160   C872               STRB     R0,[R1, #+11]
    129                  if (pevent->OSEventTbl[y_old] == 0u) {
   \   00000162   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   00000166   19EB0500           ADDS     R0,R9,R5
   \   0000016A   C07A               LDRB     R0,[R0, #+11]
   \   0000016C   0028               CMP      R0,#+0
   \   0000016E   04D1               BNE.N    ??OSTaskChangePrio_8
    130                      pevent->OSEventGrp    &= (OS_PRIO)~bity_old;
   \   00000170   A87A               LDRB     R0,[R5, #+10]
   \   00000172   9DF80210           LDRB     R1,[SP, #+2]
   \   00000176   8843               BICS     R0,R0,R1
   \   00000178   A872               STRB     R0,[R5, #+10]
    131                  }
    132                  pevent->OSEventGrp        |= bity_new;              /* Add    new task prio to   wait list     */
   \                     ??OSTaskChangePrio_8:
   \   0000017A   A87A               LDRB     R0,[R5, #+10]
   \   0000017C   9DF80110           LDRB     R1,[SP, #+1]
   \   00000180   0843               ORRS     R0,R1,R0
   \   00000182   A872               STRB     R0,[R5, #+10]
    133                  pevent->OSEventTbl[y_new] |= bitx_new;
   \   00000184   5FFA88F8           UXTB     R8,R8            ;; ZeroExt  R8,R8,#+24,#+24
   \   00000188   18EB0500           ADDS     R0,R8,R5
   \   0000018C   C07A               LDRB     R0,[R0, #+11]
   \   0000018E   9DF80010           LDRB     R1,[SP, #+0]
   \   00000192   0843               ORRS     R0,R1,R0
   \   00000194   5FFA88F8           UXTB     R8,R8            ;; ZeroExt  R8,R8,#+24,#+24
   \   00000198   18EB0501           ADDS     R1,R8,R5
   \   0000019C   C872               STRB     R0,[R1, #+11]
    134              }
    135          #if (OS_EVENT_MULTI_EN > 0u)
    136              if (ptcb->OSTCBEventMultiPtr != (OS_EVENT **)0) {
   \                     ??OSTaskChangePrio_7:
   \   0000019E   386A               LDR      R0,[R7, #+32]
   \   000001A0   0028               CMP      R0,#+0
   \   000001A2   33D0               BEQ.N    ??OSTaskChangePrio_9
    137                  pevents =  ptcb->OSTCBEventMultiPtr;
   \   000001A4   386A               LDR      R0,[R7, #+32]
   \   000001A6   0600               MOVS     R6,R0
    138                  pevent  = *pevents;
   \   000001A8   3068               LDR      R0,[R6, #+0]
   \   000001AA   0500               MOVS     R5,R0
    139                  while (pevent != (OS_EVENT *)0) {
   \                     ??OSTaskChangePrio_10:
   \   000001AC   002D               CMP      R5,#+0
   \   000001AE   2DD0               BEQ.N    ??OSTaskChangePrio_9
    140                      pevent->OSEventTbl[y_old] &= (OS_PRIO)~bitx_old;   /* Remove old task prio from wait lists */
   \   000001B0   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   000001B4   19EB0500           ADDS     R0,R9,R5
   \   000001B8   C07A               LDRB     R0,[R0, #+11]
   \   000001BA   30EA0A00           BICS     R0,R0,R10
   \   000001BE   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   000001C2   19EB0501           ADDS     R1,R9,R5
   \   000001C6   C872               STRB     R0,[R1, #+11]
    141                      if (pevent->OSEventTbl[y_old] == 0u) {
   \   000001C8   5FFA89F9           UXTB     R9,R9            ;; ZeroExt  R9,R9,#+24,#+24
   \   000001CC   19EB0500           ADDS     R0,R9,R5
   \   000001D0   C07A               LDRB     R0,[R0, #+11]
   \   000001D2   0028               CMP      R0,#+0
   \   000001D4   04D1               BNE.N    ??OSTaskChangePrio_11
    142                          pevent->OSEventGrp    &= (OS_PRIO)~bity_old;
   \   000001D6   A87A               LDRB     R0,[R5, #+10]
   \   000001D8   9DF80210           LDRB     R1,[SP, #+2]
   \   000001DC   8843               BICS     R0,R0,R1
   \   000001DE   A872               STRB     R0,[R5, #+10]
    143                      }
    144                      pevent->OSEventGrp        |= bity_new;          /* Add    new task prio to   wait lists    */
   \                     ??OSTaskChangePrio_11:
   \   000001E0   A87A               LDRB     R0,[R5, #+10]
   \   000001E2   9DF80110           LDRB     R1,[SP, #+1]
   \   000001E6   0843               ORRS     R0,R1,R0
   \   000001E8   A872               STRB     R0,[R5, #+10]
    145                      pevent->OSEventTbl[y_new] |= bitx_new;
   \   000001EA   5FFA88F8           UXTB     R8,R8            ;; ZeroExt  R8,R8,#+24,#+24
   \   000001EE   18EB0500           ADDS     R0,R8,R5
   \   000001F2   C07A               LDRB     R0,[R0, #+11]
   \   000001F4   9DF80010           LDRB     R1,[SP, #+0]
   \   000001F8   0843               ORRS     R0,R1,R0
   \   000001FA   5FFA88F8           UXTB     R8,R8            ;; ZeroExt  R8,R8,#+24,#+24
   \   000001FE   18EB0501           ADDS     R1,R8,R5
   \   00000202   C872               STRB     R0,[R1, #+11]
    146                      pevents++;
   \   00000204   361D               ADDS     R6,R6,#+4
    147                      pevent                     = *pevents;
   \   00000206   3068               LDR      R0,[R6, #+0]
   \   00000208   0500               MOVS     R5,R0
   \   0000020A   CFE7               B.N      ??OSTaskChangePrio_10
    148                  }
    149              }
    150          #endif
    151          #endif
    152          
    153              ptcb->OSTCBPrio = newprio;                              /* Set new task priority                   */
   \                     ??OSTaskChangePrio_9:
   \   0000020C   87F83640           STRB     R4,[R7, #+54]
    154              ptcb->OSTCBY    = y_new;
   \   00000210   87F83880           STRB     R8,[R7, #+56]
    155              ptcb->OSTCBX    = x_new;
   \   00000214   9DF80300           LDRB     R0,[SP, #+3]
   \   00000218   87F83700           STRB     R0,[R7, #+55]
    156              ptcb->OSTCBBitY = bity_new;
   \   0000021C   9DF80100           LDRB     R0,[SP, #+1]
   \   00000220   87F83A00           STRB     R0,[R7, #+58]
    157              ptcb->OSTCBBitX = bitx_new;
   \   00000224   9DF80000           LDRB     R0,[SP, #+0]
   \   00000228   87F83900           STRB     R0,[R7, #+57]
    158              OS_EXIT_CRITICAL();
   \   0000022C   5846               MOV      R0,R11
   \   0000022E   ........           BL       OS_CPU_SR_Restore
    159              if (OSRunning == OS_TRUE) {
   \   00000232   ........           LDR.W    R0,??DataTable14_4
   \   00000236   0078               LDRB     R0,[R0, #+0]
   \   00000238   0128               CMP      R0,#+1
   \   0000023A   01D1               BNE.N    ??OSTaskChangePrio_12
    160                  OS_Sched();                                         /* Find new highest priority task          */
   \   0000023C   ........           BL       OS_Sched

⌨️ 快捷键说明

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