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