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