国产成人精品a视频一区www_国产区视频在线观看_99色视频_欲色av_亚洲一区电影_亚洲综合视频一区

ucos的時間管理機制

來源:網(wǎng)絡

點擊:2407

A+ A-

所屬頻道:新聞中心

關鍵詞: ucos,時間管理

      一。時間管理機制

      Ucos提供的延時基于系統(tǒng)時鐘。在系統(tǒng)初始化時,會進行系統(tǒng)時鐘的初始化。系統(tǒng)時鐘一般由硬件的某個時鐘提供,該時鐘會定時中斷,稱為一個tick。在每個tick發(fā)生時,系統(tǒng)進入時鐘中斷ISR。ISR 調(diào)用OSTimeTick()。 OSTimeTick()對OSTCBList鏈表中的每個任務的進行延時處理,即將任務的TCB中的.OSTimeDly--。若OSTimeDly=0, 如果任務不被掛起,則將任務就緒,等待調(diào)度。OSTCBList包含了系統(tǒng)中所有創(chuàng)建的任務。

      任務延時,即將任務從就緒表中刪除,將OSTimeDly置為合適的值。等待OSTimeDly=0時,再置為就緒,等待調(diào)度。

      因此任務的延時,并不是要以延時任務時長,理想上總是tick中斷間隔的N倍。

      Ucos還允許對系統(tǒng)時鐘tick進行計數(shù),以計算自系統(tǒng)系統(tǒng)以來進行了多少個tick.

      二、ucos提供的接口函數(shù)

      void OSTimeDly (INT16U ticks)。

      功能:延時ticks個系統(tǒng)tick時長。當成功延時后,進行任務調(diào)度。

      INT8U OSTimeDlyHMSM (INT8U hours, INT8U minutes, INT8U seconds, INT16U milli)

      功能:提供基于毫秒,秒等容易的用戶接口。

      INT8U OSTimeDlyResume (INT8U prio);

      功能:恢復延時任務

      INT32U OSTimeGet (void);

      void OSTimeSet (INT32U ticks);

      功能:返回,設置系統(tǒng)時鐘tick計數(shù)。

      三、關于延時功能的使用

      雖然ucos提供了延時函數(shù),但因為是基于系統(tǒng)時鐘中斷的,所有對于小于時鐘中斷時間間隔的延時,并不能提供;只能通過軟件延時。

      在很多情況下,可以通過信號量、郵箱等方式取代延時功能。

      特別要注意的是,在多任務的運行環(huán)境中,即使任務延時已經(jīng)完畢,但由于此時有高優(yōu)先級的任務運行,此時任務仍不能運行。至任務可以運行時,實際的延時已經(jīng)超過了預期的延時。

      附:給出了OSTimeTick () 函數(shù)的具體程序

      void OSTimeTick (void) //這個節(jié)拍服務函數(shù)是在OSTickISR函數(shù)中調(diào)用的,目的是在時鐘節(jié)拍到來時,檢查每個任務的任務控制塊中的.OSTCBDly-1后是否為0,如果是,那么表明這個任務剛才是掛起的狀態(tài),此時應改變?yōu)榫途w態(tài)

      {

      OS_TCB *ptcb;

      OSTimeTickHook(); //

      ptcb = OSTCBList; //時鐘節(jié)拍到來時,將控制塊雙向鏈表的第一個控制塊取出(并不是節(jié)拍之前運行的任務)

      while (ptcb-》OSTCBPrio != OS_IDLE_PRIO) { //空閑任務處于控制塊雙向鏈表的最后一個,如果取出的控制塊為空閑任務的控制塊,那么已經(jīng)取到最后一個了,就結束

      // OS_ENTER_CRITICAL();

      if (ptcb-》OSTCBDly != 0) { //

      if (--ptcb-》OSTCBDly == 0) { //

      if (?。╬tcb-》OSTCBStat & OS_STAT_SUSPEND)) { //檢查任務是否處于強制掛起狀態(tài),如果是,那再掛起一個時鐘節(jié)拍,否則就將它就緒

      OSRdyGrp |= ptcb-》OSTCBBitY;

      OSRdyTbl[ptcb-》OSTCBY] |= ptcb-》OSTCBBitX;

      } else { //

      ptcb-》OSTCBDly = 1; //

      } //

      }

      }

      ptcb = ptcb-》OSTCBNext; //下一個任務控制塊

      // OS_EXIT_CRITICAL();

      }

      // OS_ENTER_CRITICAL(); //

      OSTime++; //節(jié)拍計數(shù)器+1

      // OS_EXIT_CRITICAL();

      }

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡及各大主流媒體。版權歸原作者所有。如認為內(nèi)容侵權,請聯(lián)系我們刪除。

    主站蜘蛛池模板: www.av7788.com| 国产中文字幕一区 | 亚洲精品美女久久 | 午夜精品久久久久久 | 在线免费看黄色av | 日日射av | 久操综合 | 亚洲视频手机在线观看 | 日韩精品区 | 欧美国产三级 | 午夜精品久久久久久久久久久久久 | 三级视频网站在线观看 | 无码日韩精品一区二区免费 | 国产成人精品一区二三区四区五区 | 日本不卡精品 | 日韩一区二区三区高清 | 国产成人精品亚洲777人妖 | 热久久国产| 天堂在线一区二区 | 亚洲欧美日韩另类精品一区二区三区 | 免费一级欧美片在线观看网站 | 久久亚洲免费 | 成人久久18免费观看 | 蜜桃视频网站在线观看 | 久久精品美女视频 | 久久99精品国产91久久来源 | 成人在线免费观看 | 国产精品991 | 成人精品久久 | 91日韩精品一区二区三区 | 娇妻被朋友调教成玩物 | 日韩欧美中文在线 | 欧美精品一二三区 | 国产精品久久影院 | 久久久久久免费 | www.91av| 免费黄色特级片 | 三级电影网址 | 国产激情久久久久久 | 亚洲精品大片 | 亚洲a级|