RTOS之uCOS-II源码下载及源码目录结构、常见的RTOS!
RTOS有眾多種,用得最火的是FreeRTOS,因?yàn)樗词褂糜谏虡I(yè)途徑,也是開源免費(fèi)的;其次是就是uCOS-II和uCOS-III。uCOS-II用于商業(yè)途徑是需要付費(fèi)的,但是對于學(xué)習(xí)研究卻是免費(fèi)的。它們同是嵌入式實(shí)時(shí)操作系統(tǒng),很多東西都是共通的,熟悉其一,其它都非難題了。
常見的RTOS:
1:QNX的可靠性很好,協(xié)議棧、各種外設(shè)驅(qū)動(dòng)穩(wěn)定,只是運(yùn)行所需資源有些多,需要MMU。如果需要高可靠性應(yīng)用,QNX可能是最好的選擇
2:RTLinux的實(shí)時(shí)性與其它RTOS相比有些差。但是,因?yàn)楹枚郘inux資源可以利用,是RTLinux的優(yōu)點(diǎn)。但是運(yùn)行所需資源比QNX還多,也是需要MMU。可以選用開源的RTLinux或內(nèi)容新的商用RTLinux。
3:uC/OS-II比較小巧,移植容易,網(wǎng)上資源很多,核心可以做得很小。但不是免費(fèi)的,并且驅(qū)動(dòng)需要自己編寫,協(xié)議棧、圖形驅(qū)動(dòng)都要另外加。
4:Nucleus Plus比uC/OS-II龐大,另外提供了文件系統(tǒng)、協(xié)議棧、圖形界面等許多東西。當(dāng)然也是分開賣的,不是免費(fèi)的東西。使用起來比較容易上手。
5:VRTX是一款比較早的RTOS,現(xiàn)在使用的人已經(jīng)很少。運(yùn)行還是比較可靠。配套的文件、協(xié)議棧等模塊很少。
6:VxWorks是RTOS中的大牛,國內(nèi)外用的人很多,開發(fā)工具功能強(qiáng)大,使用方便,但是價(jià)格昂貴。也有基于MMU的高可靠性的產(chǎn)品。所需資源比QNX小,比uC/OS、eCos多。對于一些私企或者好似小公司來說,可用性值得商榷。
7:eCos是開源的RTOS。針對不同的CPU已經(jīng)做了許多現(xiàn)成的移植。代碼尺寸比Nucleus的略大。如果不用USB host等,并且不想花費(fèi)太多的金錢,應(yīng)該是不錯(cuò)的選擇
?
RTOS的學(xué)習(xí),我選擇的是uCOS-II。學(xué)習(xí)該操作系統(tǒng)的流程,主要分為源碼閱讀以及移植到STM32F10x單板上,并進(jìn)行簡單任務(wù)運(yùn)行測試。過程中參考的資料有:
1.uCOS-II源碼 2.正點(diǎn)原子MiniSTM32開發(fā)板配套資料 3.秉火ISO_V2開發(fā)板配套資料 4.《Cortex-M3權(quán)威指南.pdf》 5.《嵌入式實(shí)時(shí)操作系統(tǒng)μC\OS-Ⅱ原理及應(yīng)用(第4版)》(任哲、房紅征)1. 源碼下載(官網(wǎng)下載:https://www.micrium.com)
??uCOS-II是Micrium公司開發(fā)的一款嵌入式實(shí)時(shí)操作系統(tǒng),要下載源碼自然去該公司的官網(wǎng)下載,下載的時(shí)候需要賬號登錄。我下載過多個(gè)版本,最后發(fā)現(xiàn)這個(gè)版本的uCOS-II源碼比較符合我手上的硬件平臺(tái),即STM32F10x。
??uCOS-II是一個(gè)操作系統(tǒng),其實(shí)也可以理解成一個(gè)軟件庫,它可以移植到多種硬件平臺(tái),如M4內(nèi)核的STM32,或者ARM9等等其他芯片。核心代碼肯定是一致的,但是針對不同的處理器肯定要不同的實(shí)現(xiàn)部分。這里選擇最為接近的版本,目的也在于少花費(fèi)工夫。要知道,若要從0開始移植ucos-ii到目標(biāo)硬件平臺(tái),需要極大的精力和軟件水平。
2. 源碼目錄結(jié)構(gòu)
下載下來后:?
將其解壓后目錄如下:?
EvalBoards:評估板相關(guān)文件,移植時(shí)提取部分?
uC-CPU:這是和CPU緊密相關(guān)的文件,我們不需要使用?
uC-LIB:Micrium公司提供的官方庫,諸如字符串操作、內(nèi)存操作等接口,可用可不用?
uCOS-II:這是關(guān)鍵目錄,我們下來著重分析的文件位于此目錄下
uCOS-II的目錄結(jié)構(gòu)為:?
?這里并沒有基于MDK平臺(tái)的代碼版本,然而IAR跟MDK最為相近,所以我們先主要看以此目錄為例。在IAR目錄下有如下4個(gè)文件:?
(1) os_cpu.h:定義數(shù)據(jù)類型、處理器相關(guān)代碼、聲明函數(shù)原型?
(2) oc_cpu_a.asm:與處理器相關(guān)的匯編代碼,主要是與任務(wù)切換相關(guān)?
(3) os_cpu_c.c:定義用戶鉤子函數(shù),提供擴(kuò)充軟件功能的的接口?
(4) os_dbg.c:內(nèi)核調(diào)試相關(guān)數(shù)據(jù)和相關(guān)函數(shù)
在uCOS-II下的頂級目錄還有Source目錄,下面的文件為:?
(1) os_core.c:內(nèi)核數(shù)據(jù)結(jié)構(gòu)管理,ucos-ii的核心,涵蓋內(nèi)核的初始化,任務(wù)切換,事件塊管理、事件標(biāo)志組管理等功能?
(2) os_flag.c:事件標(biāo)志組?
(3) os_mbox.c:消息郵箱?
(4) os_mem.c:內(nèi)存管理?
(5) os_q.c:隊(duì)列?
(6) os_sem.c:信號量?
(7) os_task.c:任務(wù)管理?
(8) os_time.c:時(shí)間管理,主要實(shí)現(xiàn)延時(shí)?
(9) os_tmr.c:定時(shí)器管理,設(shè)置定時(shí)時(shí)間,超時(shí)則調(diào)用超時(shí)函數(shù)?
(10) ucos_ii.h:內(nèi)部函數(shù)參數(shù)設(shè)置
用下面一張圖片可以概括,uCOS-II的源碼目錄結(jié)構(gòu)?
總結(jié)
以上是生活随笔為你收集整理的RTOS之uCOS-II源码下载及源码目录结构、常见的RTOS!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式系统启动流程和启动代码的作用 !
- 下一篇: 口语学习Day8:今天聊聊微信有关的英语