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

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

?? os_cpu_a.s43

?? msp430f449 ucosII 移植過來的操作系統
?? S43
字號:
;********************************************************************************************************
;                                               uC/OS-II
;                                         The Real-Time Kernel
;
;                              (c) Copyright 2002, Micrium, Inc., Weston, FL
;                                          All Rights Reserved
;
;                                               TI MSP430
;
;
; File         : OS_CPU_A.ASM
; By           : Alley Zhou (zzy@lierda.com)
;                Jean J. Labrosse
;********************************************************************************************************

#include   <msp430x14x.h>


;********************************************************************************************************
;                                           //宏定義
;********************************************************************************************************

PUSHALL     MACRO  
            push     r4
            push     r5
            push     r6
            push     r7
            push     r8
            push     r9
            push     r10
            push     r11
            push     r12
            push     r13
            push     r14
            push     r15         
            ENDM

POPALL      MACRO	
            pop      r15
            pop      r14
            pop      r13
            pop      r12
            pop      r11
            pop      r10
            pop      r9
            pop      r8
            pop      r7
            pop      r6
            pop      r5
            pop      r4          
            ENDM
            
;********************************************************************************************************
;                                  //聲明公共變量和外部變量
;********************************************************************************************************

            EXTERN  OSIntExit
            EXTERN  OSIntNesting

            EXTERN  OSISRStkPtr

            EXTERN  OSPrioCur
            EXTERN  OSPrioHighRdy

            EXTERN  OSRunning

            EXTERN  OSTCBCur
            EXTERN  OSTCBHighRdy

            EXTERN  OSTaskSwHook
            EXTERN  OSTimeTick

            PUBLIC  OSCtxSw
            PUBLIC  OSCPURestoreSR
            PUBLIC  OSCPUSaveSR
            PUBLIC  OSIntCtxSw
            PUBLIC  OSStartHighRdy
            PUBLIC  WDT_ISR

;********************************************************************************************************
;                                  //最高優先級任務開始函數
;
; //說明: OSStart()調用本函數,調度運行優先級最高的任務
;
; //OSStartHighRdy()應完成以下三條:
; //                 a) 調用函數OSTaskSwHook(),
; //                 b) 置OSRunning 標志,
; //                 c) 切換到優先級最高的任務
;********************************************************************************************************

            RSEG      CODE                   ; //可重定位段,下面匯編可重定位
            
            
            
            				 

OSStartHighRdy
            call     #OSTaskSwHook

            mov.b    #1, &OSRunning         ; //置內核運行標志

            mov.w    SP, &OSISRStkPtr       ; //保護中斷堆棧              

            mov.w    &OSTCBHighRdy, R13     ; //載入最高優先級任務堆棧
            mov.w    @R13, SP

            POPALL                          ; //從堆棧彈出任務對應的所有寄存器
             
            reti                            ; //效仿一次中斷返回
 

;********************************************************************************************************
;                                     //任務級任務切換
;
; //說明: 函數OS_Sched() 調用本函數作一次任務切換
;
; //函數OSCtxSw() 應完成:
; //                a) 保存當前任務的所有寄存器到任務堆棧
; //                b) 保存SP到當前任務的任務控制塊
; //                c) 調用OSTaskSwHook()
; //                d) 復制OSPrioHighRdy 到 OSPrioCur
; //                e) 復制 OSTCBHighRdy 到 OSTCBCur
; //                f) 把OSTCBHighRdy->OSTCBStkPtrLoad 載入到SP
; //                g) 從高優先級任務堆棧彈出所有寄存器
; //                h) 執行一次中斷返回
;********************************************************************************************************

