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