




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于ARM的嵌入式系統(tǒng)設(shè)計 uC/OS-介紹1主要內(nèi)容uC/OS歷史內(nèi)核結(jié)構(gòu)-任務(wù)以及調(diào)度機制uC/OS的移植2什么是uC/OSu: Micro C:controluC/OS : 適合于小型控制系統(tǒng)的操作系統(tǒng)小巧實時性強可移植性強3uC/OS歷史作者Jean J. Labrosse利用業(yè)余時間完成最初的一篇介紹文章在Embedded System Programming1992年5月到6月期上連載,這是內(nèi)核源代碼的首次曝光。1993年實時內(nèi)核uC/OS出版4uC/OS 歷史uC/OS-II是一種基于優(yōu)先級的可搶先的硬實時內(nèi)核。目前已經(jīng)被移植到多種不同結(jié)構(gòu)的CPU上,運行在從位到位的各種系統(tǒng)之上
2、。通過了美國FAA認證,可以運行在諸如航天器等對安全要求極為苛刻的系統(tǒng)之上。5主要內(nèi)容uC/OS歷史內(nèi)核結(jié)構(gòu)-任務(wù)以及調(diào)度機制uC/OS的移植6任務(wù)同一時刻只有一個任務(wù)在運行每個任務(wù)被賦予一定的優(yōu)先級每個任務(wù)都有自己的一套CPU寄存器和自己的棧空間。 任務(wù)控制塊 7任務(wù)void mytask(void *pdata) for (;) do something;waiting;do something; 8任務(wù)9任務(wù)的數(shù)據(jù)結(jié)構(gòu)任務(wù)控制塊任務(wù)控制塊 OS_tcb,包括任務(wù)堆棧指針,狀態(tài),優(yōu)先級,任務(wù)表位置,任務(wù)鏈表指針等。所有的任務(wù)控制塊,放在任務(wù)控制塊數(shù)組中,并且連接成鏈表。OSTCBFreeL
3、istTCB0TCB1TCBn新任務(wù)TCB(1)空(2)(3)prenext圖 4.3 TCB的雙向鏈表結(jié)構(gòu)10任務(wù)的狀態(tài)休眠態(tài)就緒態(tài)運行態(tài)掛起態(tài)被中斷態(tài)1112任務(wù)調(diào)度uC/OS是占先式實時多任務(wù)內(nèi)核,優(yōu)先級最高的任務(wù)一旦準備就緒,則擁有CPU的所有權(quán)開始投入運行。uC/OS中不支持時間片輪轉(zhuǎn)法,每個任務(wù)的優(yōu)先級要求不一樣且是唯一的,所以任務(wù)調(diào)度的工作就是:查找準備就緒的最高優(yōu)先級的任務(wù)并進行上下文切換。13任務(wù)就緒表14任務(wù)就緒根據(jù)優(yōu)先級確定就緒表 假設(shè)優(yōu)先級為12的任務(wù)進入就緒狀態(tài),12=1 100b,則 OSRdyTbl1的第4位置1,且OSRdyGrp的第1位置1,相應(yīng)的 數(shù)學表達式
4、為: OSRdyGrp |=0 x02; OSRdyTbl1 |=0 x10;而優(yōu)先級為21的任務(wù)就緒21=10 101b,則OSRdyTbl2的第5位置1,且OSRdyGrp的第2位置1,相應(yīng)的數(shù)學表達式為: OSRdyGrp |=0 x04; OSRdyTbl2 |=0 x20;15任務(wù)就緒從上面的計算我們可以得到:若第n位置1,則應(yīng)該與2n 相或。uC/OS中,把2n的n=0-7的8個值 先計算好存在數(shù)組OSMapTbl7中,也就是: OSMapTbl0 =20=0 x1; OSMapTbl1 =21=0 x2; OSMapTbl7 =27=0 x80;16任務(wù)就緒利用OSMapTbl,
5、通過任務(wù)的識別號-優(yōu)先級prio來設(shè)置任務(wù)在就緒組和就緒表數(shù)組中相應(yīng)位置的數(shù)學式為:OSRdyGrp |=OSMapTblprio3;OSRdyTblprio3 |=OSMapTblprio & 0 x07;假設(shè)優(yōu)先級為12,1 100bOSRdyGrp |=0 x02;OSRdyTbl1 |=0 x10;17確定最高優(yōu)先級任務(wù)兩個關(guān)鍵:優(yōu)先級數(shù)分解為高三位和低三位分別確定;高優(yōu)先級有著小的優(yōu)先級號 ;18確定最高優(yōu)先級任務(wù)通過OSRdyGrp值確定高3位,假設(shè)為0 x24=100 100b, - OSRdyTbl2 和OSRdyTbl5,高優(yōu)先級為2通過OSRdyTbl2的值來確定低3位,
6、假設(shè)為0 x12=010 010b ,-第2個和第5個任務(wù),取高優(yōu)先級第2個-1719確定最高優(yōu)先級任務(wù)查表法具有確定的時間,增加了系統(tǒng)的可預(yù)測性,uC/OS中所有的系統(tǒng)調(diào)用時間都是確定的High3 =OSUnMapTblOSRdyGrp;Low3 =OSUnMapTblOSRdyTblHigh3;Prio =(Hign33)+Low3;20查表INT8U const OSUnMapTbl = 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0,
7、 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0,
8、 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0,
9、 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0;21內(nèi)核運行機制時間任務(wù)一任務(wù)二OSStartTime Tick Time Tick 12550Time Tick 空閑任務(wù)22操作系統(tǒng)的運行void main() sysinit(); OSInit (); OSTaskCreate ( Task1, (void *)&Task1Data, (void *)&Task1StkTASK_STK_SIZE,Task1prio); OSTaskCreate (Task2, (void *)&Task2Data, (vo
10、id *)&Task2StkTASK_STK_SIZE,Task2prio); ticker_start(OS_TICKS_PER_SEC); OSStart();23操作系統(tǒng)的運行void OSStart (void) INT8U y, x; if (OSRunning = FALSE) 判斷是否沒有啟動內(nèi)核 y = OSUnMapTblOSRdyGrp; x = OSUnMapTblOSRdyTbly; OSPrioHighRdy = (INT8U)(y 3) + x); 找到優(yōu)先級最高的準備就緒任務(wù) OSPrioCur = OSPrioHighRdy; 當前運行任務(wù)優(yōu)先級 OSTCBHighRdy = OSTCBPrioTblOSPrioHighRdy; 根據(jù)任務(wù)優(yōu)先級找到任務(wù) OSTCBCur = OSTCBHighRdy; OSStartHighRdy(); 讓優(yōu)先級最高的任務(wù)運行起來24OSStartHighRdy: 把OSRunning設(shè)為1 lir0,1lisr11,OSRunninghastbr0,OSRunningl(r11)獲取準備運行的任務(wù)TCB指針lisr11,OSTCBHighR
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年春滬科版七年級數(shù)學下冊 第9章 分式 小結(jié)與復(fù)習
- 2025年度深圳市物流行業(yè)勞動合同范本
- 2025年度旅游意外保險合作協(xié)議書
- 二零二五年度甲乙丙方寫字樓轉(zhuǎn)租管理協(xié)議
- 二零二五年度父子間債權(quán)轉(zhuǎn)讓及債務(wù)轉(zhuǎn)移安排協(xié)議
- 2025年度智能信用卡委托代理服務(wù)合作協(xié)議
- 二零二五年度跨境電商股權(quán)零元轉(zhuǎn)讓協(xié)議
- 二零二五年度離婚后財產(chǎn)分割與雙方未來子女入學協(xié)議
- 電子煙基礎(chǔ)知識培訓課件
- 2025陜西彬長礦業(yè)集團有限公司招聘(150人)筆試參考題庫附帶答案詳解
- 粵教版必修二《向心力》評課稿
- 中國建筑史PPT(東南大學)完整全套教學課件
- 高中英語-40篇英語短文搞定高中英語3500個單詞
- 2022年水利監(jiān)理規(guī)劃
- 哈弗汽車品牌全案策略及營銷推廣方案
- 04J008 擋土墻(重力式 衡重式 懸臂式)
- (學校教育論文)人工智能下的教育變革研究
- 2023年湖南工程職業(yè)技術(shù)學院單招筆試職業(yè)技能考試題庫及答案解析
- 春天的氣息-教學設(shè)計教案
- NB/T 10740-2021露天煤礦大型卡車運行日常安全檢查規(guī)程
- GB/T 41855-2022小型游樂設(shè)施轉(zhuǎn)椅
評論
0/150
提交評論