版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第9章嵌入式操作系統(tǒng)及應(yīng)用主要內(nèi)容嵌入式操作系統(tǒng)概述39.1典型嵌入式操作系統(tǒng)μC/OSⅡ39.2基于μC/OS-Ⅱ下的應(yīng)用程序設(shè)計(jì)39.4μC/OS-Ⅲ操作系統(tǒng)簡介39.5μC/OS-Ⅱ的移植39.39.1嵌入式操作系統(tǒng)概述
9.1.1嵌入式操作系統(tǒng)一般結(jié)構(gòu)39.1.2嵌入式操作系統(tǒng)的特點(diǎn)與分類
一、特點(diǎn)(1)代碼固化存儲,執(zhí)行效率高(2)可裁剪性(3)實(shí)時性(4)強(qiáng)穩(wěn)定性(5)硬件適應(yīng)性,可移值性二、分類(1)按實(shí)時性分類分為硬實(shí)時操作系統(tǒng)和軟實(shí)時操作系統(tǒng)。(2)按商業(yè)模式分類按照商業(yè)模式,可以把EOS分為商用型EOS和免費(fèi)型EOS。
μC/OS-Ⅱ是搶占式多任務(wù)實(shí)時嵌入式操作系統(tǒng)。μC/OS-Ⅱ具有足夠的穩(wěn)定性和安全性。目前最新版本為μC/OS-Ⅲ。49.2典型嵌入式操作系統(tǒng)μC/OSⅡ
一、C/OS-Ⅱ的主要特點(diǎn)(1)公開源碼的高質(zhì)量實(shí)時內(nèi)核(2)可移植性μC/OS-Ⅱ可被移植到多種微處理器上。(3)可裁剪、可固化(4)時間確定性絕大多數(shù)μC/OS-Ⅱ的函數(shù)調(diào)用與服務(wù)的執(zhí)行時間都是確定的,其服務(wù)的執(zhí)行時間與系統(tǒng)中運(yùn)行的任務(wù)個數(shù)無關(guān)。(5)多任務(wù)μC/OS-Ⅱ可以管理64個任務(wù)(版本2.82以后擴(kuò)充至255個任務(wù))不支持時間片輪轉(zhuǎn)(round-robin)調(diào)度機(jī)制。(6)搶占式內(nèi)核μC/OS-Ⅱ是搶占式實(shí)時內(nèi)核,在任意時刻都可能發(fā)生任務(wù)調(diào)度。因此,μC/OS-Ⅱ可以支持強(qiáng)實(shí)時應(yīng)用。(7)多種系統(tǒng)服務(wù)μC/OS-Ⅱ提供很多實(shí)時內(nèi)核所需的系統(tǒng)服務(wù),例如任務(wù)管理、時間管理、信號量、事件標(biāo)志組、互斥信號量、消息隊(duì)列、內(nèi)存分區(qū)管理等。5μC/OS-Ⅱ系統(tǒng)的組成μC/OS內(nèi)核大致可以劃分為任務(wù)調(diào)度、任務(wù)管理、時間管理、任務(wù)間同步與通信以及內(nèi)存管理、系統(tǒng)管理等模塊。6μC/OS-Ⅱ數(shù)據(jù)類型數(shù)據(jù)類型名稱數(shù)據(jù)類型數(shù)據(jù)寬度BOOLEAN布爾型8位INT8U8位無符號整數(shù)8位INT8S8位帶符號整數(shù)8位INT16U16位無符號整數(shù)16位INT16S16位帶符號整數(shù)16位INT32U32位無符號整數(shù)32位INT32S32位帶符號整數(shù)32位FP32單精度浮點(diǎn)數(shù)32位FP64雙精度浮點(diǎn)數(shù)64位7μC/OS-Ⅱ的任務(wù)及其管理μC/OS-Ⅱ的任務(wù)由三部分構(gòu)成:(1)程序代碼(2)任務(wù)堆棧(3)任務(wù)控制塊8μC/OS-Ⅱ任務(wù)管理服務(wù)-創(chuàng)建任務(wù)(1)任務(wù)創(chuàng)建函數(shù)OSTaskCreate()和OSTaskCreateExt()都可以創(chuàng)建任務(wù)。OSTaskCreateExt()函數(shù)提供了一些附加的功能,但會增加額外的開銷。創(chuàng)建任務(wù)函數(shù)OSTaskCreate()原型如下:INT8UOSTaskCreate(void(*task)(void*pd), /*指向任務(wù)代碼的的指針*/void*pdata, /*任務(wù)開始執(zhí)行時傳遞給任務(wù)的參數(shù)的指針*/OS_STK*ptos, /*任務(wù)堆棧棧頂?shù)闹羔?/INT8Uprio); /*分配給任務(wù)的優(yōu)先級*/如:staticOS_STKAppTask1Stk[64];//任務(wù)1堆棧OSTaskCreate(//任務(wù)創(chuàng)建任務(wù)1 AppTask1,//任務(wù)代碼指針
(void*)0,//傳遞給任務(wù)的參數(shù)指針
(OS_STK*)&AppTask1Stk[64-1],//任務(wù)的堆棧指針 4); //任務(wù)1任務(wù)優(yōu)先級為49μC/OS-Ⅱ時間管理服務(wù)1、延時指定節(jié)拍數(shù)OSTimeDly()原型為:voidOSTimeDly(INT16Uticks);參數(shù)ticks為要延時的時鐘節(jié)拍數(shù)2、延時指定具體時間OSTimeDlyHMSM()原型為:INT8UOSTimeDlyHMSM(INT8Uhours,//時
INT8Uminutes, //分
INT8Useconds, //秒
INT16Umilli); //毫秒實(shí)際的延時時間是時鐘節(jié)拍的整數(shù)倍。如延時1小時18分26秒,則調(diào)用如下:OSTimeDlyHMSM(1,18,26,0);10μC/OS-Ⅱ通信與同步服務(wù)-發(fā)送1、釋放信號量OSSemPostINT8UOSSemPost(OS_EVENT*pevent);2、釋放互斥信號量OSMutexPostINT8UOSMutexPost(OS_EVENT*pevent);3、釋放消息郵箱OSMboxPostINT8UOSMboxPost(OS_EVENT*pevent,void*pmsg);4、
釋放消息隊(duì)列OSSenPostINT8UOSSemPost(OS_EVENT*pevent);11μC/OS-Ⅱ通信與同步服務(wù)-接收1、等待信號量OSSemPendVoidOSSemPend(OS_EVNNT*pevent,INT16Utimeout,int8u*err);2、等待互斥信號量OSMutexPendvoidOSMutexPend(OS_EVENT*pevent,INT16Utimeout,INT8U*err);3、等待消息郵箱OSMboxPendvoid*OSMboxPend(OS_EVENT*pevent,INT32Utimeout,INT8U*perr);4、
等待釋放消息隊(duì)列OSQPendvoid*OSQPend(OS_EVENT*pevent,INT32Utimeout,INT8U*perr);129.3μC/OS-II的移植移植μC/OS-II只需修改OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C這三個文件的相關(guān)函數(shù)。要使μC/OS-II正常運(yùn)行,微控制器必須滿足以下要求:微控制器的C編譯器能產(chǎn)生可重入代碼;微控制器支持中斷,并且能產(chǎn)生定時中斷;C語言可以開/關(guān)中斷;微控制器支持一定數(shù)量的數(shù)據(jù)存儲硬件堆棧;微控制器有將堆棧和其他CPU寄存器讀出和存儲到堆?;騼?nèi)存的指令。13μC/OS-II的體系結(jié)構(gòu)應(yīng)用軟件核心代碼(處理器無關(guān))
OS_CORE.C
OS_MBOX.C OS_MEM.C OS_Q.C OS_SEM.C OS_TASK.C OS_TIME.C
設(shè)置代碼(應(yīng)用相關(guān))
OS_CFG.H INCLUDES.H
核心代碼
消息隊(duì)列
存儲管理
消息管理信號量任務(wù)調(diào)度定時管理
OS_CPU.H 移植時需要修改 OS_CPU_A.ASM 移植時需要修改 OS_CPU_C.C 移植時需要修改CPU定時器軟件硬件14嵌入式操作系統(tǒng)的裁剪嵌入式操作系統(tǒng)內(nèi)核是針對多種處理器而設(shè)計(jì)的,對于一種處理器,某個應(yīng)用場合,有些代碼是多余的,則需要對代碼進(jìn)行適當(dāng)?shù)牟眉粢詽M足夠用就好的設(shè)計(jì)原則。裁剪的目標(biāo)就是去掉多余的代碼,以減少不必要的內(nèi)存空間。更適應(yīng)嵌入式系統(tǒng)量體裁衣的要求。159.4基于μC/OS-Ⅱ下的應(yīng)用程序程序設(shè)計(jì)μC/OS-Ⅱ的初始化與main()函數(shù)結(jié)構(gòu)voidmain(){HW_config(); /*硬件配置與初始化,包括時鐘和使用的外設(shè)*/OSInit(); /*初始化μC/OS-Ⅱ內(nèi)核*/OSTaskCreate(Task1,……); /*創(chuàng)建用戶任務(wù)1*/OSTaskCreate(Task2,……); /*創(chuàng)建用戶任務(wù)2*/......OSTaskCreate(Taski,……); /*創(chuàng)建用戶任務(wù)i*/OSStart(); /*啟動多任務(wù)調(diào)度*/}16μC/OS-Ⅱ用戶任務(wù)的3種結(jié)構(gòu)
-單次任務(wù)單次執(zhí)行的任務(wù)通常執(zhí)行三步操作:任務(wù)準(zhǔn)備工作;任務(wù)實(shí)體;自我刪除函數(shù)調(diào)用。voidTask(void*pdata){
任務(wù)初始化的準(zhǔn)備工作;/*初始化硬件設(shè)備*/
任務(wù)實(shí)體; /*完成該任務(wù)的具體功能*/OSTaskDel(OS_PRIO_SELF);/*任務(wù)完成后刪除*/}17μC/OS-Ⅱ用戶任務(wù)的3種結(jié)構(gòu)
-周期性執(zhí)行的任務(wù)周期執(zhí)行的任務(wù)一般采用循環(huán)結(jié)構(gòu),并在每次完成具體功能后調(diào)用系統(tǒng)延時函數(shù)OSTimeDly()或OSTimeDlyHMSM()等待下一個執(zhí)行周期,并將處理器時間讓給其他任務(wù)。voidTask(void*pdata){任務(wù)初始化準(zhǔn)備工作;/*初始化硬件設(shè)備*/for(;;) /*無限的循環(huán)或while(1)*/{任務(wù)實(shí)體;/*完成該任務(wù)的具體功能*/OSTimeDly(n);/*調(diào)用系統(tǒng)延時函數(shù)等待下一個周期*/}}18μC/OS-Ⅱ用戶任務(wù)的3種結(jié)構(gòu)
-事件觸發(fā)執(zhí)行的任務(wù)這類任務(wù)的實(shí)體代碼只有在某種事件發(fā)生后才執(zhí)行。在相關(guān)事件發(fā)生之前,任務(wù)被掛起。事件觸發(fā)執(zhí)行的任務(wù)一般也采用循環(huán)結(jié)構(gòu),相關(guān)事件發(fā)生一次,任務(wù)實(shí)體代碼執(zhí)行一次。voidTask(void*pdata){
任務(wù)初始化的準(zhǔn)備工作;/*初始化*/for(;;) /*無限的循環(huán)或while(1)*/{調(diào)用獲取事件的函數(shù); /*等待信號量或消息等*/任務(wù)實(shí)體; /*完成該任務(wù)的具體功能*/}}19μC/OS-Ⅱ應(yīng)用程序設(shè)計(jì)實(shí)例按照執(zhí)行周期性任務(wù)的程序結(jié)構(gòu)創(chuàng)建四個任務(wù):
任務(wù)1每隔100ms采集電位器電壓 任務(wù)2每隔200ms判斷電壓值并控制蜂鳴器報警 任務(wù)3每隔300ms輸出與電壓相應(yīng)的PWM波形控制電機(jī) 任務(wù)4每隔500ms在TFTLCD屏顯示電壓值打開實(shí)驗(yàn)例程中的任務(wù)調(diào)度應(yīng)用實(shí)驗(yàn),對照MDK-ARM工程講解示例。(1)硬件初始化
(2)操作系統(tǒng)初始化(3)創(chuàng)建任務(wù)并編寫任務(wù)程序(4)啟動任務(wù)調(diào)度209.5μC/OS-
Ⅲ簡介2010年,拉伯羅斯于推出了μC/OS-Ⅲ,他認(rèn)為μC/OS-Ⅲ并不是μC/OS-Ⅱ的升級版本,而是一個全新的RTOS內(nèi)核。μC/OS-Ⅱ是定位于8位和16位以及低端
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業(yè)健康檔案電子化信息安全防護(hù)體系設(shè)計(jì)
- 貴州2025年貴州省實(shí)驗(yàn)中學(xué)招聘筆試歷年參考題庫附帶答案詳解
- 舟山浙江舟山市新城勾山幼兒園合同制教師招聘筆試歷年參考題庫附帶答案詳解
- 百色2025年廣西百色市德??h鄉(xiāng)鎮(zhèn)事業(yè)單位招聘45人筆試歷年參考題庫附帶答案詳解
- 清遠(yuǎn)廣東清遠(yuǎn)市清新區(qū)太平鎮(zhèn)人民政府招聘森林消防中隊(duì)隊(duì)員20人筆試歷年參考題庫附帶答案詳解
- 泰州江蘇泰州興化市基層醫(yī)療衛(wèi)生單位招聘編外合同制護(hù)理人員82人筆試歷年參考題庫附帶答案詳解
- 新疆2025年新疆人民醫(yī)院科研助理崗位招聘筆試歷年參考題庫附帶答案詳解
- 徐州2025年江蘇徐州邳州市城區(qū)部分單位選調(diào)教師130人筆試歷年參考題庫附帶答案詳解
- 巴中2025年四川巴中恩陽區(qū)選聘城區(qū)中小學(xué)教師25人筆試歷年參考題庫附帶答案詳解
- 安慶2025年安徽安慶市慈善總會招聘工作人員(勞務(wù)派遣制)筆試歷年參考題庫附帶答案詳解
- 胸外科氣胸診療醫(yī)學(xué)查房課件
- 17.2019版NOUAP壓瘡指南解讀 解讀2019 壓力性損傷和治療臨床實(shí)踐指南
- 2025至2030年中國轉(zhuǎn)染試劑行業(yè)市場發(fā)展規(guī)模及市場分析預(yù)測報告
- 2026屆新高考英語熱點(diǎn)復(fù)習(xí)+讀后續(xù)寫
- 華為員工持股管理制度
- 瓜子二手車直賣網(wǎng)流程表
- 房屋繼承確權(quán)協(xié)議書
- 五年級語文下冊 第一單元 1 古詩三首教學(xué)設(shè)計(jì) 新人教版
- 2025年湖南化工職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 辦公樓物業(yè)安全管理
- T-CSOE 0003-2024 井下套管外永置式光纜安裝要求
評論
0/150
提交評論