- 相關推薦
利用實時內核開發(fā)嵌入式多任務程序
摘要:嵌入式系統(tǒng)應用日益復雜化,傳統(tǒng)的前臺/后臺程序開發(fā)機制已經不能滿足需求,目前更多地采用搶占式實時內核開發(fā)嵌入式多任務系統(tǒng)。實時內核為多任務應用程序提供最基本和最重要的服務。本文介紹實時內核和多任務,并提出利用實時內核進行系統(tǒng)開發(fā)時,根據系統(tǒng)功能合理構成任務的方法。關鍵詞:實時內核 多任務 任務構造 嵌入式系統(tǒng)
隨著嵌入式系統(tǒng)的廣泛使用,傳統(tǒng)的前臺/后臺程序開發(fā)機制已經不能滿足日益復雜和多樣化的嵌入式應用需求,因而常常采用嵌入式實時操作系統(tǒng)內核(簡稱實時內核)開發(fā)實時多任務程序。嵌入式實時內核提供多任務、任務管理、時間管理、任務間通信和同步、內存管理等重要服務,使嵌入式應用程序容易設計和擴展。內核是管理微處理器或者微控制器時間的軟件,確保所有時間關鍵的事件盡可能高效地得到處理;允許將系統(tǒng)分成多個獨立的任務,每個任務處理程序的一部分,從而簡化系統(tǒng)的設計過程。
一、非搶占式內核和搶占式內核
實時內核分為兩種:非搶占式內核和搶占式內核。這兩種內核都由中斷服務例程(ISR)處理異步事件。在非搶占式內核中,一個ISR使優(yōu)先級更高的任務就緒,并不立即將CPU控制權交給優(yōu)先級高的任務,而是返回到被中斷的當前任務。只有當前任務執(zhí)行某種操作明確放棄CPU時,優(yōu)先級高的新任務才得到CPU控制權。非搶占式內核對實時事件的響應時間不確定,因而極少在實時應用中使用。圖1所示為非搶占式內核程序流程:①低優(yōu)先級任務(LPT)執(zhí)行;②低優(yōu)先級任務被中斷;③執(zhí)行中斷服務例程,使高優(yōu)先級任務(HPT)就緒;④中斷服務例程返回到被中斷的低優(yōu)先級任務;⑤低優(yōu)先級任務繼續(xù)執(zhí)行;⑥低優(yōu)先級任務放棄CPU;⑦高優(yōu)先級任務運行。
目前在大多數(shù)嵌入式實時多任務系統(tǒng)應用中,對系統(tǒng)實時響應要求很高,因此采用搶占式內核確保時間關鍵的任務最先執(zhí)行,使優(yōu)先級最高的就緒任務總是最先得到CPU控制權。優(yōu)先級低的當前任務能夠被優(yōu)先級更高的任務搶占,暫時掛起執(zhí)行,將CPU控制權交給優(yōu)先級高的任務。圖2所示為搶占式內核程序流程:①低優(yōu)先級任務執(zhí)行;②異步事件使任務中斷;③響應異步事件,運行中斷服務例程,使高優(yōu)先級任務就緒;④中斷服務例程返回到高優(yōu)先級任務;⑤高優(yōu)先級任務執(zhí)行,直到它被中斷轉向執(zhí)行優(yōu)先級更高的任務;⑥高優(yōu)先級任務結束,內核切換到低優(yōu)先級任務;⑦低優(yōu)先級任務繼續(xù)執(zhí)行。
二、多任務
利用實時內核開發(fā)嵌入式多任務系統(tǒng)程序,要根據明確的設計目的確認系統(tǒng)功能,將系統(tǒng)功能合理分解,構造不同的任務,使每個任務負責完成應用要求的一部分功能;并根據任務相對于其他任務的重要性決定其優(yōu)先級。多個任務彼此獨立運行,具有獨立的私有堆?臻g,在被其他進程搶占時能夠保持任務執(zhí)行線程的上下文。
1.任務
任務是單線程序列指令形成的一個無限循環(huán),在系統(tǒng)程序中用函數(shù)表示(如下)。任務執(zhí)行時要調用內核提供的服務,以等待某個事件發(fā)生。事件可以是定時間,或者是另一個任務、一個中斷服務例程發(fā)出事件通知。
Void Task (void)
[1] [2] [3] [4]
【利用實時內核開發(fā)嵌入式多任務程序】相關文章:
綜合化測井地面系統(tǒng)實時多任務采集軟件的設計與開發(fā)04-28
基于LabWindows的實時多任務加載總控臺軟件設計04-28
基于嵌入式操作系統(tǒng)VxWorks的實時通訊的實現(xiàn)05-02
蜻蜓的綜合開發(fā)利用05-03
日本對溫泉的開發(fā)利用05-03
土地資源的開發(fā)與利用04-29
寡糖及其開發(fā)利用04-30
草原蝗蟲資源的開發(fā)與利用05-02
核桃資源的開發(fā)利用05-02
越西花椒產業(yè)的開發(fā)與利用05-02