從μC/OS―II到μC/OS―III的各種改進
2 μC/OS-III的新特性
μC/OS—III已經(jīng)不僅僅是一個RTOS內(nèi)核,而是包含很多與該內(nèi)核配套的軟件開發(fā)包。和傳統(tǒng)的大型商用RTOS類似,μC/OS—III能以傳統(tǒng)的BSP(板級支持包)方式,實現(xiàn)諸如USB主機、文件系統(tǒng)、TCP/IP協(xié)議棧等,還包括RTOS本身的調(diào)試工具等。Micrium公司和很多軟件公司合作,提供很多基于μC/OS—III的通用商業(yè)軟件,如GUI、FS、USB、TCP/IP等。今后還會與更多的半導(dǎo)體廠商合作,提供更多商家的以ARM Cortex—M3/4為核心的μC/OS—III評估板。
μC/OS—III在功能上得到了全面的擴展和提升。μC/OS—II最多支持255個任務(wù),而μC/OS—III可以支持任意數(shù)目的任務(wù),實際使用的任務(wù)數(shù)目僅受CPU所能使用的存儲空間的限制。μC/OS—III可以支持任意數(shù)目的信號量、事件標(biāo)志組、消息隊列、存儲塊等內(nèi)核對象,而且,為了避免在程序編譯過程中出現(xiàn)資源不夠分配的問題,允許用戶在程序運行中動態(tài)配置內(nèi)核資源。μC/OS—II允許掛起某個任務(wù),但掛起操作不可以嵌套,而μC/OS—III允許嵌套掛起某個任務(wù),嵌套掛起最深可達250層。μC/OS—III增加了一個時鐘節(jié)拍任務(wù)來做延時處理和超時判斷。通過在任務(wù)級代碼完成時鐘節(jié)拍服務(wù),能極大地減少中斷延遲時間。而且,μC/OS—III使用了哈希散列表機制,進一步降低了延時處理和超時判斷的開銷,提高了系統(tǒng)的實時性。
除了功能上的擴展和提升,μC/OS—III還增加了一些新功能。μC/OS—III增加了時間片輪轉(zhuǎn)調(diào)度,允許多個任務(wù)有相同的優(yōu)先級。當(dāng)多個優(yōu)先級相同的任務(wù)同時就緒并且所屬優(yōu)先級高于其他所有就緒任務(wù)時,μC/OS—III輪轉(zhuǎn)調(diào)度這些任務(wù),讓每個任務(wù)運行一段用戶指定的時間長度(即時間片)。
μC/OS—III允許中斷或任務(wù)直接給另一個任務(wù)發(fā)信號或消息。在實際應(yīng)用中,很多情況下,編程人員知道該向哪個任務(wù)發(fā)信號或消息,這時就可以使用μC/OS—III的這種新功能來向目標(biāo)任務(wù)直接發(fā)信號或消息,從而避免創(chuàng)建和使用諸如信號量或消息隊列等內(nèi)核對象作為中介,提高信號或消息發(fā)送的效率。μC/OS—III增加了時間戳功能,可以給信號或消息打上時間戳,從而允許用戶獲取某個事件發(fā)生的時刻,以及信號或消息傳遞到目標(biāo)任務(wù)所耗費的時間等。
另外,μC/OS-III的設(shè)計能方便地按照CPU架構(gòu)優(yōu)化,特別是其數(shù)據(jù)類型可按照CPU能適應(yīng)的最佳位數(shù)寬度修改,以適應(yīng)8/16/32位的CPU。關(guān)鍵算法可采用匯編程,以發(fā)揮一些有特殊指令的CPU的優(yōu)勢。很多CP有讀改寫指令,可方便實現(xiàn)存儲器訪問的原子操作,有的CPU有計算前導(dǎo)零指令,可用來快速查找任務(wù)就緒表。
μC/OS—III增加了中斷處理任務(wù),可以把內(nèi)核對象的處理工作都放到任務(wù)級代碼中完成,從而允許通過給調(diào)度器上鎖的方式實現(xiàn)臨界段代碼的保護,這樣就使內(nèi)核關(guān)中斷的時鐘周期幾乎為零。μC/OS—III內(nèi)置了對系統(tǒng)性能進行測試的代碼,能夠檢測每個任務(wù)的執(zhí)行時間、堆棧使用情況、每個任務(wù)運行的次數(shù)、CPU利用率、關(guān)閉中斷和給調(diào)度器上鎖的時間等。μC/OS—III還支持內(nèi)核覺察式調(diào)試,可以以友好的方式對μC/OS—III的變量、數(shù)據(jù)結(jié)構(gòu)進行檢查和顯示,并且?guī)в?mu;C/Probe調(diào)試工具,可在程序運行過程中察看和修改變量。
結(jié)語
相比μC/OS—II,μC/OS—III做了很多改進,比如改進了任務(wù)調(diào)度方法、改進了時鐘節(jié)拍管理機制、增加了中斷處理任務(wù)、允許向任務(wù)直接發(fā)信號或消息、增加了時間戳功能、支持內(nèi)核覺察式調(diào)試等。從這些改進來看,μC/OS—III比μC/OS—II上升到一個更高的檔次。其中,一主要的改進,比如μC/OS—III的任務(wù)調(diào)度方法的改進、時鐘節(jié)拍管理機制的改進、中斷管理方法的改進等會在后續(xù)專題文章中詳細(xì)介紹。本文引用地址:http://www.butianyuan.cn/article/159587.htm
評論