嵌入式操作系統(tǒng)μCOS-II的特點(diǎn)及移植應(yīng)用研究_第1頁(yè)
嵌入式操作系統(tǒng)μCOS-II的特點(diǎn)及移植應(yīng)用研究_第2頁(yè)
嵌入式操作系統(tǒng)μCOS-II的特點(diǎn)及移植應(yīng)用研究_第3頁(yè)
嵌入式操作系統(tǒng)μCOS-II的特點(diǎn)及移植應(yīng)用研究_第4頁(yè)
嵌入式操作系統(tǒng)μCOS-II的特點(diǎn)及移植應(yīng)用研究_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、嵌入式操作系統(tǒng)C/OS-II的特點(diǎn)及移植應(yīng)用研究李爽正(南陽(yáng)理工學(xué)院南陽(yáng)郵編473004 摘要:闡述了嵌入式操作系統(tǒng)發(fā)展的歷史、嵌入式操作系統(tǒng)的市場(chǎng)和技術(shù)發(fā)展的變化,介紹了當(dāng)前一種源碼公開的嵌入式實(shí)時(shí)操作系統(tǒng)C/OS-II在產(chǎn)品開發(fā)中的應(yīng)用現(xiàn)狀、技術(shù)優(yōu)勢(shì)。分析了C/OS-II嵌入式實(shí)時(shí)內(nèi)核的公開源代碼可移植性、可裁剪、可固化、穩(wěn)定性與可靠性等特點(diǎn)。指出C/OS-II在嵌入式工業(yè)控制系統(tǒng)中很好的應(yīng)用前景。關(guān)鍵詞:嵌入式操作系統(tǒng),C/OS-II,移植中圖分類號(hào):TP文獻(xiàn)標(biāo)識(shí)碼:AStudy on the Characteristics and porting Application of C/OS

2、-IILI Shuang-zheng( Nanyang Institute of Technology ,NanYang, Abstract : The paper discussed the history , market and development of real time operating system (RTOSand introduced the applied status ,technical advantage and developing prospect of C/OS-II, which was a RTOS with open source code. The

3、character of the C/OS-II on open source code were analyzed as portability、scale、solidification、stability and dependability, etc. Besides, pointed out the good application prospect of the C/OS-II in the embedded project control field.Key words: embedded system, C/OS-II, porting引言早在20 世紀(jì)60 年代,就已經(jīng)開始了嵌入

4、式操作系統(tǒng)的研究和開發(fā)工作。嵌入式操作系統(tǒng)在通信、電子、自動(dòng)化等領(lǐng)域具有無(wú)比的優(yōu)越性,其實(shí)時(shí)處理能力得到越來(lái)越多的重視,關(guān)于嵌入式操作系統(tǒng)的研究正在不斷深入。嵌入式操作系統(tǒng)通常分為商用和源碼公開兩種。前者的主要代表有VXWORKS ,PSOS 等,特點(diǎn)是性能優(yōu)良,使用方便但價(jià)格十分昂貴。后者由于代碼是公開的,具有性能和價(jià)格兩方面的優(yōu)勢(shì)。其中C/OS-II是一個(gè)不錯(cuò)的選擇。C/OS-II是由Labrosse 編寫的一個(gè)源碼公開的嵌入式操作系統(tǒng),這一點(diǎn)對(duì)于用戶來(lái)說(shuō)可謂利弊各半:好處在于,它是免費(fèi)的,而且用戶可以根據(jù)自己的需要對(duì)它進(jìn)行修改;缺點(diǎn)在于,它缺乏必要的支持。它沒(méi)有功能強(qiáng)大的軟件包,用戶通常

5、需要編寫自己的驅(qū)動(dòng)程序,有時(shí)甚至還必須編寫相關(guān)的移植程序。1 C/OS-II實(shí)時(shí)操作系統(tǒng)及性能1.1 C/OS-II系統(tǒng)的特點(diǎn)(1C/OS-II是一個(gè)占先式的內(nèi)核,即已經(jīng)準(zhǔn)備就緒的高優(yōu)先級(jí)任務(wù)可以剝奪正在運(yùn)行的低優(yōu)先級(jí)任務(wù)的CPU 使用權(quán)。這個(gè)特點(diǎn)使得它的實(shí)時(shí)性比非占先式的內(nèi)核要好。通常都是在中斷服務(wù)程序中使高優(yōu)先級(jí)任務(wù)進(jìn)入就緒態(tài)(例如使用發(fā)送信號(hào)的方法 ,退出中斷服務(wù)程序后,將進(jìn)行任務(wù)切換,高優(yōu)先級(jí)任務(wù)被執(zhí)行。(2C/OS-II和大家所熟知的Linux 等分時(shí)操作系統(tǒng)不同,它不支持時(shí)間片輪轉(zhuǎn)法。它是一個(gè)基于優(yōu)先級(jí)的實(shí)時(shí)操作系統(tǒng)。每一個(gè)任務(wù)必須具有不同的優(yōu)先級(jí)(分析它的源碼會(huì)發(fā)現(xiàn)C/OS-II

6、把任務(wù)的優(yōu)先級(jí)當(dāng)作任務(wù)的標(biāo)識(shí)來(lái)使用,如果優(yōu)先級(jí)相同,任務(wù)將無(wú)法區(qū)分 。進(jìn)入就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)首先得到CPU 的使用權(quán),只有等它交出CPU 的使用權(quán)后,其他任務(wù)才可以被執(zhí)行。所以只能說(shuō)它是多任務(wù),不能說(shuō)是多進(jìn)程,至少不是人們所熟悉的那種多進(jìn)程。(3C/OS-II對(duì)共享資源提供了保護(hù)機(jī)制。C/OS-II是一個(gè)支持多任務(wù)的操作系統(tǒng)。一個(gè)完整的程序可以劃分成幾個(gè)任務(wù),不同的任務(wù)執(zhí)行不同的功能。這樣,一個(gè)任務(wù)就相當(dāng)于模塊化設(shè)計(jì)中的一個(gè)子模塊。在任務(wù)中添加代碼時(shí),只要不是共享資源就不必?fù)?dān)心互相之間有影響。對(duì)于共享資源(例如串口。C/OS-II也提供了很好的解決辦法。一般情況下使用的是信號(hào)量的方法。簡(jiǎn)

7、單地說(shuō),先創(chuàng)建一個(gè)信號(hào)量并對(duì)它進(jìn)行初始化。當(dāng)一個(gè)任務(wù)需要使用一個(gè)共享資源時(shí),它必須先申請(qǐng)得到這個(gè)信號(hào)量。而一旦它得到了此信號(hào)量,那就只有等它使用完了該資源,信號(hào)量才會(huì)被釋放。在這個(gè)過(guò)程中即使有優(yōu)先權(quán)更高的任務(wù)進(jìn)入了就緒態(tài),因?yàn)闊o(wú)法得到此信號(hào)量,也不能使用該資源。這個(gè)特點(diǎn)的好處顯而易見,當(dāng)顯示屏正在顯示信息的時(shí)候,外部產(chǎn)生了一個(gè)中斷,而在中斷服務(wù)程序中需要顯示屏顯示其他信息。這樣,退出中斷服務(wù)程序后,原有的信息就可能被破壞了。而在C/OS-II中采用信號(hào)量的方法時(shí),只有顯示屏把原有信息顯示完畢后才可以顯示新信息,從而可以避免這個(gè)問(wèn)題。不過(guò),采用這種方法是以犧牲系統(tǒng)的實(shí)時(shí)性為代價(jià)的。如果顯示原有信

8、息需要耗費(fèi)大量時(shí)間,系統(tǒng)只好等待。從結(jié)果上看,等于延長(zhǎng)了中斷響應(yīng)時(shí)間,這對(duì)于未顯示信息是報(bào)警信息的情況,無(wú)疑是致命的。發(fā)生這種情況,在C/OS-II 中稱為優(yōu)先級(jí)反轉(zhuǎn)。簡(jiǎn)單地說(shuō),就是高優(yōu)先級(jí)任務(wù)必須等待低優(yōu)先級(jí)任務(wù)的完成。在上述情況下,在兩個(gè)任務(wù)之間發(fā)生優(yōu)先級(jí)反轉(zhuǎn)是無(wú)法避免的。所以使用C/OS-II時(shí),必須對(duì)所開發(fā)的系統(tǒng)了解清楚,才能選擇對(duì)某種共享資源是否使用信號(hào)量。1.2 C/OS-II性能特點(diǎn)C/OS-II是源代碼公開的實(shí)時(shí)嵌入式操作系統(tǒng),在第1 版的基礎(chǔ)上做了重大的改進(jìn)與升級(jí),它的主要特點(diǎn)如下:(1公開源代碼源代碼公開,并且可以從有關(guān)出版物上找到詳細(xì)的源代碼講解和注釋,這樣使得系統(tǒng)變得透

9、明,很容易就能把操作系統(tǒng)移植到各個(gè)不同的硬件平臺(tái)上。(2可移植性(PortableC/OS-II絕大部分源代碼是用C 語(yǔ)言寫的,而與微處理器硬件相關(guān)的那部分是用匯編語(yǔ)言寫的,使得C/OS-II便于移植到其他微處理器上。(3可固化(ROMableC/OS-II是為嵌入式應(yīng)用而設(shè)計(jì)的,這就意味著,只要開發(fā)者有固化手段(即: C 編譯,連接,下載和固化,C/OS-II可以嵌入到開發(fā)者的系統(tǒng)中。(4可裁剪性(Scalable開發(fā)者可以有選擇的使用C/OS-II中應(yīng)用程序需要的哪些系統(tǒng)服務(wù),這樣可以減少C/OS-II所需的存儲(chǔ)空間。(5占先式(PreemptiveC/OS-II完全是占先式的實(shí)時(shí)內(nèi)核,即

10、總是運(yùn)行就緒條件下優(yōu)先級(jí)最高的任務(wù)。(6多任務(wù)(Mult-TaskC/OS-II可以管理64 個(gè)任務(wù),但目前的版本保留了8 個(gè)給系統(tǒng),應(yīng)用程序最多有56 個(gè)任務(wù),賦予每個(gè)任務(wù)的優(yōu)先級(jí)必須是不同的。C/OS-II不支持時(shí)間片輪轉(zhuǎn)調(diào)度法(Roand-roblin Scheduling 。(7可確定性(Affirmable全部C/OS-II的函數(shù)調(diào)用與服務(wù)的執(zhí)行時(shí)間具有其可確定性,即C/OS-II系統(tǒng)服務(wù)的執(zhí)行時(shí)間不依賴于應(yīng)用程序任務(wù)的多少。(8實(shí)用性和可靠性C/OS-II自1992年以來(lái),已經(jīng)被移植到幾乎所有嵌入式應(yīng)用類CPU上,移植范例的源代碼可以從因特網(wǎng)上下載。許多行業(yè)都有成功應(yīng)用該實(shí)時(shí)內(nèi)核的

11、實(shí)例,這些應(yīng)用的實(shí)踐是該內(nèi)核實(shí)用性和可靠性的最好證據(jù)。2 嵌入式操作系統(tǒng)C/OS-II的移植探討2.1 移植中的問(wèn)題所謂移植,就是使一個(gè)實(shí)時(shí)內(nèi)核能在其他的微處理器(MPU或微控制器(MCU上運(yùn)行。整個(gè)嵌入式系統(tǒng)分為兩大層:硬件層和軟件層。在移植時(shí),這兩個(gè)層都要考慮。硬件層主要是處理器,對(duì)C/OS-II進(jìn)行移植到不同處理器平臺(tái)時(shí),需要解決的主要問(wèn)題有:(1數(shù)據(jù)類型的重定義。對(duì)于一個(gè)操作系統(tǒng)來(lái)說(shuō),基于其上進(jìn)行開發(fā)的應(yīng)用系統(tǒng)一般都使用高級(jí)語(yǔ)言,高級(jí)語(yǔ)言都有自己的數(shù)據(jù)類型。但對(duì)于不同的處理器由于字長(zhǎng)不相同,造成同一數(shù)據(jù)類型在不同處理器中會(huì)有不同的解釋,所以對(duì)不同的處理器應(yīng)該重新進(jìn)行數(shù)據(jù)類型的定義。(2

12、堆棧結(jié)構(gòu)的設(shè)計(jì)。當(dāng)同一個(gè)操作系統(tǒng)應(yīng)用于不同處理器或同一處理器的不同應(yīng)用系統(tǒng)時(shí),由于各應(yīng)用系統(tǒng)所追求的性能各有特點(diǎn),就會(huì)要求與性能有很大關(guān)系的堆棧結(jié)構(gòu)盡可能與本系統(tǒng)所追求的性能一致。(3任務(wù)切換時(shí)的狀態(tài)保存與恢復(fù)。這是多任務(wù)操作系統(tǒng)最主要的工作,也是最頻繁的工作。所以任務(wù)切換在實(shí)現(xiàn)時(shí)的正確與否是操作系統(tǒng)運(yùn)行時(shí)的基本保證,同時(shí)它的簡(jiǎn)潔與否決定操作系統(tǒng)的效率。2.2 移植C/OS-II的條件硬件層主要是處理器,移植C/OS-II對(duì)目標(biāo)處理器有一定要求,要求如下:處理器的C編譯器能產(chǎn)生可重入代碼;處理器支持中斷,并且能產(chǎn)生定時(shí)中斷;用C語(yǔ)言能開、關(guān)中斷;能支持一定數(shù)量的數(shù)據(jù)存儲(chǔ)硬件堆棧;處理器有將堆棧

13、指針以及其他CPU 寄存器的內(nèi)容讀出、并存儲(chǔ)到堆?;蚱渌麅?nèi)存中去的指令。軟件層主要分為四個(gè)部分:實(shí)時(shí)操作系統(tǒng)內(nèi)核,與處理器相關(guān)部分,與應(yīng)用相關(guān)部分,用戶的應(yīng)用系統(tǒng)。下面針對(duì)移植問(wèn)題簡(jiǎn)述這四個(gè)部分:(1實(shí)時(shí)操作系統(tǒng)內(nèi)核實(shí)時(shí)操作系統(tǒng)對(duì)系統(tǒng)資源進(jìn)行管理。主要包括任務(wù)分配和調(diào)度、系統(tǒng)時(shí)鐘服務(wù)、內(nèi)存管理、消息機(jī)制、異常處理等。C/OS-II所有系統(tǒng)服務(wù)均由內(nèi)核提供,內(nèi)核將應(yīng)用系統(tǒng)和底層硬件結(jié)合成一個(gè)完整的實(shí)時(shí)系統(tǒng)。移植的時(shí)候內(nèi)核是不變的,開發(fā)者根據(jù)自己應(yīng)用系統(tǒng)的需要來(lái)選擇實(shí)時(shí)操作系統(tǒng)內(nèi)核,開發(fā)者不能對(duì)內(nèi)核隨意訪問(wèn),只能使用內(nèi)核提供的功能服務(wù)來(lái)開發(fā)自己的應(yīng)用系統(tǒng)。內(nèi)核確定,那么所提供的系統(tǒng)管理能力,系統(tǒng)服

14、務(wù)也就被限定。開發(fā)者只能在規(guī)定的范圍內(nèi)對(duì)系統(tǒng)作些改動(dòng)。(2與處理器相關(guān)的代碼這是移植中最關(guān)鍵的部分。內(nèi)核將應(yīng)用系統(tǒng)和底層硬件有機(jī)結(jié)合成一個(gè)實(shí)時(shí)系統(tǒng)。要使同一個(gè)內(nèi)核能適用于不同的硬件體系,就要在內(nèi)核和硬件之間有一個(gè)中間層,這就是與處理器相關(guān)的代碼。處理器不同,這部分代碼也不同。在C/OS-II中,這一部分代碼分成三個(gè)文件: OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C OS_CPU.H 包括了用#define定義的與處理器相關(guān)的常量、宏和類型定義。具體來(lái)講有系統(tǒng)數(shù)據(jù)類型定義、棧增長(zhǎng)方向定義、關(guān)中斷和開中斷定義、系統(tǒng)軟中斷的定義等。OS_CPU_A.ASM這部分需要對(duì)處理器的寄

15、存器進(jìn)行操作,所以必須用匯編語(yǔ)言來(lái)編寫。它包括四個(gè)子函數(shù):OSStartHighRdy(,OSCtxSw(, OSIntCtxSw(,OSTickISR(。OS_CPU_C.CC/OS-II中共定義了6個(gè)函數(shù)在該文件中。但是最重要的是OSTaskStkInit(,其他都是對(duì)系統(tǒng)內(nèi)核的擴(kuò)展時(shí)用的。OSTaskStkInit(是在用戶建立任務(wù)時(shí)系統(tǒng)內(nèi)部自己調(diào)用的,對(duì)用戶任務(wù)的堆棧進(jìn)行初始化。使建立好的進(jìn)入就緒態(tài)任務(wù)的堆棧與系統(tǒng)發(fā)生中斷并將環(huán)境變量保存完畢時(shí)的棧結(jié)構(gòu)一致。這樣就可以用中斷返回指令使就緒的任務(wù)運(yùn)行起來(lái)。具體的入棧方式要根據(jù)不同處理器而定。(3與應(yīng)用相關(guān)的代碼這一部分是用戶根據(jù)自己的應(yīng)用

16、系統(tǒng)來(lái)定制合適的內(nèi)核服務(wù)功能,包括兩個(gè)文件:O S _ C F G . H ,INCLUDES.H。OS_CFG.H 來(lái)配置內(nèi)核,用戶根據(jù)需要對(duì)內(nèi)核進(jìn)行定制,留下需要的部分,去掉不需要的部分,設(shè)置系統(tǒng)的基本情況。比如系統(tǒng)可提供的最大任務(wù)數(shù)量,是否定制郵箱服務(wù),是否需要系統(tǒng)提供任務(wù)掛起功能,是否提供任務(wù)優(yōu)先級(jí)動(dòng)態(tài)改變功能等。INCLUDES.H 系統(tǒng)頭文件,整個(gè)實(shí)時(shí)系統(tǒng)程序所需要的文件,包括了內(nèi)核和用戶的頭文件。(4用戶應(yīng)用系統(tǒng)這是整個(gè)實(shí)時(shí)系統(tǒng)的最高層,用戶可通過(guò)利用實(shí)時(shí)操作系統(tǒng)提供的服務(wù)來(lái)開發(fā)自己的具體應(yīng)用程序。3 結(jié)束語(yǔ)在嵌入式應(yīng)用中,使用實(shí)時(shí)操作系統(tǒng)(RTOS 是當(dāng)前嵌入式應(yīng)用的一個(gè)特點(diǎn),一種時(shí)尚,尤其在工業(yè)控制系統(tǒng)中,像C/OS-II 這樣短小精湛的實(shí)時(shí)內(nèi)核,更有用武之地。另外,C/OS-II開放的、免費(fèi)嵌入式實(shí)時(shí)操作系統(tǒng)的應(yīng)用與推廣,不僅縮短開發(fā)周期,而且會(huì)研發(fā)出質(zhì)量更高,性能更好,更容易維護(hù)的應(yīng)用軟件。從以上的分析中不難看出,對(duì)于實(shí)時(shí)性、可靠性要求較強(qiáng)的項(xiàng)目,特別是大型項(xiàng)目,最好使用C/OS-II。而對(duì)于一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論