OSCtxSw
            push      SR                    ; //保存SR,效仿一次中斷
            PUSHALL                         ; //所有當前任務的寄存器壓入堆棧          
             
                   
            mov.w     &OSTCBCur, R13        ; OSTCBCur->OSTCBStkPtr = SP
            mov.w     SP, 0(R13)

            call      #OSTaskSwHook

            mov.b     &OSPrioHighRdy, R13   ; OSPrioCur = OSPrioHighRdy
            mov.b     R13, &OSPrioCur       ;
                          
            mov.w     &OSTCBHighRdy, R13    ; OSTCBCur  = OSTCBHighRdy
            mov.w     R13, &OSTCBCur        ;
                          
            mov.w     @R13, SP              ; SP  = OSTCBHighRdy->OSTCBStkPtr
             
            POPALL                          ; //彈出高優先級任務的寄存器
             
            reti                            ; //效仿中斷返回


;********************************************************************************************************
;                                       //中斷級任務切換
;
; //說明: 函數OSIntExit() 調用本函數執行一次中斷級任務切換
;
; //函數OSIntCtxSw() 應完成:
; //                a) 調用OSTaskSwHook()
; //                b) 復制 OSPrioHighRdy 到 OSPrioCur
; //                c) 復制 OSTCBHighRdy 到 OSTCBCur
; //                f) 把OSTCBHighRdy->OSTCBStkPtrLoad 載入到SP
; //                g) 從高優先級任務堆棧彈出所有寄存器
; //                h) 執行一次中斷返回
;********************************************************************************************************

OSIntCtxSw
             
            call      #OSTaskSwHook

            mov.b     &OSPrioHighRdy, R13   ; OSPrioCur = OSPrioHighRdy
            mov.b     R13, &OSPrioCur       ;
                          
            mov.w     &OSTCBHighRdy, R13    ; OSTCBCur  = OSTCBHighRdy
            mov.w     R13, &OSTCBCur        ;
                          
            mov.w     @R13, SP              ; SP  = OSTCBHighRdy->OSTCBStkPtr
             
            POPALL                          ; //彈出高優先級任務的寄存器
             
            reti                            ; //中斷返回


;********************************************************************************************************
;                                              //時鐘節拍中斷服務程序
;
; //說明: 看門狗定時器作為時鐘節拍原
;
; //備注      : 1) 下面的這段C偽碼表示中斷執行過程
;
;                 Save all the CPU registers
;                 if (OSIntNesting == 0) {
;                     OSTCBCur->OSTCBStkPtr = SP;
;                     SP                    = OSISRStkPtr;  /* Use the ISR stack from now on           */
;                 }
;                 OSIntNesting++;
;                 Enable interrupt nesting;                 /* Allow nesting of interrupts (if needed) */
;                 Clear the interrupt source;
;                 OSTimeTick();                             /* Call uC/OS-II's tick handler            */
;                 DISABLE general interrupts;               /* Must DI before calling OSIntExit()      */
;                 OSIntExit();
;                 if (OSIntNesting == 0) {
;                     SP = OSTCBHighRdy->OSTCBStkPtr;       /* Restore the current task's stack        */
;                 }
;                 Restore the CPU registers
;                 Return from interrupt.
;
;     
;
; //             2) 用戶在調用函數OSIntExit()應先關閉總中斷,因為有可能當函數OSIntExit()返回時中斷發生,
; //                如果這樣的話,新的中斷將保存中斷堆棧的的堆棧指針,而不是任務堆棧的堆棧指針,這樣系
; //                統就會崩潰 
;                 
;
;********************************************************************************************************

WDT_ISR                                     ; //看門狗定時器中斷服務程序
            PUSHALL                         ; //保護所有寄存器             
             
            bic.b    #0x01, IE1             ; //關閉看門狗定時器中斷
             
            cmp.b    #0, &OSIntNesting      ; if (OSIntNesting == 0)  
            jne      WDT_ISR_1
                               
            mov.w    &OSTCBCur, R13         ; //保存任務堆棧     
            mov.w    SP, 0(R13)

            mov.w    &OSISRStkPtr, SP       ; //載入中斷堆棧             

