音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

Ucos的時間管理機制

出處:bzwzy 發(fā)布于:2010-12-07 16:17:04

  Ucos提供的延時基于系統(tǒng)時鐘。在系統(tǒng)初始化時,會進行系統(tǒng)時鐘的初始化。系統(tǒng)時鐘一般由硬件的某個時鐘提供,該時鐘會定時中斷,稱為一個TIck。

  一、時間管理機制

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

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

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

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

  二、ucos提供的接口函數

  void OSTimeDly (INT16U ticks)。

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

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

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

  INT8U OSTimeDlyResume (INT8U prio);

  功能:恢復延時任務

  INT32U OSTimeGet (void);

  void OSTimeSet (INT32U ticks);

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

  三、關于延時功能的使用

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

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

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

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

  void OSTimeTick (void) //這個節(jié)拍服務函數是在OSTickISR函數中調用的,目的是在時鐘節(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) { //空閑任務處于控制塊雙向鏈表的一個,如果取出的控制塊為空閑任務的控制塊,那么已經取到一個了,就結束

  // 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é)拍計數器+1

  // OS_EXIT_CRITICAL();

  }



  
關鍵詞:Ucos的時間管理機制

版權與免責聲明

凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://m.58mhw.cn,違反者本網將追究相關法律責任。

本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯(lián)系,否則視為放棄相關權利。

OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經采納,將有感恩紅包奉上哦!