新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于eCos在基于ARM7硬件平臺(tái)上的應(yīng)用

基于eCos在基于ARM7硬件平臺(tái)上的應(yīng)用

作者: 時(shí)間:2010-07-27 來(lái)源:網(wǎng)絡(luò) 收藏

摘要:簡(jiǎn)單介紹的體系結(jié)構(gòu),詳細(xì)論述的可配置機(jī)制的實(shí)現(xiàn)原理,重點(diǎn)介紹在以AT91M55800為核心的上的移植步驟,結(jié)合本系統(tǒng)簡(jiǎn)要介紹內(nèi)核的配置方法。最后給出了eCos軟件的編寫方法。

本文引用地址:http://2s4d.com/article/151714.htm

  eCos(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的移植到新的硬件上。

  圖1 eCos的層次結(jié)構(gòu)框圖

  內(nèi)核是eCos的一個(gè)核心組件,也是系統(tǒng)的一個(gè)可選組件,一些較為復(fù)雜的需要內(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è)主要特性就是其可配置特性??膳渲眯宰罱K是靠代碼中的條件編譯來(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ī)制


上一頁(yè) 1 2 3 4 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