WDT_ISR_1
            inc.b    &OSIntNesting          ; OSIntNesting++
            bis.b    #0x01, IE1             ; //開看門狗定時器中斷
             
            EINT                            ; //開中斷允許中斷嵌套

            call     #OSTimeTick            ; //調用節拍處理函數             

            DINT                            ; //這一點非常重要,調用函數OSIntExit()前關閉中斷

            call     #OSIntExit             ; //調用退出中斷函數

            cmp.b    #0, &OSIntNesting      ; if (OSIntNesting == 0) 
            jne      WDT_ISR_2

            mov.w    &OSTCBHighRdy, R13     ; //恢復任務堆棧
            mov.w    @R13, SP
                       
WDT_ISR_2
            POPALL                          ; //恢復所有寄存器
             
            reti                            
                                           

;********************************************************************************************************
;                             //保存和恢復狀態寄存器SR
;
;********************************************************************************************************

OSCPUSaveSR
            MOV.W    SR,R12
            DINT
            RET


OSCPURestoreSR
            MOV.W    R12,SR
            RET

;********************************************************************************************************
;                                 //看門狗定時器中斷向量
;
; //AQ430頭文件定義的是各中斷向量的偏移量,故看門狗中斷向量為0xFFE0+WDT_VECTOR
;********************************************************************************************************
;======================================================
	COMMON INTVEC	;Interrup vector
