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

📄 os_cpu_a.lst

📁 移植的ucos
💻 LST
📖 第 1 页 / 共 4 页
字号:
    146.3  000000E0                              ENDM
    147    000000E0                              POPRS                         
                                       ; Restore all registers 
    147.1  000000E0 91F9                         LD      R31,Y+
    147.2  000000E2 91E9                         LD      R30,Y+
    147.3  000000E4 91B9                         LD      R27,Y+
    147.4  000000E6 91A9                         LD      R26,Y+
    147.5  000000E8 9199                         LD      R25,Y+
    147.6  000000EA 9189                         LD      R24,Y+
    147.7  000000EC 9179                         LD      R23,Y+
    147.8  000000EE 9169                         LD      R22,Y+
    147.9  000000F0 9159                         LD      R21,Y+
    147.10 000000F2 9149                         LD      R20,Y+
    147.11 000000F4 9139                         LD      R19,Y+
    147.12 000000F6 9129                         LD      R18,Y+
    147.13 000000F8 9119                         LD      R17,Y+
    147.14 000000FA 9109                         LD      R16,Y+
    147.15 000000FC 90F9                         LD      R15,Y+
    147.16 000000FE 90E9                         LD      R14,Y+
    147.17 00000100 90D9                         LD      R13,Y+
    147.18 00000102 90C9                         LD      R12,Y+
    147.19 00000104 90B9                         LD      R11,Y+
    147.20 00000106 90A9                         LD      R10,Y+
    147.21 00000108 9099                         LD      R9,Y+
    147.22 0000010A 9089                         LD      R8,Y+
    147.23 0000010C 9079                         LD      R7,Y+
    147.24 0000010E 9069                         LD      R6,Y+
    147.25 00000110 9059                         LD      R5,Y+
    147.26 00000112 9049                         LD      R4,Y+
    147.27 00000114 9039                         LD      R3,Y+
    147.28 00000116 9029                         LD      R2,Y+
    147.29 00000118 9019                         LD      R1,Y+
    147.30 0000011A 9009                         LD      R0,Y+
    147.31 0000011C                              ENDM
    148    0000011C 9508                         RET
    149    0000011E              
    150    0000011E              
    151    0000011E              ;*********************************************
                                 **********************************************
                                 **************
    152    0000011E              ;                                INTERRUPT
                                  LEVEL CONTEXT SWITCH
    153    0000011E              ;
    154    0000011E              ; Description : This function is called by
                                  OSIntExit() to perform a context switch to a
                                  task that has
    155    0000011E              ;               been made ready-to-run by an
                                  ISR.
    156    0000011E              ;
    157    0000011E              ; Note(s)     : 1) Upon entry,
    158    0000011E              ;                  OSTCBCur     points to the
                                  OS_TCB of the task to suspend
    159    0000011E              ;                  OSTCBHighRdy points to the
                                  OS_TCB of the task to resume
    160    0000011E              ;
    161    0000011E              ;               2) The stack frame of the task
                                  to suspend looks as follows:
    162    0000011E              ;
    163    0000011E              ;                                       SP+0
                                  --> LSB of return address of OSIntCtxSw()  
                                  (Low memory)
    164    0000011E              ;                                         +1  
                                    MSB of return address of OSIntCtxSw()
    165    0000011E              ;                                         +2  
                                    LSB of return address of OSIntExit()
    166    0000011E              ;                                         +3  
                                    MSB of return address of OSIntExit()
    167    0000011E              ;                                         +4  
                                    Saved SREG (when OS_CRITICAL_METHOD ==
                                  2)
    168    0000011E              ;                                         +5  
                                    LSB of task code address
    169    0000011E              ;                                         +6  
                                    MSB of task code address               
                                  (High memory)
    170    0000011E              ;
    171    0000011E              ;               3) The saved context of the
                                  task to resume looks as follows:
    172    0000011E              ;
    173    0000011E              ;                  OSTCBHighRdy->OSTCBStkPtr
                                  --> LSB of (return) stack pointer          
                                  (Low memory)
    174    0000011E              ;                                             
                                    MSB of (return) stack pointer
    175    0000011E              ;                                             
                                    Flags to load in status register
    176    0000011E              ;                                             
                                    R31
    177    0000011E              ;                                             
                                    R30
    178    0000011E              ;                                             
                                    R27
    179    0000011E              ;                                             
                                    .
    180    0000011E              ;                                             
                                    .
    181    0000011E              ;                                             
                                    .
    182    0000011E              ;                                             
                                    R0                                     
                                  (High memory)
    183    0000011E              ;*********************************************
                                 **********************************************
                                 **************
    184    0000011E              
    185    0000011E 91E0....     OSIntCtxSw:     LDS     R30,OSTCBCur          
                                                                   ; Z =
                                                              OSTCBCur->OSTCBSt
                                                             kPtr
    186    00000122 91F0....                     LDS     R31,OSTCBCur+1        
                                                                   ;
    187    00000126 93C1                         ST      Z+,R28                
                                                                 ; Save Y
                                                            pointer
    188    00000128 93D1                         ST      Z+,R29                
                                                                 ;
    189    0000012A              
    190    0000012A ....                         RCALL   OSTaskSwHook          
       ; Call user defined task switch hook
    191    0000012C              
    192    0000012C 9100....                     LDS     R16,OSPrioHighRdy     
                                                                   ; OSPrioCur
                                                              = OSPrioHighRdy
    193    00000130 9300....                     STS     OSPrioCur,R16         
                                                                        
                                                                    ;
    194    00000134              
    195    00000134 91E0....                     LDS     R30,OSTCBHighRdy      
                                                                   ; Z =
                                                              OSTCBHighRdy->OST
                                                             CBStkPtr
    196    00000138 91F0....                     LDS     R31,OSTCBHighRdy+1    
                                                                   ;
    197    0000013C 93E0....                     STS     OSTCBCur,R30          
                                                                        ;
                                                                   OSTCBCur =
                                                                   OSTCBHighRdy
    198    00000140 93F0....                     STS     OSTCBCur+1,R31        
                                                                       
                                                                   ;
    199    00000144              
    200    00000144 91C1                         LD      R28,Z+                
                                                                   ; Restore Y
                                                              pointer
    201    00000146 91D1                         LD      R29,Z+                
                                                                   ;
    202    00000148                              POPSP                         
                                       ; Restore stack pointer
    202.1  00000148 9109                         LD      R16,Y+
    202.2  0000014A BF0D                         OUT     SPL,R16
    202.3  0000014C 9109                         LD      R16,Y+
    202.4  0000014E BF0E                         OUT     SPH,R16
    202.5  00000150                              ENDM
    203    00000150                              POPSREG                       
                                       ; Restore status register
    203.1  00000150 9109                         LD      R16,Y+
    203.2  00000152 BF0F                         OUT     SREG,R16
    203.3  00000154                              ENDM
    204    00000154                              POPRS                         
                                       ; Restore saved registers
    204.1  00000154 91F9                         LD      R31,Y+
    204.2  00000156 91E9                         LD      R30,Y+
    204.3  00000158 91B9                         LD      R27,Y+
    204.4  0000015A 91A9                         LD      R26,Y+
    204.5  0000015C 9199                         LD      R25,Y+
    204.6  0000015E 9189                         LD      R24,Y+
    204.7  00000160 9179                         LD      R23,Y+
    204.8  00000162 9169                         LD      R22,Y+
    204.9  00000164 9159                         LD      R21,Y+
    204.10 00000166 9149                         LD      R20,Y+
    204.11 00000168 9139                         LD      R19,Y+
    204.12 0000016A 9129                         LD      R18,Y+
    204.13 0000016C 9119                         LD      R17,Y+
    204.14 0000016E 9109                         LD      R16,Y+
    204.15 00000170 90F9                         LD      R15,Y+
    204.16 00000172 90E9                         LD      R14,Y+
    204.17 00000174 90D9                         LD      R13,Y+
    204.18 00000176 90C9                         LD      R12,Y+
    204.19 00000178 90B9                         LD      R11,Y+
    204.20 0000017A 90A9                         LD      R10,Y+
    204.21 0000017C 9099                         LD      R9,Y+
    204.22 0000017E 9089                         LD      R8,Y+
    204.23 00000180 9079                         LD      R7,Y+

⌨️ 快捷键说明

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