下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
μC/OS嵌入式實時操作系統(tǒng)的應(yīng)用和學(xué)習心得μC/OS-II是一種基于優(yōu)先級的搶占式多任務(wù)實時操作系統(tǒng),包含了實時內(nèi)核、任務(wù)管理、時間管理、任務(wù)間通信同步(信號量,郵箱,消息隊列)和內(nèi)存管理等功能。它可以使各個任務(wù)獨立工作,互不干涉,很容易實現(xiàn)準時而且無誤執(zhí)行,使實時應(yīng)用程序的設(shè)計和擴展變得容易,使應(yīng)用程序的設(shè)計過程大為減化。它是一個完整的、可移植、可固化、可裁剪的搶占式實時多任務(wù)內(nèi)核。μC/OS-II絕大部分的代碼是用ANSII的C語言編寫的,包含一小部分匯編代碼,使之可供不同架構(gòu)的微處理器使用。至今,從8位到64位,μC/OS-II已在超過40種不同架構(gòu)上的微處理器上運行。μC/OS-II已經(jīng)在世界范圍內(nèi)得到廣泛應(yīng)用,包括很多領(lǐng)域,如手機、路由器、集線器、不間斷電源、飛行器、醫(yī)療設(shè)備及工業(yè)控制上。實際上,μC/OS-II已經(jīng)通過了非常嚴格的測試,并且得到了美國航空管理局的認證,可以用在飛行器上。這說明μC/OS-II是穩(wěn)定可靠的,可用于與人性命攸關(guān)的安全緊要系統(tǒng)。除此以外,μC/OS-II的鮮明特點就是源碼公開,便于移植和維護。我們在學(xué)習μC/OS嵌入式實時操作系統(tǒng)時用的教科書是任哲編著的《嵌入式實時操作系統(tǒng)μC/OS-Ⅱ原理及應(yīng)用》,這本書介紹了嵌入式實時操作系統(tǒng)μC/OS-Ⅱ內(nèi)核的任務(wù)管理和調(diào)度、系統(tǒng)時鐘和節(jié)拍服務(wù)、時間管理、中斷、任務(wù)的通信和同步、內(nèi)存的簡單管理原理,同時給出了實例。最后,還介紹了μC/OS-Ⅱ的移植方法。在多任務(wù)系統(tǒng)中,內(nèi)核負責管理各個任務(wù),或者說為每個任務(wù)分配CPU時間,并且負責任務(wù)之間的通訊。內(nèi)核提供的基本服務(wù)是任務(wù)切換。之所以使用實時內(nèi)核可以大大簡化應(yīng)用系統(tǒng)的設(shè)計,是因為實時內(nèi)核允許將應(yīng)用分成若干個任務(wù),由實時內(nèi)核來管理它們。內(nèi)核本身也增加了應(yīng)用程序的額外負荷,代碼空間增加ROM的用量,內(nèi)核本身的數(shù)據(jù)結(jié)構(gòu)增加了RAM的用量。但更主要的是,每個任務(wù)要有自己的??臻g,這一塊吃起內(nèi)存來是相當厲害的。內(nèi)核本身對CPU的占用時間一般在2到5個百分點之間。μC/OS-Ⅱ有一個精巧的內(nèi)核調(diào)度算法,實時內(nèi)核精小,執(zhí)行效率高,算法巧妙,代碼空間很少,具有如下特點:只支持基于優(yōu)先級的搶占式調(diào)度算法,不支持時間片輪循;64個優(yōu)先級,只能創(chuàng)建64個任務(wù),用戶只能創(chuàng)建56個任務(wù);每個任務(wù)優(yōu)先級都不相同;不支持優(yōu)先級逆轉(zhuǎn);READY隊列通過內(nèi)存映射表實現(xiàn)快速查詢;效率非常高;支持時鐘節(jié)拍;支持信號量,消息隊列,事件控制塊,事件標志組,消息郵箱任務(wù)通訊機制;支持中斷嵌套,中斷嵌套層數(shù)可達255層,中斷使用當前任務(wù)的堆棧保存上下文;每個任務(wù)有自己的堆棧,堆棧大小用戶自己設(shè)定;支持動態(tài)修改任務(wù)優(yōu)先級;任務(wù)TCB為靜態(tài)數(shù)組,建立任務(wù)只是從中獲得一個TCB,不用動態(tài)分配,釋放內(nèi)存;任務(wù)堆棧為用戶靜態(tài)或者動態(tài)創(chuàng)建,在任務(wù)創(chuàng)建外完成,任務(wù)創(chuàng)建本身不進行動態(tài)內(nèi)存分配;任務(wù)的總個數(shù)(OS_MAX_TASKS)由用戶決定;0優(yōu)先級最高,63優(yōu)先級最低;有一個優(yōu)先級最低的空閑任務(wù),在沒有用戶任務(wù)運行的時候運行。任務(wù)的調(diào)度核心主要是在任務(wù)就緒表中查找具有最高優(yōu)先級別的就緒任務(wù)及實現(xiàn)任務(wù)切換,即將找到的的最高優(yōu)先級別的任務(wù)的“任務(wù)號”--->“當前任務(wù)的任務(wù)號OSPrioCur”;從OSTCBPrioTbl[]取出最高優(yōu)先級別任務(wù)的任務(wù)控制塊首地址--->“當前任務(wù)的任務(wù)控制塊指針OSTCBCur”,最后調(diào)用OS_TASK_SW()完成現(xiàn)場切換(即將CPU的寄存器信息保存到當前正運行任務(wù)的私棧中,然后從待運行的高優(yōu)先級別的任務(wù)私棧中彈出原先保存寄存器信息到CPU)。時鐘節(jié)拍服務(wù)放到一個時鐘節(jié)拍任務(wù)中完成,通過采用啥希散列表機制來管理延時任務(wù),每次時鐘節(jié)拍服務(wù)只需要處理極少數(shù)的延時任務(wù),從而大大減少了時鐘節(jié)拍服務(wù)花費的時間,提高了系統(tǒng)的實時性。另外,在μC/OS系列RTOS中,時鐘節(jié)拍服務(wù)除了會跟蹤延時的任務(wù),還會跟蹤那些指定了超時時限的等待任務(wù)。也就是說,當指定的超時時限結(jié)束時,即使任務(wù)等待的事件沒有發(fā)生,時鐘節(jié)拍服務(wù)也會使該任務(wù)恢復(fù)運行。uC/OS-II的時間管理是通過定時中斷來實現(xiàn)的,該定時中斷一般為10毫秒或100毫秒發(fā)生一次,時間頻率取決于用戶對硬件系統(tǒng)的定時器編程來實現(xiàn)。中斷發(fā)生的時間間隔是固定不變的,該中斷也成為一個時鐘節(jié)拍。uC/OS-II要求用戶在定時中斷的服務(wù)程序中,調(diào)用系統(tǒng)提供的與時鐘節(jié)拍相關(guān)的系統(tǒng)函數(shù),例如中斷級的任務(wù)切換函數(shù),系統(tǒng)時間函數(shù)。uC/OS-II中最多可以支持64個任務(wù),分別對應(yīng)優(yōu)先級0~63,其中0為最高優(yōu)先級。63為最低級,系統(tǒng)保留了4個最高優(yōu)先級的任務(wù)和4個最低優(yōu)先級的任務(wù),所有用戶可以使用的任務(wù)數(shù)有56個。還提供了任務(wù)管理的各種函數(shù)調(diào)用,包括創(chuàng)建任務(wù),刪除任務(wù),改變?nèi)蝿?wù)的優(yōu)先級,任務(wù)掛起和恢復(fù)等。系統(tǒng)初始化時會自動產(chǎn)生兩個任務(wù):一個是空閑任務(wù),它的優(yōu)先級最低,該任務(wù)僅給一個整形變量做累加運算;另一個是系統(tǒng)任務(wù),它的優(yōu)先級為次低,該任務(wù)負責統(tǒng)計當前cpu的利用率。想使用在MCU上使用μC/OS-II則必須滿足以下幾個條件:①處理器C編譯器支持可重入代碼的生成;②用C語言可以打開和關(guān)閉中斷;③處理器支持中斷,并能產(chǎn)生定時中斷(中斷頻率通常設(shè)置在10~100Hz之間);④處理器支持足夠的RAM空間,以滿足多任務(wù)環(huán)境下設(shè)置任務(wù)堆棧的要求;⑤處理器有相應(yīng)的指令,能將堆棧指針和其它CPU寄存器讀出和存儲到堆?;騼?nèi)存中。μC/OS-II代碼中大部分是用C語言寫的,但涉及到數(shù)據(jù)類型的重定義、堆棧結(jié)構(gòu)的設(shè)計、任務(wù)切換時狀態(tài)的保存和恢復(fù)等問題的大部分代碼由于與處理器有關(guān),是用匯編語言實現(xiàn)的。移植所要做的工作,就是在不同的處理器上用匯編語言來改寫與處理器有關(guān)的代碼及其他與處理器特性相關(guān)的部分。在μC/OS-II移植過程中涉及以上問題的代碼都包含在文件OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM中。因此移植的主要工作也在源代碼的基礎(chǔ)上圍繞著這三個文件的改寫展開??傊瑢W(xué)習μC/OS嵌入式實時操作系統(tǒng)首先得先了解整個系統(tǒng)的結(jié)構(gòu),工作時的流程,比如任務(wù)1運行時如果有外部中斷會發(fā)生什么(調(diào)用中斷服務(wù)程序,把相應(yīng)的任務(wù)加如就緒列,內(nèi)核進行調(diào)度,就緒隊列中的最高優(yōu)先級的任務(wù)...)等,再對代碼進行具體的研究會比較容易。我們需熟知μC/OS嵌入式實時操作系統(tǒng)中的函數(shù)及其應(yīng)用,例如引起任務(wù)調(diào)度的系統(tǒng)函數(shù)有OSStart()uCOS/II啟動;OSTaskSuspend()掛起任務(wù);OSTaskResume()恢復(fù)任務(wù);OSTimeDly()/OSTimeDlyHMSM()等待一個事件的發(fā)生等。只有在熟識系統(tǒng)運行的方式及可以引發(fā)其運行的函數(shù)的情況下我們才能較好的去運用它,用它來實現(xiàn)移植,從而達到我們的目的。學(xué)習實時操作系統(tǒng),任哲編著的《嵌入式實時操作系統(tǒng)μC/OS-Ⅱ原理及應(yīng)用》這本書相對來說比較適合初學(xué)者,它篇幅適中,通俗易懂,若能結(jié)合北京航空航天大學(xué)《ucosii操作系統(tǒng)講義》就更加好了。正所謂讀書百遍,其義自現(xiàn),通過對《北航》和《任哲》的資料不斷反復(fù)地學(xué)習和閱讀,我心中總算有些眉目
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)派遣雙方協(xié)議書七篇
- 個人建筑承包協(xié)議
- 非典型麻疹綜合征病因介紹
- 機械基礎(chǔ) 課件 模塊八任務(wù)三 聯(lián)軸器與離合器
- (2024)黃金選礦劑生產(chǎn)建設(shè)項目可行性研究報告(一)
- 全景式數(shù)字游民洞察報告
- 獸醫(yī)寄生蟲病學(xué)練習題含參考答案
- 佐樂米貼鼻子課件
- 養(yǎng)老院老人洗浴衛(wèi)生管理制度
- 養(yǎng)老院老人緊急救援人員培訓(xùn)制度
- 2023-2024學(xué)年廣東省廣州市白云區(qū)九年級(上)期末語文試卷
- 2024統(tǒng)編版初中八年級語文上冊第六單元:大單元整體教學(xué)設(shè)計
- 五年級上冊數(shù)學(xué)試題試卷(8篇)
- 2024-2025學(xué)年四年級科學(xué)上冊第三單元《運動和力》測試卷(教科版)
- 學(xué)術(shù)規(guī)范與論文寫作智慧樹知到答案2024年浙江工業(yè)大學(xué)
- 2024年典型事故案例警示教育手冊15例
- 【打印版】2021年上海市浦東新區(qū)中考一模數(shù)學(xué)試卷及解析
- EN1779-歐洲無損檢測標準
- 【數(shù)據(jù)結(jié)構(gòu)】A類停車場管理系統(tǒng)
- 生態(tài)保護紅線劃定.ppt
- 機械原理榫槽成型半自動切削機課程設(shè)計
評論
0/150
提交評論