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

📄 os_cpu_a.lst

📁 ucos在avr上的移植代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
    175.1  00000018 0991                         LD      R16,Y+
    175.2  0000001A 0DBF                         OUT     SPL,R16
    175.3  0000001C 0991                         LD      R16,Y+
    175.4  0000001E 0EBF                         OUT     SPH,R16
    175.5  00000020                              ENDM
    176    00000020                              POPRS                         
                                       ; Pop all registers and status
                                  register
    176.1  00000020 0991                         LD      R16,Y+
    176.2  00000022 0FBF                         OUT     SREG,R16
    176.3  00000024 F991                         LD      R31,Y+
    176.4  00000026 E991                         LD      R30,Y+
    176.5  00000028 B991                         LD      R27,Y+
    176.6  0000002A A991                         LD      R26,Y+
    176.7  0000002C 9991                         LD      R25,Y+
    176.8  0000002E 8991                         LD      R24,Y+
    176.9  00000030 7991                         LD      R23,Y+
    176.10 00000032 6991                         LD      R22,Y+
    176.11 00000034 5991                         LD      R21,Y+
    176.12 00000036 4991                         LD      R20,Y+
    176.13 00000038 3991                         LD      R19,Y+
    176.14 0000003A 2991                         LD      R18,Y+
    176.15 0000003C 1991                         LD      R17,Y+
    176.16 0000003E 0991                         LD      R16,Y+
    176.17 00000040 F990                         LD      R15,Y+
    176.18 00000042 E990                         LD      R14,Y+
    176.19 00000044 D990                         LD      R13,Y+
    176.20 00000046 C990                         LD      R12,Y+
    176.21 00000048 B990                         LD      R11,Y+
    176.22 0000004A A990                         LD      R10,Y+
    176.23 0000004C 9990                         LD      R9,Y+
    176.24 0000004E 8990                         LD      R8,Y+
    176.25 00000050 7990                         LD      R7,Y+
    176.26 00000052 6990                         LD      R6,Y+
    176.27 00000054 5990                         LD      R5,Y+
    176.28 00000056 4990                         LD      R4,Y+
    176.29 00000058 3990                         LD      R3,Y+
    176.30 0000005A 2990                         LD      R2,Y+
    176.31 0000005C 1990                         LD      R1,Y+
    176.32 0000005E 0990                         LD      R0,Y+
    176.33 00000060                              ENDM
    177    00000060 0895                         RET                           
       ; Start task
    178    00000062              
    179    00000062              ;*********************************************
                                 **********************************************
                                 *************
    180    00000062              ;                                       TASK
                                  LEVEL CONTEXT SWITCH
    181    00000062              ;
    182    00000062              ; Description : This function is called when a
                                  task makes a higher priority task ready-to-ru
                                 n.
    183    00000062              ;
    184    00000062              ; Note(s)     : 1) Upon entry,
    185    00000062              ;                  OSTCBCur     points to the
                                  OS_TCB of the task to suspend
    186    00000062              ;                  OSTCBHighRdy points to the
                                  OS_TCB of the task to resume
    187    00000062              ;
    188    00000062              ;               2) The stack frame of the task
                                  to suspend looks as follows:
    189    00000062              ;
    190    00000062              ;                                       SP+0
                                  --> LSB of task code address
    191    00000062              ;                                         +1  
                                    MSB of task code address               
                                  (High memory)
    192    00000062              ;
    193    00000062              ;               3) The saved context of the
                                  task to resume looks as follows:
    194    00000062              ;
    195    00000062              ;                  OSTCBHighRdy->OSTCBStkPtr
                                  --> LSB of (return) stack pointer          
                                  (Low memory)
    196    00000062              ;                                             
                                    SPH of (return) stack pointer
    197    00000062              ;                                             
                                    Flags to load in status register
    198    00000062              ;                                             
                                    R31
    199    00000062              ;                                             
                                    R30
    200    00000062              ;                                             
                                    R7
    201    00000062              ;                                             
                                    .
    202    00000062              ;                                             
                                    .
    203    00000062              ;                                             
                                    .
    204    00000062              ;                                             
                                    R0                                     
                                  (High memory)
    205    00000062              ;*********************************************
                                 **********************************************
                                 *************
    206    00000062              
    207    00000062              OSCtxSw:        PUSHRS                        
                                       ; Save current task's context
    207.1  00000062 0A92                         ST      -Y,R0
    207.2  00000064 1A92                         ST      -Y,R1
    207.3  00000066 2A92                         ST      -Y,R2
    207.4  00000068 3A92                         ST      -Y,R3
    207.5  0000006A 4A92                         ST      -Y,R4
    207.6  0000006C 5A92                         ST      -Y,R5
    207.7  0000006E 6A92                         ST      -Y,R6
    207.8  00000070 7A92                         ST      -Y,R7
    207.9  00000072 8A92                         ST      -Y,R8
    207.10 00000074 9A92                         ST      -Y,R9
    207.11 00000076 AA92                         ST      -Y,R10
    207.12 00000078 BA92                         ST      -Y,R11
    207.13 0000007A CA92                         ST      -Y,R12
    207.14 0000007C DA92                         ST      -Y,R13
    207.15 0000007E EA92                         ST      -Y,R14
    207.16 00000080 FA92                         ST      -Y,R15
    207.17 00000082 0A93                         ST      -Y,R16
    207.18 00000084 1A93                         ST      -Y,R17
    207.19 00000086 2A93                         ST      -Y,R18
    207.20 00000088 3A93                         ST      -Y,R19
    207.21 0000008A 4A93                         ST      -Y,R20
    207.22 0000008C 5A93                         ST      -Y,R21
    207.23 0000008E 6A93                         ST      -Y,R22
    207.24 00000090 7A93                         ST      -Y,R23
    207.25 00000092 8A93                         ST      -Y,R24
    207.26 00000094 9A93                         ST      -Y,R25
    207.27 00000096 AA93                         ST      -Y,R26
    207.28 00000098 BA93                         ST      -Y,R27
    207.29 0000009A EA93                         ST      -Y,R30
    207.30 0000009C FA93                         ST      -Y,R31
    207.31 0000009E 0FB7                         IN      R16,SREG
    207.32 000000A0 0A93                         ST      -Y,R16
    207.33 000000A2                              ENDM
    208    000000A2                              PUSHSP
    208.1  000000A2 0EB7                         IN      R16,SPH
    208.2  000000A4 0A93                         ST      -Y,R16
    208.3  000000A6 0DB7                         IN      R16,SPL
    208.4  000000A8 0A93                         ST      -Y,R16
    208.5  000000AA                              ENDM
    209    000000AA              
    210    000000AA E091....                     LDS     R30,OSTCBCur          
                                                                   ; Z =
                                                              OSTCBCur->OSTCBSt
                                                             kPtr
    211    000000AE F091....                     LDS     R31,OSTCBCur+1        
                                                                   ;
    212    000000B2 C193                         ST      Z+,R28                
                                                                 ; Save Y
                                                            (R29:R28)
                                                            pointer
    213    000000B4 D193                         ST      Z+,R29                
                                                                 ;
    214    000000B6              
    215    000000B6 ....                         RCALL   OSTaskSwHook          
       ; Call user defined task switch hook
    216    000000B8              
    217    000000B8 0091....                     LDS     R16,OSPrioHighRdy     
                                                                   ; OSPrioCur
                                                              = OSPrioHighRdy
    218    000000BC 0093....                     STS     OSPrioCur,R16
    219    000000C0              
    220    000000C0 E091....                     LDS     R30,OSTCBHighRdy      
                                                                   ; Let Z
                                                              point to TCB of
                                                              highest priority
                                                              task
    221    000000C4 F091....                     LDS     R31,OSTCBHighRdy+1    
                                                                   ; ready to
                                                              run
    222    000000C8 E093....                     STS     OSTCBCur,R30          
                                                                        ;
                                                                   OSTCBCur =
                                                                   OSTCBHighRdy
    223    000000CC F093....                     STS     OSTCBCur+1,R31        
                                                                       
                                                                   ;
    224    000000D0              
    225    000000D0 C191                         LD      R28,Z+                
                                                                   ; Restore Y
                                                              pointer
    226    000000D2 D191                         LD      R29,Z+                
                                                                   ;

⌨️ 快捷键说明

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