vxworks中timer機制

vxworks中timer機制

ID:27571645

大?。?23.34 KB

頁數:8頁

時間:2018-12-03

vxworks中timer機制_第1頁
vxworks中timer機制_第2頁
vxworks中timer機制_第3頁
vxworks中timer機制_第4頁
vxworks中timer機制_第5頁
資源描述:

《vxworks中timer機制》由會員上傳分享,免費在線閱讀,更多相關內容在學術論文-天天文庫。

1、[歲商要]Tiner是實時操作系統的一個重要組成部分。本文結合近階段的學習和實驗情況,對VxW)rks中的時間函數和定時器作了一些探討。主要介紹了Tin?r的機制,相關的函數,并給出了一些具體的例子。一.TickTick是指每秒中定時器中斷的次數。POSIX標準中,tick等于50,即每20ms定吋器中斷一次。VxWorks中,tick的缺省設置為60。因為實時操作系統中,任務的調度和定吋器密切相關,tick設置是否合理對整個系統性能的影響是很明顯的。如果tick太小,則系統實時響應能力較差;反之,如果tick太大,則會使得系統的絕大多數資源浪費在不斷的任務管理和調度中。

2、Tick的次數在userconfig.c文件巾設置,其語句為sysClkRateSet(60)。用戶可以更改這個文件,然后重新編譯BSP庫,也可以在應用程序屮更改。和tick相關的函數主要有:sysClkRateGet:得到甸:秒系統的tick數sysClkRateSet:設置系統的tick數二?看門狗時鐘(WatchdogTimer)WatchdogTimer捉供了這樣一種機制,它使一個C函數和一個時間延遲聯系起來。當該時問延遲到達以后,系統會調用該C函數。WatchdogTimer采用了巾斷服務進程(ISR)的機理,當C函數被激活時,它是作為ISR運行的。和Watch

3、dogTimer相關的函數如下:wdCreate:創(chuàng)建WatchdogTimerwdDelete:刪除WatchdogTimerwdStart:A動一個WatchdogTimerwdCancel:取消一個正在記數的WatchdogTimerWatchdog使用過程如K:首先調用wdCreate創(chuàng)建一個WatchdogTimer,然后通過wdStart啟動該Timer。當tick累計到設定的數字時,和它相聯系的C函數被激活作為ISR運行。下面是一個例子,該例子在延遲3秒后輸岀一川話:“Watchdogtimerjustexpired’’。例:include"VxWorks.

4、h"#includc"logLib.h"#include"wdLib.h"#include"taskLib.h"/*defines*/#dcfincSECONDS(3)WDOG—IDmyWatchDogld;myTask(void)I/*Createwatchdog*/if((myWatchDogld=wdCreate())==NULL)return(ERROR);/*SettimertogooffinSECONDS-printingamessagetostdout*/if(wdStart(myWatchDogld,sysClkRateGet()*SECONDS,logM

5、sg,’’Watchdogtimerjustexpiredn)==ERROR)taskDclay(200);return(ERROR);}三.POSIXTimerVxWorks提供了和POSIX1003.1b兼容的時問機制。和POSIXTimer相關的主要函數如下:clock_gettime:clock_settime:timer_create:timer—connect:timer—cancel:timer—delete:timer_settime:取得當前時間設置當前時間創(chuàng)建定時器將定吋器和某個C函數相連接取消某個定時器刪除定時器設置Timer的屮斷周期下面是PO

6、SIXTimer的例子。該例子屮,myTimer()jtl來初始化Timer,將myHandler()和tmIDTimer相關聯。每隔1秒,myHandler()被調用一次。當myHandler()被調用10次KLt取消并刪除定時器tmID。POSIXTimer中,定義了兩個重要的結構,它們都在time.h文件屮定義。其定義如下:structtimespec{/*interval=tv_sec*IO**9+tv_nsec*/timettvsec;/*seconds*//*nanoseconds(0-1,000,000,000)*/longtv_nscc;);structi

7、timerspecstructtimespecit」nterval;/*timerperiod(reloadvalue)*/structtimespecit_valuc;/*timerexpiration*/例子見附錄。!U.小結:VxWorks目前并沒有向我們提供系統的文檔及開發(fā)資料,所宥的資料只宥連機幫助。幫助中對各個系統函數也只作了一個簡單的介紹,對函數中的輸入、輸出、返冋值以及函數中用到的各種結構、宏定義都沒有說明。本文巾提供的例子及對函數的理解都是通過實驗得出的,可能會有曲解或錯誤的地方,歡迎大家批評指正。為了測試系

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。