日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
構(gòu)造一個51單片機的實時操作系統(tǒng)的方法
構(gòu)造一個51單片機的實時操作系統(tǒng)的方法
 更新時間:2008-8-18 9:46:49  點擊數(shù):15
【字體: 字體顏色

    3.1 堆棧的初始化與任務的創(chuàng)建

    堆棧的初始化實際是初始化0STaskStackBotton數(shù)組,并將當前任務指定為空閑任務,下一個運行任務指定為最高優(yōu)先級任務,即優(yōu)先級為零的任務。初始化時,將SP的值存人OSTaslkStackBotton[O],SP+2的值存入OSTaskStacKBotton[1],依此類推。而任務是調(diào)用0STa-skCreate函數(shù)建立的。實際上只是將任務(假設為n號任務)的地址填人到對應OSTaskStackBotton[n]所指向的位置,并將SP向后移動2個字節(jié),如圖2所示。

   

    為什么要以這樣一種規(guī)律而不是其他的方式呢?這是由于在任務建立后,還未進行任務調(diào)度之前,各任務的堆棧實際上是它們自身的地址,因而其堆棧深度為2,為了程序的簡便而直接填入。

    void main(void){
    OSInit(); /*初始化OSTaskStackBcBotton隊列*/
    TMOD=(TMOD&0XFO)│ 0XOl;
    TL0=0xBF;
    TH0=0xFC;
    TRO=1;
    ETO=1;
    TFO=O:
    OSTaskCreate(TaskA,NULL,0);
    OSTaskCreate(TaskB.NULL,1);
    OSTaskCreate(TaskC,NULL,2);
    OSStart();

    上面這段代碼中,所有任務建立后,便調(diào)用OSStart()開始任務調(diào)度。OSStart()是一個宏定義,如下所示:

    #deflne OSStart() d0{\
    OSTaskCreate(TaskIdle,NULL,OS_MAX_TASKS);\
    EA=l:\
    return;\
    }while(O)

    首先,它創(chuàng)建了一個空閑任務并打開中斷,然后便返回。返回到哪里了呢?我們知道,空閑任務是優(yōu)先級最低的任務,當調(diào)OSTaskCreate建立時,會將其地址填人到SP的位置,并把SP向后移動2個字節(jié)(見圖2及說明),因而此時處在堆棧頂端的,一定是空閑任務Taslddle。這就使得這里的return一定會返回到空閑任務。至此,系統(tǒng)進入正常運行狀態(tài)。

   

    3.2 任務的切換

    任務的切換分兩種情況,在當前任務優(yōu)先級低于下一個取得CPU控制權的任務時,將下一個取得CPU控制權的任務的棧頂?shù)疆斍叭蝿盏臈m斨g的內(nèi)容向RAM空間的高端搬移,以空出全部的RAM空間作下一個任務的堆空間,同時更新對應的OSTaskStackBotton,使其指向新的正確任務的堆棧棧底。如果當前任務的優(yōu)先級高于下一個任務的優(yōu)先級,則作相反的搬移,如圖3與圖4所示。

    所有任務必須主動調(diào)用OSSleep,放棄CPU的控制權。任務調(diào)用OSSleep后,將選擇優(yōu)先級最高的就緒任務運行。

    結(jié) 語

    系統(tǒng)完成后,內(nèi)核的代碼量在400多個字節(jié)左右,占用1個定時器中斷及小量的內(nèi)存空間。系統(tǒng)設置容量為8個任務,用戶實際可用任務為7個,能夠滿足一般需求,也達到了在小容量芯片中應用的開發(fā)要求。由于沒有采用占先式的任務調(diào)度,除開全程相關的個別任務的一些局部變量外,其他局部變量已經(jīng)不存在覆蓋關系,由于是任務主動放棄CPU控制權,對于個別需要保護的變量單獨進行處理也變得容易。在系統(tǒng)中,全程不需要反復地開關中斷,實時性能也很好。對個別時序要求嚴格的外設(如DSl8820)除外。

    (來源:電子查詢網(wǎng))

  • 上一篇: 集成電路代換技巧
  • 下一篇: 數(shù)字信號處理器的匯編程序優(yōu)化方案
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1