SmartARM2200開(kāi)發(fā)板的RedBoot的移植
以SECTION_fixed_vectors(ram,0x81000000,LMA_EQ_VMA)為例,它表示fixed_vectors段屬于 ram內存域,起始地址為0x81000000,加載內存地址等于虛擬內存地址。LMA_EQ_VMA同時(shí)也可以解釋為該內存段不需要在程序運行后重新分配加載。本文引用地址:http://dyxdggzs.com/article/157884.htm
5 驅動(dòng)程序的移植
SST39VF1601的驅動(dòng)是在SST39VF400的拷貝的基礎上修改的,主要改動(dòng)部分如下:
RTL8019AS的驅動(dòng)是在NS的DP89302A(都兼容NE2000)的拷貝基礎上修改的,應該重點(diǎn)注意的是寄存器地址應該乘以2(因為地址線(xiàn)是從 A1開(kāi)始的),由于該地址總線(xiàn)上還有LCD模塊,為了兩者能同時(shí)工作,總線(xiàn)寬度設置為16位,RTL8019AS的寄存器是8位的,寫(xiě)入和讀取函數定義為 8位的,數據的讀寫(xiě)視工作在8位DMA或16位DMA而定。
6 調試結果
SmartARM2200開(kāi)發(fā)板上帶有1塊2 MB的Flash和1塊16 MB的SRAM。
利用eCos的自帶編譯工具configtool對新建的SmartARM2200目標板進(jìn)行編譯,生成RedBoot的目標文件。然后通過(guò)AXD下載到目標板的SRAM中運行。此時(shí)的RedBoot應為RAM啟動(dòng)方式。剛開(kāi)始調試的難度有點(diǎn)大,因為AXD不支持elf文件的下載,有些目標文件可以通過(guò) objdump反匯編對照調試。
通過(guò)對RedBoot的常用命令的測試結果可以看出,本文提供的SmartARM2200的移植方案是成功的,ping命令正常,tftp下載正常。
結 語(yǔ)
RedBoot和U-boot都是優(yōu)秀的bootloader程序,但RedBoot比U-boot的可移植性好。通過(guò)對RedBoot的移植可以熟悉 eCos系統的開(kāi)發(fā)環(huán)境、configtool圖形化配置工具、硬件抽象層HAL及驅動(dòng)的移植,為進(jìn)一步eCos系統開(kāi)發(fā)打下基礎。
評論