U-Boot在S3C44B0上的移植方法
(2) 硬件資源支持修改后的代碼。開發(fā)者已經選用某種類型的嵌入式微處理器,自行設計了嵌入式系統(tǒng)的開發(fā)板或者直接從廠家購買的開發(fā)系統(tǒng)。在這種情況下,硬件資源已經確定,只能在不改變U-Boot整體結構的條件下,通過修改U-Boot的相關代碼,匹配已有的開發(fā)板。
在實際應用中,最常遇到的是第2種情況。這時應該保證嵌入式主板能夠正常運行,沒有硬件故障,具備相應的存儲媒介( FLASH、SDRAM) 用來存儲和運行U-Boot。由以上分析可以看出,Bootloader 的移植條件包括;①相匹配的微處理器硬件結構; ②可對Boot-loader 進行調整修改的開發(fā)環(huán)境。
注意:以上兩個條件必須同時具備,才能著手進行Bootloader 的移植工作。
U-Boot 移植操作
Bootloader的移植操作前需要作如下兩個工作。
(1) 對嵌入式系統(tǒng)進行硬件分析,判定是否滿足移植條件。根據目標板上CPU、FLASH、SDRAM的情況,以盡可能一致的原則先找出一個與目標板為同一個或同一系列微處理器的U-Boot的支持板為參考,復制相似的目錄,修改文件名及內容。
(2) 確定下載U-Boot所需要的FLASH地址。這由嵌入式微處理器的中斷復位向量決定,嵌入式板的硬件資源不同,中斷復位向量就不同,所以不同嵌入式系統(tǒng)板對Bootloader在固件( EEPROM、FLASH) 中的存放地址各不相同。U-Boot 的起始地址必須和硬件復位向量一致,本文分析的ARM7嵌入式系統(tǒng)板的中斷復位向量設置為0x0C000000,所以U-Boot的映像文件必須燒寫到 FLASH的0x0地址處。
上述兩項工作是移植Bootloader必需完成的前期準備工作。以下結合本文完成的移植工作,介紹移植操作的具體內容和過程。
硬件配置條件
根據前文對移植條件的分析可知,本文的移植操作屬于第2 種情況,即嵌入式系統(tǒng)目標板上硬件資源已經確定,目標板具有硬件資源如表2所列。
表2 硬件資源
移植操作內容
U-Boot 移植所需的硬件資源得到滿足后,可以開始移植操作。
首先需要在主機建立交叉編譯移植開發(fā)環(huán)境,編譯生成目標板上可執(zhí)行映像。主機端( PC) 開發(fā)平臺選用linux 操作系統(tǒng),使用交叉編譯工具為arm-elf-tools-20030314.sh。Bootloader 移植操作,實際上就是根據嵌入式系統(tǒng)硬件資源提供的數據,對有關的文件進行修改。移植工作中的文件修改包括匯編和C 文件兩部分。
移植文件修改
針對本文提供的主板硬件資源,并考慮U-Boot能夠正常運行的最低條件,在移植過程中需要修改文件如表3所列。
表3 修改文件
表3 中,memsetup.S 文件是對S3C44B0外部存儲空間的配置; smdk4110.c 是對S3C44B0各個復用I/ O口的初始化,flash.c 是S3C44B0外接FLASH 芯片的驅動程序。除表3 需要修改的數據外,公共代碼(/common目錄下的文件)、網絡傳輸代碼(/ net 目錄)、驅動程序(/drivers目錄) 3部分根據不同的移植要求修改。
一般情況是要對U-Boot的功能進行擴充或者U-Boot不支持目標板上的設備時,添加相應程序。
評論