![]() |
|
在電路板上移植U-Boot程序 |
|
U-Boot能夠支持多種體系結構的處理器,支持的開發板也越來越多,因為Bootloader是完全依賴硬件平臺的,所以在新電路板上需要移植U-Boot程序。 開始移植U-Boot之前,要先熟悉硬件電路板和處理器,確認U-Boot是否已經支持新開發板的處理器和I/O設備。假如U-Boot已經支持一塊非常相似的電路板,那么移植的過程將非常簡單。移植U-Boot工作就是添加開發板硬件相關的文件、配置選項,然后配置編譯。開始移植之前,需要先分析一下U-Boot已經支持的開發板,比較出硬件配置接近的開發板。選擇的原則是,首先處理器相同,其次處理器體系結構相同,然后是以太網接口等外圍接口相同。還要驗證一下這個參考開發板的U-Boot,至少能夠配置編譯通過。 以S3C2410處理器的FS2410開發板為例,U-Boot的高版本已經支持SMDK2410開發板。我們可以基于SMDK2410移植,那么先把SMDK2410編譯通過。移植U-Boot的基本步驟如下。 (1)在頂層Makefile為開發板添加新的配置選項,以使用已有的配置項目為例: smdk2410_config : unconfig 參考上面兩行,添加下面兩行: fs2410_config : unconfig (2)創建一個新目錄存放開發板相關的代碼,并且添加新文件。 (3)為開發板添加新的配置文件。可以先復制參考開發板的配置文件,再修改,例如: $cp include/configs/smdk2410.h include/configs/fs2410.h 如果是為一顆新的CPU移植,還要創建一個新的目錄存放CPU相關的代碼。 (4)配置開發板。 $ make fs2410_config (5)編譯U-Boot。執行make命令,編譯成功可以得到U-Boot映像。有些錯誤是與配置選項有關系的,通常打開某些功能選項會帶來一些錯誤,一開始可以盡量與參考板配置相同。 (6)添加驅動或者功能選項。在能夠編譯通過的基礎上,還要實現U-Boot的以太網接口、Flash擦寫等功能。對于FS2410開發板的以太網驅動和smdk2410完全相同,所以可以直接使用。CS8900驅動程序代碼包括: drivers/cs8900.c 對于Flash的選擇就麻煩多了,Flash芯片價格或者采購方面的因素都有影響。多數開發板大小、型號都不相同,所以還需要移植Flash的驅動。每種開發板目錄下一般都有flash.c這個文件,需要根據具體的Flash類型修改。例如: board/fs2410/flash.c (7)調試U-Boot源代碼,直到U-Boot在開發板上能夠正常啟動。調試的過程是很艱難的,需要借助工具,并且有些問題可能會困擾很長時間。 本文選自華清遠見嵌入式培訓教材《從實踐中學嵌入式Linux應用程序開發》 熱點鏈接:
1、在電路板上移植U-Boot程序 |