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