亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_cpu_a.s

?? atmel128L
?? S
?? 第 1 頁 / 共 2 頁
字號:
                INC     R16                         ;
                STS     _OSRunning,R16              ;

                LDS     R30,_OSTCBHighRdy           ; Let Z point to TCB of highest priority task
                LDS     R31,_OSTCBHighRdy+1         ; ready to run
                LD      R28,Z+                      ; Load Y (R29:R28) pointer
                LD      R29,Z+                      ;

                POP_SP                              ; Restore stack pointer
                POP_SREG                            ; Restore status register
                POP_ALL                             ; Restore all registers
                RET                                 ; Start task

;/*$PAGE*/.
;********************************************************************************************************
;                                       TASK LEVEL CONTEXT SWITCH
;
; Description : This function is called when a task makes a higher priority task ready-to-run.
;
; Note(s)     : 1) Upon entry,
;                  OSTCBCur     points to the OS_TCB of the task to suspend
;                  OSTCBHighRdy points to the OS_TCB of the task to resume
;
;               2) The stack frame of the task to suspend looks as follows:
;
;                                       SP+0 --> LSB of task code address
;                                         +1     MSB of task code address                (High memory)
;
;               3) The saved context of the task to resume looks as follows:
;
;                  OSTCBHighRdy->OSTCBStkPtr --> SPL of (return) stack pointer           (Low memory)
;                                                SPH of (return) stack pointer
;                                                Flags to load in status register
;                                                R31
;                                                R30
;                                                R27
;                                                .
;                                                .
;                                                R0
;                                                PCH
;                                                PCL                                     (High memory)
;********************************************************************************************************

_OSCtxSw::
                PUSH_ALL                            ; Save current task's context
                PUSH_SREG
                PUSH_SP

                LDS     R30,_OSTCBCur               ; Z = OSTCBCur->OSTCBStkPtr
                LDS     R31,_OSTCBCur+1             ;
                ST      Z+,R28                      ; Save Y (R29:R28) pointer
                ST      Z+,R29                      ;

                CALL    _OSTaskSwHook               ; Call user defined task switch hook

                LDS     R16,_OSPrioHighRdy          ; OSPrioCur = OSPrioHighRdy
                STS     _OSPrioCur,R16

                LDS     R30,_OSTCBHighRdy           ; Let Z point to TCB of highest priority task
                LDS     R31,_OSTCBHighRdy+1         ; ready to run
                STS     _OSTCBCur,R30               ; OSTCBCur = OSTCBHighRdy
                STS     _OSTCBCur+1,R31             ;

                LD      R28,Z+                      ; Restore Y pointer
                LD      R29,Z+                      ;

                POP_SP                              ; Restore stack pointer
                POP_SREG                            ; Restore status register
                POP_ALL                             ; Restore all registers

                RET

;/*$PAGE*/.
;*********************************************************************************************************
;                                INTERRUPT LEVEL CONTEXT SWITCH
;
; Description : This function is called by OSIntExit() to perform a context switch to a task that has
;               been made ready-to-run by an ISR.
;
; Note(s)     : 1) Upon entry,
;                  OSTCBCur     points to the OS_TCB of the task to suspend
;                  OSTCBHighRdy points to the OS_TCB of the task to resume
;
;               2) The stack frame of the task to suspend looks as follows:
;
;                  OSTCBCur->OSTCBStkPtr ------> SPL of (return) stack pointer           (Low memory)
;                                                SPH of (return) stack pointer
;                                                Flags to load in status register
;                                                R31
;                                                R30
;                                                R27
;                                                .
;                                                .
;                                                R0
;                                                PCH
;                                                PCL                                     (High memory)
;
;               3) The saved context of the task to resume looks as follows:
;
;                  OSTCBHighRdy->OSTCBStkPtr --> SPL of (return) stack pointer           (Low memory)
;                                                SPH of (return) stack pointer
;                                                Flags to load in status register
;                                                R31
;                                                R30
;                                                R27
;                                                .
;                                                .
;                                                R0
;                                                PCH
;                                                PCL                                     (High memory)
;*********************************************************************************************************

_OSIntCtxSw::
                CALL    _OSTaskSwHook               ; Call user defined task switch hook

                LDS     R16,_OSPrioHighRdy          ; OSPrioCur = OSPrioHighRdy
                STS     _OSPrioCur,R16              ;

                LDS     R30,_OSTCBHighRdy           ; Z = OSTCBHighRdy->OSTCBStkPtr
                LDS     R31,_OSTCBHighRdy+1         ;
                STS     _OSTCBCur,R30               ; OSTCBCur = OSTCBHighRdy
                STS     _OSTCBCur+1,R31             ;

                LD      R28,Z+                      ; Restore Y pointer
                LD      R29,Z+                      ;

                POP_SP                              ; Restore stack pointer
                POP_SREG                            ; Restore status register
                POP_ALL                             ; Restore all registers
                RET