;======================================================	
            ORG WDT_VECTOR
            DW  WDT_ISR		

            END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级国产精品| 亚洲欧美日韩精品久久久久| 欧美日韩国产综合久久| 91视视频在线观看入口直接观看www| 国产乱妇无码大片在线观看| 久久成人18免费观看| 热久久久久久久| 美女在线视频一区| 美女视频黄频大全不卡视频在线播放| 日韩1区2区日韩1区2区| 天天av天天翘天天综合网| 同产精品九九九| 日韩电影在线观看网站| 久久国产生活片100| 久久av中文字幕片| 国产精品系列在线观看| 国产成人av资源| 91美女精品福利| 欧美午夜精品久久久久久超碰| 欧美猛男男办公室激情| 日韩欧美国产1| 国产三级三级三级精品8ⅰ区| 国产日产欧美一区| 亚洲视频资源在线| 一区二区欧美国产| 日韩国产高清在线| 黄色精品一二区| 成人性生交大片| 在线精品视频一区二区三四| 欧美日韩高清一区二区三区| 日韩美女视频在线| 日本一二三不卡| 亚洲综合久久久| 蜜桃一区二区三区在线观看| 国产成人av电影在线| 91美女精品福利| 欧美一区二区视频观看视频| 久久日一线二线三线suv| 综合色中文字幕| 日本美女一区二区三区视频| 国产一区二区三区日韩 | 成人av手机在线观看| 色噜噜狠狠一区二区三区果冻| 欧美精品一级二级| 久久这里只有精品视频网| 日韩毛片高清在线播放| 日韩激情视频网站| aaa亚洲精品| 日韩亚洲欧美一区二区三区| 国产精品美女视频| 日本美女视频一区二区| 波多野结衣91| 日韩一二三区不卡| 最新日韩在线视频| 久久国产精品露脸对白| 91在线高清观看| 精品久久久久久久一区二区蜜臀| 中文字幕永久在线不卡| 奇米影视在线99精品| 91小视频免费观看| 精品成人免费观看| 一区二区三区不卡视频| 国产精品123区| 欧美精品1区2区3区| 国产精品成人一区二区艾草 | 五月婷婷色综合| 成人午夜碰碰视频| 欧美一个色资源| 一区二区三区在线播| 国产高清不卡一区| 欧美一区二区黄色| 一级中文字幕一区二区| 国产成人在线影院| 日韩欧美国产1| 五月天视频一区| 色88888久久久久久影院野外| 久久精品无码一区二区三区| 日本在线播放一区二区三区| 91福利在线观看| 综合色天天鬼久久鬼色| 大尺度一区二区| 久久久蜜桃精品| 卡一卡二国产精品 | 国产精品国产三级国产三级人妇 | 91麻豆精品在线观看| 久久精品人人做| 久久爱另类一区二区小说| 欧美日韩三级在线| 亚洲美女精品一区| 99视频国产精品| 国产日韩欧美精品电影三级在线| 另类欧美日韩国产在线| 51精品国自产在线| 亚洲国产一区在线观看| 91麻豆自制传媒国产之光| 成人免费在线观看入口| 成人动漫中文字幕| 国产精品私房写真福利视频| 国产一区 二区| 久久久久亚洲综合| 国产高清在线观看免费不卡| 久久综合狠狠综合久久综合88 | 91黄色激情网站| 亚洲免费在线电影| 在线免费观看不卡av| 亚洲精品日日夜夜| 日本韩国欧美一区| 亚洲已满18点击进入久久| 在线中文字幕不卡| 亚洲国产va精品久久久不卡综合| 欧美亚洲综合久久| 午夜激情综合网| 日韩一区二区免费在线观看| 麻豆视频观看网址久久| 欧美精品一区二区三区蜜桃视频| 韩日av一区二区| 国产午夜精品久久| 成人av网址在线| 尤物视频一区二区| 欧美日韩小视频| 免费人成网站在线观看欧美高清| 精品精品国产高清a毛片牛牛| 韩国精品免费视频| 中文字幕成人在线观看| 97久久精品人人做人人爽50路| 亚洲精品免费电影| 欧美日本免费一区二区三区| 免费观看一级特黄欧美大片| 久久久综合视频| 91丨porny丨国产| 日韩激情视频网站| 国产丝袜在线精品| 色999日韩国产欧美一区二区| 日韩vs国产vs欧美| 国产性天天综合网| 91国偷自产一区二区三区成为亚洲经典 | 日本中文字幕不卡| 久久久久久久久久久久久夜| av一区二区久久| 同产精品九九九| 欧美极品xxx| 欧美日韩一区高清| 国产一区二区三区观看| 亚洲人精品午夜| 精品乱码亚洲一区二区不卡| www.亚洲免费av| 日韩精品成人一区二区三区| 久久久不卡影院| 色菇凉天天综合网| 精品在线免费视频| 亚洲欧美日韩在线不卡| 日韩午夜在线观看| 91香蕉视频在线| 国产一区在线观看视频| 亚洲精品日韩综合观看成人91| 91精品福利在线一区二区三区| 成人在线综合网站| 日韩激情一二三区| 亚洲男人电影天堂| 2014亚洲片线观看视频免费| 色综合天天狠狠| 韩国精品在线观看| 亚洲h动漫在线| 国产精品国产三级国产三级人妇 | 亚洲综合久久久| 欧美国产精品一区| 日韩精品一区二区三区在线 | 久久亚洲精品小早川怜子| 色狠狠综合天天综合综合| 中文字幕一区二区三区在线观看| 亚洲天堂a在线| 午夜精品福利久久久| 精品欧美黑人一区二区三区| 99久久久久免费精品国产| 亚洲国产视频a| 亚洲精品在线观| 欧美在线一二三四区| 国产一区二区三区av电影| 麻豆91在线观看| 蜜桃av一区二区三区电影| 免费看欧美女人艹b| 天天免费综合色| 免费观看在线色综合| 美国十次了思思久久精品导航| 日本午夜一本久久久综合| 亚洲6080在线| 日韩成人午夜电影| 麻豆精品视频在线观看免费| 蜜桃久久久久久| 国产乱理伦片在线观看夜一区| 国产成人免费在线| 粗大黑人巨茎大战欧美成人| 成人黄色免费短视频| 99综合电影在线视频| 色综合中文字幕| 欧美性一级生活| 欧美一区二区人人喊爽| xnxx国产精品| 国产精品免费视频观看| 日韩一区中文字幕|