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

📄 os_cpu_a.lst

📁 移植的ucos
💻 LST
📖 第 1 页 / 共 4 页
字号:
     92.4  0000002A 91A9                         LD      R26,Y+
     92.5  0000002C 9199                         LD      R25,Y+
     92.6  0000002E 9189                         LD      R24,Y+
     92.7  00000030 9179                         LD      R23,Y+
     92.8  00000032 9169                         LD      R22,Y+
     92.9  00000034 9159                         LD      R21,Y+
     92.10 00000036 9149                         LD      R20,Y+
     92.11 00000038 9139                         LD      R19,Y+
     92.12 0000003A 9129                         LD      R18,Y+
     92.13 0000003C 9119                         LD      R17,Y+
     92.14 0000003E 9109                         LD      R16,Y+
     92.15 00000040 90F9                         LD      R15,Y+
     92.16 00000042 90E9                         LD      R14,Y+
     92.17 00000044 90D9                         LD      R13,Y+
     92.18 00000046 90C9                         LD      R12,Y+
     92.19 00000048 90B9                         LD      R11,Y+
     92.20 0000004A 90A9                         LD      R10,Y+
     92.21 0000004C 9099                         LD      R9,Y+
     92.22 0000004E 9089                         LD      R8,Y+
     92.23 00000050 9079                         LD      R7,Y+
     92.24 00000052 9069                         LD      R6,Y+
     92.25 00000054 9059                         LD      R5,Y+
     92.26 00000056 9049                         LD      R4,Y+
     92.27 00000058 9039                         LD      R3,Y+
     92.28 0000005A 9029                         LD      R2,Y+
     92.29 0000005C 9019                         LD      R1,Y+
     92.30 0000005E 9009                         LD      R0,Y+
     92.31 00000060                              ENDM
     93    00000060 9508                         RET                           
       ; Start task
     94    00000062              
     95    00000062              
     96    00000062              ;*********************************************
                                 **********************************************
                                 *************
     97    00000062              ;                                       TASK
                                  LEVEL CONTEXT SWITCH
     98    00000062              ;
     99    00000062              ; Description : This function is called when a
                                  task makes a higher priority task ready-to-ru
                                 n.
    100    00000062              ;
    101    00000062              ; Note(s)     : 1) Upon entry,
    102    00000062              ;                  OSTCBCur     points to the
                                  OS_TCB of the task to suspend
    103    00000062              ;                  OSTCBHighRdy points to the
                                  OS_TCB of the task to resume
    104    00000062              ;
    105    00000062              ;               2) The stack frame of the task
                                  to suspend looks as follows:
    106    00000062              ;
    107    00000062              ;                                       SP+0
                                  --> LSB of task code address
    108    00000062              ;                                         +1  
                                    MSB of task code address               
                                  (High memory)
    109    00000062              ;
    110    00000062              ;               3) The saved context of the
                                  task to resume looks as follows:
    111    00000062              ;
    112    00000062              ;                  OSTCBHighRdy->OSTCBStkPtr
                                  --> LSB of (return) stack pointer          
                                  (Low memory)
    113    00000062              ;                                             
                                    SPH of (return) stack pointer
    114    00000062              ;                                             
                                    Flags to load in status register
    115    00000062              ;                                             
                                    R31
    116    00000062              ;                                             
                                    R30
    117    00000062              ;                                             
                                    R27
    118    00000062              ;                                             
                                    .
    119    00000062              ;                                             
                                    .
    120    00000062              ;                                             
                                    .
    121    00000062              ;                                             
                                    R0                                     
                                  (High memory)
    122    00000062              ;*********************************************
                                 **********************************************
                                 *************
    123    00000062              
    124    00000062              OSCtxSw:        PUSHRS                        
                                       ; Save current task's context
    124.1  00000062 920A                         ST      -Y,R0
    124.2  00000064 921A                         ST      -Y,R1
    124.3  00000066 922A                         ST      -Y,R2
    124.4  00000068 923A                         ST      -Y,R3
    124.5  0000006A 924A                         ST      -Y,R4
    124.6  0000006C 925A                         ST      -Y,R5
    124.7  0000006E 926A                         ST      -Y,R6
    124.8  00000070 927A                         ST      -Y,R7
    124.9  00000072 928A                         ST      -Y,R8
    124.10 00000074 929A                         ST      -Y,R9
    124.11 00000076 92AA                         ST      -Y,R10
    124.12 00000078 92BA                         ST      -Y,R11
    124.13 0000007A 92CA                         ST      -Y,R12
    124.14 0000007C 92DA                         ST      -Y,R13
    124.15 0000007E 92EA                         ST      -Y,R14
    124.16 00000080 92FA                         ST      -Y,R15
    124.17 00000082 930A                         ST      -Y,R16
    124.18 00000084 931A                         ST      -Y,R17
    124.19 00000086 932A                         ST      -Y,R18
    124.20 00000088 933A                         ST      -Y,R19
    124.21 0000008A 934A                         ST      -Y,R20
    124.22 0000008C 935A                         ST      -Y,R21
    124.23 0000008E 936A                         ST      -Y,R22
    124.24 00000090 937A                         ST      -Y,R23
    124.25 00000092 938A                         ST      -Y,R24
    124.26 00000094 939A                         ST      -Y,R25
    124.27 00000096 93AA                         ST      -Y,R26
    124.28 00000098 93BA                         ST      -Y,R27
    124.29 0000009A 93EA                         ST      -Y,R30
    124.30 0000009C 93FA                         ST      -Y,R31
    124.31 0000009E                              ENDM
    125    0000009E                              PUSHSREG
    125.1  0000009E B70F                         IN      R16,SREG
    125.2  000000A0 930A                         ST      -Y,R16
    125.3  000000A2                              ENDM
    126    000000A2                              PUSHSP
    126.1  000000A2 B70E                         IN      R16,SPH
    126.2  000000A4 930A                         ST      -Y,R16
    126.3  000000A6 B70D                         IN      R16,SPL
    126.4  000000A8 930A                         ST      -Y,R16
    126.5  000000AA                              ENDM
    127    000000AA              
    128    000000AA 91E0....                     LDS     R30,OSTCBCur          
                                                                   ; Z =
                                                              OSTCBCur->OSTCBSt
                                                             kPtr
    129    000000AE 91F0....                     LDS     R31,OSTCBCur+1        
                                                                   ;
    130    000000B2 93C1                         ST      Z+,R28                
                                                                 ; Save Y
                                                            (R29:R28)
                                                            pointer
    131    000000B4 93D1                         ST      Z+,R29                
                                                                 ;
    132    000000B6              
    133    000000B6 ....                         RCALL   OSTaskSwHook          
       ; Call user defined task switch hook
    134    000000B8              
    135    000000B8 9100....                     LDS     R16,OSPrioHighRdy     
                                                                   ; OSPrioCur
                                                              = OSPrioHighRdy
    136    000000BC 9300....                     STS     OSPrioCur,R16
    137    000000C0              
    138    000000C0 91E0....                     LDS     R30,OSTCBHighRdy      
                                                                   ; Let Z
                                                              point to TCB of
                                                              highest priority
                                                              task
    139    000000C4 91F0....                     LDS     R31,OSTCBHighRdy+1    
                                                                   ; ready to
                                                              run
    140    000000C8 93E0....                     STS     OSTCBCur,R30          
                                                                        ;
                                                                   OSTCBCur =
                                                                   OSTCBHighRdy
    141    000000CC 93F0....                     STS     OSTCBCur+1,R31        
                                                                       
                                                                   ;
    142    000000D0              
    143    000000D0 91C1                         LD      R28,Z+                
                                                                   ; Restore Y
                                                              pointer
    144    000000D2 91D1                         LD      R29,Z+                
                                                                   ;
    145    000000D4                              POPSP                         
                                       ; Restore stack pointer
    145.1  000000D4 9109                         LD      R16,Y+
    145.2  000000D6 BF0D                         OUT     SPL,R16
    145.3  000000D8 9109                         LD      R16,Y+
    145.4  000000DA BF0E                         OUT     SPH,R16
    145.5  000000DC                              ENDM
    146    000000DC                              POPSREG                       
                                       ; Restore status register
    146.1  000000DC 9109                         LD      R16,Y+
    146.2  000000DE BF0F                         OUT     SREG,R16

⌨️ 快捷键说明

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