SmartARM2200開發板的RedBoot的移植
引 言
eCos(embedded Configurable operating system)最初是由Cygnus Solutions公司為面向嵌入式領域而開發的實時操作系統,源碼公開,具有很強的可移植性和可配置性,適合于嵌入式開發。現在eCos主要由 eCosCentric公司和eCos開源社區共同開發維護。eCos的特性,特別是它的可配置性,能有效縮短嵌入式產品的開發周期并降低成本。
RedBoot(Red Hat Embedded Debug and Bootstrap)是一個由Red Hat公司開發的可以在嵌入式系統上獨立運行的引導程序。它是目前嵌入式領域功能最強大、可移植性最好的BootLoader之一,采用eCos環境開發,并以eCos的硬件抽象層作為基礎,但完全可以脫離eCos環境運行,可以用來引導任何嵌入式操作系統,如Linux、WinCE等。
SmartARM2200開發板使用NXP公司的LPC2210微處理器。LPC2210基于ARM7TDMI-S內核,系統時鐘頻率達60 MHz,總線對外開放,寬度可配置為8/16/32位。同時開發板還擴展了RTL8019AS(10 Mb/s)以太網控制器。本文將介紹SmartARM2200的移植方法,給其他以ARM為內核的eCos底層移植開發提供參考。
1 硬件抽象層HAL介紹
硬件抽象層HAL對處理器結構和系統硬件平臺進行抽象,當要在一個新的目標平臺上運行RedBoot或eCos時,只需對硬件抽象層進行相應修改,便可迅速地將RedBoot及整個eCos系統移植到新的平臺上。硬件抽象層主要包括三大模塊――體系結構抽象層(Architecture HAL)、變體抽象層(VarJant HAL)和平臺抽象層(Plat-form HAL)。體系結構抽象層主要是指eCos所支持的具有不同體系結構的處理器系列,如ARM系列、PowerPC系列、MIPS系列等等。變體抽象層指的是處理器系列中某款處理器在Cache、MMU和FPU等方面具有的特殊性。平臺抽象層則是對當前系統硬件平臺的抽象,包括了平臺的啟動、芯片選擇與配置、定時設備、I/O寄存器訪問以及中斷寄存器等等。平臺抽象層代碼的編寫是Red-Boot及eCos移植工作的重點。
2 HAL移植的主要步驟
建立適當的文件目錄或從eCos的硬件配置包中選擇1個與準備移植的目標平臺(本文中即SmartARM2200)類似的硬件平臺的HAL實現,然后根據自己目標系統的硬件特征,進行相應的修改。選擇的硬件平臺與目標系統硬件的相似程度決定了移植工作量的大小,相似程度越高,所需的修改也就越小。
本例拷貝了olpce2294的模板(可以在NXP網站獲得相關的補丁,是eCos-1.0下的),以此為基礎修改,主要區別如表1所列。
移植工作的重點也就放在表中所列的這幾部分。
評論