U-boot在S3C44B0上的移植與分析
3.5 include/configs/b2.h文件
該文件中包含了B2目標(biāo)板的一些配置的宏定義,主要有系統(tǒng)工作頻率、環(huán)境變量緩沖區(qū)長度、串口波特率、FLASH起始地址及容量、DRAM起始地址及容量、環(huán)境變量保存位置、FLASH讀/寫命令字、網(wǎng)絡(luò)芯片的基地址、目標(biāo)板IP地址、硬件地址MAC、主機(jī)IP地址、內(nèi)核裝載地址、交互操作命令等。
3.6 board/dave/b2/config.mk文件
U-boot將其代碼從FLASH復(fù)制到SDRAM的位置在0x0c700000處,修改TEXT_BASE=0x0c700000。
U-boot是在Linux環(huán)境下開發(fā)的,因此需要在Linux下進(jìn)行編譯,使用的操作系統(tǒng)為Fedora core 7,從http://opensrc.see.samsung.corn/download/arm-elf-tools-20040427.sh下載arm-elf=tools=20040427.sh,使用的編譯器為arm-elf-gcc,在U-boot根目錄下對(duì)其中的makefile文件進(jìn)行相應(yīng)的修改,然后在命令行中運(yùn)行以下指令:本文引用地址:http://www.ex-cimer.com/article/152486.htm
編譯連接后生成U_boot,U_boot.bin,U_boot.
srec,其中的U_boot.bin是二進(jìn)制bin文件,純粹的U_boot二進(jìn)制執(zhí)行代碼,不保存ELF格式和調(diào)試信息,這個(gè)文件用于燒寫到用戶的開發(fā)板中。通過創(chuàng)維特集成開發(fā)環(huán)境自帶的FLASH燒寫工具載人到SDRAM中運(yùn)行,從超級(jí)終端顯示U-boot的啟動(dòng)信息,分別試驗(yàn)erase,cp,printenv,saveenv等命令,并檢測(cè)對(duì)FLASH的操作;使用tftp命令,以檢測(cè)網(wǎng)口下載功能,然后裝載操作系統(tǒng)內(nèi)核,完成以上任務(wù)則移植成功。經(jīng)過以上步驟移植的U-boot已經(jīng)在自己開發(fā)的ARM板上順利地引導(dǎo)了μClinux操作系統(tǒng)。
4 結(jié) 語
Bootloader是連接系統(tǒng)硬件和操作系統(tǒng)的橋梁,這里根據(jù)U-boot的運(yùn)行機(jī)制,在硬件資源固定,不改變Bootloader框架的前提下,對(duì)與目標(biāo)板硬件相關(guān)的代碼,特別是FLASH芯片Intel 28F320C3B的代碼進(jìn)行修改,成功移植到EB4480開發(fā)板上,并且結(jié)合U-boot和μClinux的啟動(dòng)流程與運(yùn)行機(jī)制,成功設(shè)計(jì)并實(shí)現(xiàn)了在基于S3C44BOX目標(biāo)板上引導(dǎo)嵌入式操作系統(tǒng)。在移植過程中,要熟悉U-boot的組織結(jié)構(gòu)和工作流程,對(duì)相關(guān)的硬件資源有一定的了解,根據(jù)實(shí)際情況進(jìn)行裁減,靈活選用功能模塊。目前,移植后的U-boot能夠穩(wěn)定地運(yùn)行在嵌入式目標(biāo)板上,并能順利地引導(dǎo)嵌入式μCinux系統(tǒng),已成功應(yīng)用在智能機(jī)器人的避障系統(tǒng)中。
評(píng)論