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

📄 os_cpu_a.lst

📁 ATMEL ucos transplant of AVR
💻 LST
📖 第 1 页 / 共 4 页
字号:
                                                                   ; Load Y
                                                              (R29:R28)
                                                              pointer
    198    00000018 91D1                         LD      R29,Z+                
                                                                   ;
    199    0000001A              
    200    0000001A                              POPSP                         
                                       ; Restore stack pointer
    200.1  0000001A 9109                         LD      R16,Y+
    200.2  0000001C BF0D                         OUT     SPL,R16
    200.3  0000001E 9109                         LD      R16,Y+
    200.4  00000020 BF0E                         OUT     SPH,R16
    200.5  00000022                              ENDM
    201    00000022                              POPSREG                       
                                       ; Restore status register
    201.1  00000022 9109                         LD      R16,Y+
    201.2  00000024 BF0F                         OUT     SREG,R16
    201.3  00000026                              ENDM
    202    00000026                              POPRS                         
                                       ; Restore all registers
    202.1  00000026 9109                         LD      R16,Y+
    202.2  00000028 BF0B                         OUT     RAMPZ,R16
    202.3  0000002A 91F9                         LD      R31,Y+
    202.4  0000002C 91E9                         LD      R30,Y+
    202.5  0000002E 91B9                         LD      R27,Y+
    202.6  00000030 91A9                         LD      R26,Y+
    202.7  00000032 9199                         LD      R25,Y+
    202.8  00000034 9189                         LD      R24,Y+
    202.9  00000036 9179                         LD      R23,Y+
    202.10 00000038 9169                         LD      R22,Y+
    202.11 0000003A 9159                         LD      R21,Y+
    202.12 0000003C 9149                         LD      R20,Y+
    202.13 0000003E 9139                         LD      R19,Y+
    202.14 00000040 9129                         LD      R18,Y+
    202.15 00000042 9119                         LD      R17,Y+
    202.16 00000044 9109                         LD      R16,Y+
    202.17 00000046 90F9                         LD      R15,Y+
    202.18 00000048 90E9                         LD      R14,Y+
    202.19 0000004A 90D9                         LD      R13,Y+
    202.20 0000004C 90C9                         LD      R12,Y+
    202.21 0000004E 90B9                         LD      R11,Y+
    202.22 00000050 90A9                         LD      R10,Y+
    202.23 00000052 9099                         LD      R9,Y+
    202.24 00000054 9089                         LD      R8,Y+
    202.25 00000056 9079                         LD      R7,Y+
    202.26 00000058 9069                         LD      R6,Y+
    202.27 0000005A 9059                         LD      R5,Y+
    202.28 0000005C 9049                         LD      R4,Y+
    202.29 0000005E 9039                         LD      R3,Y+
    202.30 00000060 9029                         LD      R2,Y+
    202.31 00000062 9019                         LD      R1,Y+
    202.32 00000064 9009                         LD      R0,Y+
    202.33 00000066                              ENDM
    203    00000066 9508                         RET                           
       ; Start task
    204    00000068              
    205    00000068              ;*********************************************
                                 **********************************************
                                 *************
    206    00000068              ;                                       TASK
                                  LEVEL CONTEXT SWITCH
    207    00000068              ;
    208    00000068              ; Description : This function is called when a
                                  task makes a higher priority task ready-to-ru
                                 n.
    209    00000068              ;
    210    00000068              ; Note(s)     : 1) Upon entry,
    211    00000068              ;                  OSTCBCur     points to the
                                  OS_TCB of the task to suspend
    212    00000068              ;                  OSTCBHighRdy points to the
                                  OS_TCB of the task to resume
    213    00000068              ;
    214    00000068              ;               2) The stack frame of the task
                                  to suspend looks as follows:
    215    00000068              ;
    216    00000068              ;                                       SP+0
                                  --> LSB of task code address
    217    00000068              ;                                         +1  
                                    MSB of task code address               
                                  (High memory)
    218    00000068              ;
    219    00000068              ;               3) The saved context of the
                                  task to resume looks as follows:
    220    00000068              ;
    221    00000068              ;                  OSTCBHighRdy->OSTCBStkPtr
                                  --> LSB of (return) stack pointer          
                                  (Low memory)
    222    00000068              ;                                             
                                    SPH of (return) stack pointer
    223    00000068              ;                                             
                                    Flags to load in status register
    224    00000068              ;                                             
                                    R31
    225    00000068              ;                                             
                                    R30
    226    00000068              ;                                             
                                    R7
    227    00000068              ;                                             
                                    .
    228    00000068              ;                                             
                                    .
    229    00000068              ;                                             
                                    .
    230    00000068              ;                                             
                                    R0                                     
                                  (High memory)
    231    00000068              ;*********************************************
                                 **********************************************
                                 *************
    232    00000068              
    233    00000068              OSCtxSw:        PUSHRS                        
                                       ; Save current task's context
    233.1  00000068 920A                         ST      -Y,R0
    233.2  0000006A 921A                         ST      -Y,R1
    233.3  0000006C 922A                         ST      -Y,R2
    233.4  0000006E 923A                         ST      -Y,R3
    233.5  00000070 924A                         ST      -Y,R4
    233.6  00000072 925A                         ST      -Y,R5
    233.7  00000074 926A                         ST      -Y,R6
    233.8  00000076 927A                         ST      -Y,R7
    233.9  00000078 928A                         ST      -Y,R8
    233.10 0000007A 929A                         ST      -Y,R9
    233.11 0000007C 92AA                         ST      -Y,R10
    233.12 0000007E 92BA                         ST      -Y,R11
    233.13 00000080 92CA                         ST      -Y,R12
    233.14 00000082 92DA                         ST      -Y,R13
    233.15 00000084 92EA                         ST      -Y,R14
    233.16 00000086 92FA                         ST      -Y,R15
    233.17 00000088 930A                         ST      -Y,R16
    233.18 0000008A 931A                         ST      -Y,R17
    233.19 0000008C 932A                         ST      -Y,R18
    233.20 0000008E 933A                         ST      -Y,R19
    233.21 00000090 934A                         ST      -Y,R20
    233.22 00000092 935A                         ST      -Y,R21
    233.23 00000094 936A                         ST      -Y,R22
    233.24 00000096 937A                         ST      -Y,R23
    233.25 00000098 938A                         ST      -Y,R24
    233.26 0000009A 939A                         ST      -Y,R25
    233.27 0000009C 93AA                         ST      -Y,R26
    233.28 0000009E 93BA                         ST      -Y,R27
    233.29 000000A0 93EA                         ST      -Y,R30
    233.30 000000A2 93FA                         ST      -Y,R31
    233.31 000000A4 B70B                         IN      R16,RAMPZ
    233.32 000000A6 930A                         ST      -Y,R16
    233.33 000000A8                              ENDM
    234    000000A8                              PUSHSREG
    234.1  000000A8 B70F                         IN      R16,SREG
    234.2  000000AA 930A                         ST      -Y,R16
    234.3  000000AC                              ENDM
    235    000000AC                              PUSHSP
    235.1  000000AC B70E                         IN      R16,SPH
    235.2  000000AE 930A                         ST      -Y,R16
    235.3  000000B0 B70D                         IN      R16,SPL
    235.4  000000B2 930A                         ST      -Y,R16
    235.5  000000B4                              ENDM
    236    000000B4              
    237    000000B4 91E0....                     LDS     R30,OSTCBCur          
                                                                   ; Z =
                                                              OSTCBCur->OSTCBSt
                                                             kPtr
    238    000000B8 91F0....                     LDS     R31,OSTCBCur+1        
                                                                   ;
    239    000000BC 93C1                         ST      Z+,R28                
                                                                 ; Save Y
                                                            (R29:R28)
                                                            pointer
    240    000000BE 93D1                         ST      Z+,R29                
                                                                 ;
    241    000000C0              
    242    000000C0 ........                     CALL    OSTaskSwHook          
       ; Call user defined task switch hook
    243    000000C4              
    244    000000C4 9100....                     LDS     R16,OSPrioHighRdy     
                                                                   ; OSPrioCur
                                                              = OSPrioHighRdy
    245    000000C8 9300....                     STS     OSPrioCur,R16
    246    000000CC              
    247    000000CC 91E0....                     LDS     R30,OSTCBHighRdy      
                                                                   ; Let Z
                                                              point to TCB of
                                                              highest priority
                                                              task
    248    000000D0 91F0....                     LDS     R31,OSTCBHighRdy+1    
                                                                   ; ready to
                                                              run
    249    000000D4 93E0....                     STS     OSTCBCur,R30          
                                                                        ;
                                                                   OSTCBCur =
                                                                   OSTCBHighRdy
    250    000000D8 93F0....                     STS     OSTCBCur+1,R31        
                                                                       
                                                                   ;
    251    000000DC              
    252    000000DC 91C1                         LD      R28,Z+                

⌨️ 快捷键说明

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