基于eCos在基于ARM7硬件平臺(tái)上的應(yīng)用
摘要:簡(jiǎn)單介紹eCos的體系結(jié)構(gòu),詳細(xì)論述eCos的可配置機(jī)制的實(shí)現(xiàn)原理,重點(diǎn)介紹eCos在以AT91M55800為核心的ARM7硬件平臺(tái)上的移植步驟,結(jié)合本系統(tǒng)簡(jiǎn)要介紹內(nèi)核的配置方法。最后給出了基于eCos應(yīng)用軟件的編寫方法。
本文引用地址:http://www.ex-cimer.com/article/151714.htmeCos(Embedded Configurable Operating System)最初是由Cygnus Solutions公司為面向嵌入式領(lǐng)域而開(kāi)發(fā)的源碼公開(kāi)、具有很強(qiáng)的可移植性和可配置性的,適合于深度嵌入式開(kāi)發(fā)的實(shí)時(shí)操作系統(tǒng)?,F(xiàn)在eCos主要由eCosCentric公司和eCos開(kāi)源社區(qū)共同開(kāi)發(fā)維護(hù)。eCos的特性,特別是它的可配置性,能有效縮短嵌入式產(chǎn)品的開(kāi)發(fā)周期并降低成本。
1 eCos的體系結(jié)構(gòu)及可配置性
1.1 eCos體系結(jié)構(gòu)
eCos采用模塊化設(shè)計(jì),將不同功能的軟件分成不同的組件,使其分別位于系統(tǒng)的不同層次。這種層次結(jié)構(gòu)實(shí)現(xiàn)了eCos的可配置性、可移植性、兼容性和可擴(kuò)展性。圖1是eCos系統(tǒng)的層次結(jié)構(gòu)框圖。硬件抽象層(HAL)使其上層次結(jié)構(gòu)不必關(guān)心具體的硬件結(jié)構(gòu),因此只需對(duì)HAL進(jìn)行修改就可以使整個(gè)eCos的應(yīng)用移植到新的硬件平臺(tái)上。
圖1 eCos的層次結(jié)構(gòu)框圖
內(nèi)核是eCos的一個(gè)核心組件,也是系統(tǒng)的一個(gè)可選組件,一些較為復(fù)雜的應(yīng)用需要內(nèi)核的支持。內(nèi)核提供了多個(gè)可供選擇的調(diào)度算法,可以很好地支持多任務(wù)處理。eCos內(nèi)核提供了一組豐富的同步源語(yǔ),完全能滿足各種嵌入式應(yīng)用的需求。內(nèi)核還負(fù)責(zé)對(duì)中斷和例外進(jìn)行處理,它的中斷滯后處理機(jī)制保證了系統(tǒng)的實(shí)時(shí)性。此外,內(nèi)核還具有內(nèi)存分配機(jī)制和定時(shí)機(jī)制,并提供多線程GDB調(diào)試支持。內(nèi)核為上層軟件和應(yīng)用軟件提供了豐富的API接口函數(shù)。
RedBoot是一個(gè)無(wú)內(nèi)核的系統(tǒng)引導(dǎo)程序,是eCos的一個(gè)特殊應(yīng)用。RedBoot可以加載eCos應(yīng)用程序,并提供Debug支持,是開(kāi)發(fā)eCos系統(tǒng)時(shí)非常有用的工具。設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)對(duì)硬件設(shè)備進(jìn)行控制和管理,并完成設(shè)備數(shù)據(jù)的讀/寫操作。設(shè)備驅(qū)動(dòng)程序自身也采用層次結(jié)構(gòu),上層驅(qū)動(dòng)程序(相當(dāng)于一個(gè)虛設(shè)備)可以調(diào)用下層驅(qū)動(dòng)程序(物理設(shè)備)。驅(qū)動(dòng)程序?yàn)樯蠈榆浖峁?biāo)準(zhǔn)的API函數(shù),應(yīng)用程序可以使用這些API函數(shù)對(duì)設(shè)備進(jìn)行訪問(wèn)。
eCos包含的網(wǎng)絡(luò)支持包支持完整的TCP/IP網(wǎng)絡(luò)協(xié)議棧。eCos還提供了標(biāo)準(zhǔn)庫(kù)(ANSI C庫(kù)和數(shù)學(xué)庫(kù))、兼容層(POSIX兼容和uITRON兼容)、文件系統(tǒng)等。作為一種開(kāi)放軟件,eCos還可以很方便地容納第三方軟件。
1.2 可配置性原理
eCos的一個(gè)主要特性就是其可配置特性。可配置性最終是靠代碼中的條件編譯來(lái)完成的,條件編譯是編程語(yǔ)言的特點(diǎn),并不是eCos的原創(chuàng)。當(dāng)一個(gè)軟件工程中的條件編譯項(xiàng)的數(shù)目和復(fù)雜性達(dá)到一定程度時(shí),其中有一些條件編譯項(xiàng)就會(huì)因?yàn)榇嬖谶壿嬌系囊蕾囮P(guān)系而使條件編譯產(chǎn)生沖突。而如何發(fā)現(xiàn)并有效解決這種沖突才是eCos可配置性的特點(diǎn),如圖2所示,其可配置特性的實(shí)現(xiàn)主要由組件定義語(yǔ)言CDL(Component Definition Language)、組件倉(cāng)庫(kù)ecos.db、圖形配置工具configtool三者共同完成。
圖2 可配置機(jī)制
評(píng)論