;/*$PAGE*/.
;********************************************************************************************************
;                                           SYSTEM TICK ISR
;
; Description : This function is the ISR used to notify uC/OS-II that a system tick has occurred.
;
;               The following C-like pseudo-code describe the operation being performed in the code below.
;
;               Save all registers on the current task's stack:
;                      Use the PUSH_ALL macro
;                      Get the SREG, set Bit #7 and save onto the task's stack using -Y addressing
;                      Use the PUSH_SP macro to save the task's hardware stack pointer onto the current task's stack
;               OSIntNesting++;
;               if (OSIntNesting == 1) {
;                  OSTCBCur->OSTCBStkPtr = SP
;               }
;               Clear the interrupt;                  Not needed for the timer we used.
;               OSTimeTick();                         Notify uC/OS-II that a tick has occured
;               OSIntExit();                          Notify uC/OS-II about end of ISR
;               Restore all registers that were save on the current task's stack:
;                      Use the POP_SP macro to restore the task's hardware stack pointer
;                      Use the POP_SREG macro to restore the SREG register
;                      Use the POP_ALL macro to restore the remaining registers
;               Return (DO NOT use a RETI instruction);
;********************************************************************************************************

_OSTickISR::
                PUSH_ALL                            ; Save all registers and status register
                IN      R16,SREG                    ; Save the SREG but with interrupts enabled
                SBR     R16,BIT07                    
                ST      -Y,R16
                PUSH_SP                             ; Save the task's hardware stack pointer onto task's stack

                LDS     R16,_OSIntNesting           ; Notify uC/OS-II of ISR
                INC     R16                         ;
                STS     _OSIntNesting,R16           ;

                CPI     R16,1                       ; if (OSIntNesting == 1) {
                BRNE    OSTickISR_1

                LDS     R30,_OSTCBCur               ;     OSTCBCur->OSTCBStkPtr = Y
                LDS     R31,_OSTCBCur+1
                ST      Z+,R28
                ST      Z+,R29                      ; }

