μC/OS的應(yīng)用和擴(kuò)展
發(fā)布時(shí)間:2007/8/28 0:00:00 訪問(wèn)次數(shù):466
摘要:本文介紹了μC/OS在ColdFire為核心系統(tǒng)上的具體應(yīng)用,并在此基礎(chǔ)上做了擴(kuò)展,在μC/OS的核心上實(shí)現(xiàn)了RAM盤和文件系統(tǒng)。為了方便應(yīng)用和調(diào)試,還實(shí)現(xiàn)了用戶Shell程序,可以接受并執(zhí)行用戶命令,擴(kuò)展并豐富了μC/OS的功能。
關(guān)鍵詞:μC/OS μCLinux 嵌入式系統(tǒng) ColdFire
一、 概述
近年來(lái),隨著微控制器性能的不斷提高,嵌入式應(yīng)用越來(lái)越廣泛。目前市場(chǎng)上的大型商用嵌入式實(shí)時(shí)系統(tǒng),如VERTEX,VXWORK,PSOS等等,已經(jīng)十分成熟,并為用戶提供了強(qiáng)有力的開(kāi)發(fā)和調(diào)試工具。但商用嵌入式實(shí)時(shí)系統(tǒng)價(jià)格昂貴,而且都針對(duì)特定的硬件平臺(tái)。對(duì)于國(guó)內(nèi)中小型系統(tǒng)的開(kāi)發(fā),購(gòu)買商用實(shí)時(shí)系統(tǒng)并不劃算。此時(shí),采用免費(fèi)軟件和開(kāi)放代碼不失為一種選擇。目前源碼開(kāi)放(C代碼)的嵌入式系統(tǒng)有μC/OS的uCLinux。μC/OS簡(jiǎn)單易學(xué),提供了嵌入式系統(tǒng)的基本功能,其核心代碼短小精悍,如果針對(duì)硬件進(jìn)行優(yōu)化,還可以獲得更高的執(zhí)行效率。但是μC/OS相對(duì)商用嵌入式系統(tǒng)來(lái)說(shuō)還是過(guò)于簡(jiǎn)單,而且存在開(kāi)發(fā)調(diào)試?yán)щy的問(wèn)題。UCLinux是免費(fèi)軟件運(yùn)動(dòng)的產(chǎn)物,包含豐富的功能,包括文件系統(tǒng)、各種外調(diào)驅(qū)動(dòng)程序、通訊模塊、TCP/IP、PPP、HTTP,甚至WEB服務(wù)器的代碼。在INTERNET上流傳的uCLinux已經(jīng)被移植到當(dāng)前幾乎所有的硬件平臺(tái)上,功能與PC機(jī)上運(yùn)行的Linux不相上下,其代碼也十分復(fù)雜。完全移植沒(méi)有必要也十分困難,但uCLinux的代碼經(jīng)過(guò)世界范圍內(nèi)的優(yōu)化,穩(wěn)定可靠而且高效,所有模塊的代碼都可以從INTERNET上獲得,可以進(jìn)行模塊移植。在本例應(yīng)用中,筆者在ColdFire硬件平臺(tái)上運(yùn)行了μC/OS的核心,并實(shí)現(xiàn)了uCLinux的文件系統(tǒng),使得在嵌入式應(yīng)用中可以進(jìn)行文件操作。同時(shí)針對(duì)μC/OS調(diào)試?yán)щy的問(wèn)題。還移植了uCLinux的用戶Shell,使得用戶可以用命令行方式進(jìn)行程序的調(diào)試和開(kāi)發(fā)。
二、 硬件平臺(tái)
本系統(tǒng)的硬件平臺(tái)采用GPFC(General Purpose Fieldbus Controller)數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)是由德國(guó)漢堡國(guó)家同步輻射實(shí)驗(yàn)實(shí)(DESY)Dr.Matthias Clausen領(lǐng)導(dǎo)的研究小組開(kāi)發(fā),采用Motorola公司的ColdFire MCF5206處理器為核心。ColdFire MCF5206處理器屬于Motorola 32位MCU家族,在源碼上與68K系列兼容。全靜態(tài)設(shè)計(jì),在33MHz的工作頻率下可達(dá)最大17MIPS的處理能力。除了具有68K系統(tǒng)的通用功能模塊外,片內(nèi)還帶有DRAM控制模塊,可以直接外接DRAM芯片。由于ColdFire將片選邏輯電路、總線控制器、DRAM控制模塊等全部集成在MCU內(nèi)部,使得外圍電路變得十分簡(jiǎn)單。
在筆者所用的GPFC系統(tǒng)中,ColdFire工作在32MHz,外圍電路包括兩片DEAM芯片,共計(jì)4M的RAM,一片128K的FLASH,用于存放引導(dǎo)程序。其余為I/O電路。系統(tǒng)通過(guò)RS-232串口與PC機(jī)相連。
三、 軟件設(shè)計(jì)
本系統(tǒng)的軟件采用μC/OS為嵌入式平臺(tái)。在應(yīng)用中切實(shí)感到了開(kāi)放源代碼的無(wú)可替代的優(yōu)點(diǎn)。首先是可以根據(jù)自己的需要對(duì)源代碼進(jìn)行取舍,去掉不需要的變量和不使用的函數(shù),甚至可以根據(jù)需要改寫相關(guān)函數(shù)。在μC/OS的源代碼中,函數(shù)執(zhí)行中有許多條件判斷,作用是防止參數(shù)的錯(cuò)誤傳遞。例如,與信號(hào)量有關(guān)的函數(shù)在執(zhí)行前都會(huì)檢查一下傳遞給函數(shù)的指針是不是一個(gè)有效的信號(hào)量指針。作為通用系統(tǒng),這些條件判斷是完全必要的,避免出現(xiàn)錯(cuò)誤時(shí)系統(tǒng)崩潰。但作為具體的應(yīng)用,只要在程序設(shè)計(jì)時(shí)保證參數(shù)傳遞的正確性,完全可以不用條件判斷,就能提高函數(shù)的執(zhí)行速度,尤其一些頻繁調(diào)用的函數(shù),或當(dāng)MCU速率不高的時(shí)候,重寫部分函數(shù)往往可以顯著提高系統(tǒng)性能。另外,由于用戶對(duì)系統(tǒng)有源碼級(jí)的了解,可以添加自己編寫的模塊,與原系統(tǒng)兼容,使系統(tǒng)具有可擴(kuò)展性。
正是由于μC/OS的可擴(kuò)展性,筆者將uCLinux的RAM盤、文件系統(tǒng)和用戶Shell移植到了μC/OS上,在用戶程序中可以進(jìn)行文件操作,文件系統(tǒng)可以為任務(wù)保存數(shù)據(jù),并提供了統(tǒng)一的接口函數(shù)。用戶編制的單個(gè)任務(wù)也可以保存在RAM盤上,可以在終端上用命令方式
摘要:本文介紹了μC/OS在ColdFire為核心系統(tǒng)上的具體應(yīng)用,并在此基礎(chǔ)上做了擴(kuò)展,在μC/OS的核心上實(shí)現(xiàn)了RAM盤和文件系統(tǒng)。為了方便應(yīng)用和調(diào)試,還實(shí)現(xiàn)了用戶Shell程序,可以接受并執(zhí)行用戶命令,擴(kuò)展并豐富了μC/OS的功能。
關(guān)鍵詞:μC/OS μCLinux 嵌入式系統(tǒng) ColdFire
一、 概述
近年來(lái),隨著微控制器性能的不斷提高,嵌入式應(yīng)用越來(lái)越廣泛。目前市場(chǎng)上的大型商用嵌入式實(shí)時(shí)系統(tǒng),如VERTEX,VXWORK,PSOS等等,已經(jīng)十分成熟,并為用戶提供了強(qiáng)有力的開(kāi)發(fā)和調(diào)試工具。但商用嵌入式實(shí)時(shí)系統(tǒng)價(jià)格昂貴,而且都針對(duì)特定的硬件平臺(tái)。對(duì)于國(guó)內(nèi)中小型系統(tǒng)的開(kāi)發(fā),購(gòu)買商用實(shí)時(shí)系統(tǒng)并不劃算。此時(shí),采用免費(fèi)軟件和開(kāi)放代碼不失為一種選擇。目前源碼開(kāi)放(C代碼)的嵌入式系統(tǒng)有μC/OS的uCLinux。μC/OS簡(jiǎn)單易學(xué),提供了嵌入式系統(tǒng)的基本功能,其核心代碼短小精悍,如果針對(duì)硬件進(jìn)行優(yōu)化,還可以獲得更高的執(zhí)行效率。但是μC/OS相對(duì)商用嵌入式系統(tǒng)來(lái)說(shuō)還是過(guò)于簡(jiǎn)單,而且存在開(kāi)發(fā)調(diào)試?yán)щy的問(wèn)題。UCLinux是免費(fèi)軟件運(yùn)動(dòng)的產(chǎn)物,包含豐富的功能,包括文件系統(tǒng)、各種外調(diào)驅(qū)動(dòng)程序、通訊模塊、TCP/IP、PPP、HTTP,甚至WEB服務(wù)器的代碼。在INTERNET上流傳的uCLinux已經(jīng)被移植到當(dāng)前幾乎所有的硬件平臺(tái)上,功能與PC機(jī)上運(yùn)行的Linux不相上下,其代碼也十分復(fù)雜。完全移植沒(méi)有必要也十分困難,但uCLinux的代碼經(jīng)過(guò)世界范圍內(nèi)的優(yōu)化,穩(wěn)定可靠而且高效,所有模塊的代碼都可以從INTERNET上獲得,可以進(jìn)行模塊移植。在本例應(yīng)用中,筆者在ColdFire硬件平臺(tái)上運(yùn)行了μC/OS的核心,并實(shí)現(xiàn)了uCLinux的文件系統(tǒng),使得在嵌入式應(yīng)用中可以進(jìn)行文件操作。同時(shí)針對(duì)μC/OS調(diào)試?yán)щy的問(wèn)題。還移植了uCLinux的用戶Shell,使得用戶可以用命令行方式進(jìn)行程序的調(diào)試和開(kāi)發(fā)。
二、 硬件平臺(tái)
本系統(tǒng)的硬件平臺(tái)采用GPFC(General Purpose Fieldbus Controller)數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)是由德國(guó)漢堡國(guó)家同步輻射實(shí)驗(yàn)實(shí)(DESY)Dr.Matthias Clausen領(lǐng)導(dǎo)的研究小組開(kāi)發(fā),采用Motorola公司的ColdFire MCF5206處理器為核心。ColdFire MCF5206處理器屬于Motorola 32位MCU家族,在源碼上與68K系列兼容。全靜態(tài)設(shè)計(jì),在33MHz的工作頻率下可達(dá)最大17MIPS的處理能力。除了具有68K系統(tǒng)的通用功能模塊外,片內(nèi)還帶有DRAM控制模塊,可以直接外接DRAM芯片。由于ColdFire將片選邏輯電路、總線控制器、DRAM控制模塊等全部集成在MCU內(nèi)部,使得外圍電路變得十分簡(jiǎn)單。
在筆者所用的GPFC系統(tǒng)中,ColdFire工作在32MHz,外圍電路包括兩片DEAM芯片,共計(jì)4M的RAM,一片128K的FLASH,用于存放引導(dǎo)程序。其余為I/O電路。系統(tǒng)通過(guò)RS-232串口與PC機(jī)相連。
三、 軟件設(shè)計(jì)
本系統(tǒng)的軟件采用μC/OS為嵌入式平臺(tái)。在應(yīng)用中切實(shí)感到了開(kāi)放源代碼的無(wú)可替代的優(yōu)點(diǎn)。首先是可以根據(jù)自己的需要對(duì)源代碼進(jìn)行取舍,去掉不需要的變量和不使用的函數(shù),甚至可以根據(jù)需要改寫相關(guān)函數(shù)。在μC/OS的源代碼中,函數(shù)執(zhí)行中有許多條件判斷,作用是防止參數(shù)的錯(cuò)誤傳遞。例如,與信號(hào)量有關(guān)的函數(shù)在執(zhí)行前都會(huì)檢查一下傳遞給函數(shù)的指針是不是一個(gè)有效的信號(hào)量指針。作為通用系統(tǒng),這些條件判斷是完全必要的,避免出現(xiàn)錯(cuò)誤時(shí)系統(tǒng)崩潰。但作為具體的應(yīng)用,只要在程序設(shè)計(jì)時(shí)保證參數(shù)傳遞的正確性,完全可以不用條件判斷,就能提高函數(shù)的執(zhí)行速度,尤其一些頻繁調(diào)用的函數(shù),或當(dāng)MCU速率不高的時(shí)候,重寫部分函數(shù)往往可以顯著提高系統(tǒng)性能。另外,由于用戶對(duì)系統(tǒng)有源碼級(jí)的了解,可以添加自己編寫的模塊,與原系統(tǒng)兼容,使系統(tǒng)具有可擴(kuò)展性。
正是由于μC/OS的可擴(kuò)展性,筆者將uCLinux的RAM盤、文件系統(tǒng)和用戶Shell移植到了μC/OS上,在用戶程序中可以進(jìn)行文件操作,文件系統(tǒng)可以為任務(wù)保存數(shù)據(jù),并提供了統(tǒng)一的接口函數(shù)。用戶編制的單個(gè)任務(wù)也可以保存在RAM盤上,可以在終端上用命令方式
熱門點(diǎn)擊
- 一種基于CPLD的偽隨機(jī)序列發(fā)生器
- 基于PIC18F系列單片機(jī)的嵌入式系統(tǒng)設(shè)計(jì)
- 嵌入式Email發(fā)送模塊
- ADSP-TSl01S嵌入式系統(tǒng)的混合編程
- 在S3C4510B評(píng)估板上移植uclinux
- IEC 61131-3標(biāo)準(zhǔn)與ARM嵌入式控制
- 基于ARM7+μC/OSII的數(shù)據(jù)采集系統(tǒng)設(shè)
- 細(xì)看嵌入式中文Linux系統(tǒng)技術(shù)優(yōu)勢(shì)
- 一種實(shí)時(shí)多任務(wù)系統(tǒng)軟件設(shè)計(jì)方法
- 基于ARM核的音頻解碼器單芯片系統(tǒng)
推薦技術(shù)資料
- 羅盤誤差及補(bǔ)償
- 造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開(kāi)
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究