OSTickISR_1:
                CALL    _OSTickISR_Handler          ; Handle the tick ISR

                CALL    _OSIntExit                  ; Notify uC/OS-II about end of ISR

                POP_SP                              ; Restore the hardware stack pointer from task's stack
                POP_SREG                            ; Restore the SREG register
                POP_ALL                             ; Restore all registers

                RET                                 ; Note: RET instead of RETI

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费亚洲电影| 色综合色狠狠综合色| 91成人免费在线| 国产人成一区二区三区影院| 一区二区激情小说| 一区二区三区欧美亚洲| 激情深爱一区二区| 欧美在线免费视屏| 国产精品视频你懂的| 国内外成人在线| 欧美久久久久久久久久| 国产精品网站在线观看| 精品一区二区三区不卡| 在线观看免费成人| 中文字幕视频一区二区三区久| 免费日本视频一区| 欧美少妇bbb| 亚洲人成精品久久久久| 国产美女精品人人做人人爽| 欧美久久久久久蜜桃| 亚洲成人在线网站| 色综合天天综合网天天看片| 久久精品水蜜桃av综合天堂| 蜜桃精品视频在线| 99久久精品国产导航| 久久久亚洲精华液精华液精华液| 日日夜夜免费精品| 99精品国产视频| 国产亚洲va综合人人澡精品| 琪琪一区二区三区| 日韩午夜三级在线| 亚洲成人三级小说| 在线观看一区二区视频| 一区二区三区在线播| 99精品欧美一区二区蜜桃免费| 欧美激情中文不卡| 国产精品一区免费在线观看| 日韩欧美一区二区视频| 美女视频免费一区| 91麻豆精品91久久久久同性| 日本sm残虐另类| 67194成人在线观看| 亚洲va欧美va国产va天堂影院| 欧美日精品一区视频| 亚洲精品国产精华液| 国产九色精品成人porny | 日韩av中文字幕一区二区| 在线免费观看日本欧美| 亚洲一区二区精品3399| 色美美综合视频| 亚欧色一区w666天堂| 欧美日韩一区中文字幕| 亚洲成人av资源| 欧美一区二区免费视频| 日本aⅴ亚洲精品中文乱码| 欧美成人国产一区二区| 久久99久久久久| 精品美女被调教视频大全网站| 紧缚捆绑精品一区二区| 久久久久成人黄色影片| 激情av综合网| 欧美激情中文不卡| 99精品视频中文字幕| 亚洲制服丝袜在线| 欧美三级日韩在线| 免费成人小视频| 久久精品一区二区三区四区| 国产成人啪免费观看软件| 亚洲欧美一区二区不卡| 色狠狠桃花综合| 天天色天天操综合| 精品免费一区二区三区| 国产成人99久久亚洲综合精品| 国产精品欧美一区喷水| 色婷婷久久久综合中文字幕| 日韩精品91亚洲二区在线观看 | 视频一区视频二区中文| 欧美一区二区三区在线视频| 精品一区二区三区视频 | 欧美精品v国产精品v日韩精品| 日韩主播视频在线| 欧美男男青年gay1069videost | 中文字幕乱码久久午夜不卡| 一本久久精品一区二区| 婷婷国产在线综合| 国产婷婷一区二区| 色综合色综合色综合色综合色综合| 亚洲狠狠爱一区二区三区| 久久先锋影音av鲁色资源网| av成人动漫在线观看| 日本aⅴ精品一区二区三区| 国产日韩视频一区二区三区| 色综合一区二区| 蜜臀av性久久久久蜜臀av麻豆| 国产女主播视频一区二区| 欧美无人高清视频在线观看| 久久国产精品免费| 2021中文字幕一区亚洲| 色综合天天综合网国产成人综合天 | 午夜精品一区二区三区免费视频| 日韩欧美黄色影院| 成人动漫在线一区| 亚洲3atv精品一区二区三区| www成人在线观看| 成人午夜视频网站| 丝袜美腿亚洲色图| 亚洲国产成人午夜在线一区| 欧美日韩亚洲高清一区二区| 国产成人在线视频免费播放| 亚洲乱码日产精品bd| 日本精品一区二区三区四区的功能| 开心九九激情九九欧美日韩精美视频电影| 国产亚洲精品精华液| 欧美伦理影视网| 成人精品亚洲人成在线| 麻豆成人久久精品二区三区红 | 国产视频一区二区在线观看| 7777精品伊人久久久大香线蕉的| 成人性生交大片免费看中文网站| 亚洲尤物在线视频观看| 精品99一区二区三区| 色综合中文字幕国产 | 国产精品一区二区男女羞羞无遮挡 | 成人一区在线观看| 裸体在线国模精品偷拍| 亚洲女人****多毛耸耸8| 国产午夜精品美女毛片视频| 欧美日韩成人综合在线一区二区 | 午夜伊人狠狠久久| 国产精品久久久久久户外露出 | 日韩午夜三级在线| 欧美日韩亚洲国产综合| 91亚洲精品久久久蜜桃| 懂色av一区二区三区蜜臀| 欧美bbbbb| 日韩av中文字幕一区二区三区| 亚洲男人都懂的| 国产午夜亚洲精品羞羞网站| 久久美女艺术照精彩视频福利播放| 欧美日韩一区二区三区在线看| 日本高清免费不卡视频| 99久久精品国产麻豆演员表| 蜜乳av一区二区| 日本人妖一区二区| 亚洲成人av在线电影| 亚洲午夜av在线| 亚洲丝袜美腿综合| 国产精品网站一区| 久久精品人人做人人爽人人| 日韩欧美成人午夜| 精品美女在线播放| 日韩三级视频中文字幕| 日韩午夜激情电影| 91精品国产综合久久精品性色| 99精品国产一区二区三区不卡| 成人黄色大片在线观看| 国产成人精品影视| 粉嫩蜜臀av国产精品网站| 国产精品正在播放| 国产成人午夜精品5599| 国产盗摄一区二区| 精品一区二区三区的国产在线播放| 久久99国产精品麻豆| 久久99精品视频| 国产成人小视频| 粉嫩av一区二区三区在线播放| 国产白丝网站精品污在线入口| 国产美女娇喘av呻吟久久| 久久精品99久久久| 国产麻豆日韩欧美久久| 国产一区二区在线影院| 岛国av在线一区| 成人国产在线观看| 日本久久精品电影| 精品视频一区二区三区免费| 欧美高清视频一二三区| 制服.丝袜.亚洲.另类.中文| 91精品国产麻豆国产自产在线| 精品入口麻豆88视频| 久久综合九色综合97婷婷女人 | 91色婷婷久久久久合中文| 欧美中文字幕一二三区视频| 欧美少妇一区二区| 日韩欧美一区二区在线视频| 26uuu色噜噜精品一区| 日韩一区二区在线观看| 日韩一区和二区| 久久婷婷国产综合精品青草| 久久久www成人免费无遮挡大片| 国产精品美女久久久久久久久久久| 1000部国产精品成人观看| 亚洲成人www| 麻豆精品在线观看| 国产一区二三区好的| 成人综合在线网站| 成人网在线播放| 欧美日韩一级二级三级| 日韩精品一区二区三区四区 | 欧美日韩夫妻久久| 精品久久久久久久久久久久久久久 |