新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于AT91RM9200的ARM Linux的移植方法

基于AT91RM9200的ARM Linux的移植方法

作者: 時間:2012-04-11 來源:網(wǎng)絡 收藏

目前嵌入式系統(tǒng)的Bootloader版本很多,如Blob、Redboot、Vivi和U-Boot等,下面就以現(xiàn)在最流行的U-Boot為例,詳細介紹如何將它到自己的目標板上。U-boot主要步驟如下:

首先自己的目標板的硬件資源,修改或添加U-Boot源代碼的board/at91rm9200目錄中如下源碼文件:(1)重寫FLASH的設備控制程序flash.c , U-Boot讀、寫和刪除Flash設備的源代碼文件。由于在不同目標板中FLASH存儲器種類各不相同,參照自己flash的datasheet重寫 flash的設備控制程序flash.c,該程序完成的功能包括Flash初始化、打印Flash信息、Flash擦除和Flash寫入等操作。(2)添加memsetup.s。該匯編源碼文件初始化時鐘、SMC控制器和SDRAM控制器。(3)添加網(wǎng)卡芯片DM9161E的設備控制程序dm9161.c 和dm9161.h,程序。(4)修改Makefile文件。對上述修改或添加的源代碼文件編譯后,在Makefile里面主要做如下修改: OBJS :=at91rm9200dk.c at45.o dm9161.o flash.o SOBJS:=memsetup.o(5) U-Boot.lds ,設置U-boot中各個目標文件的連接地址,基本不做修改。(6)config.mk。根據(jù)目標板的一級boot來修改,修改后TEXT BASE=0x21f00000。

其次,修改目錄include/configs的頭文件at91rm9200dk.h,根據(jù)目標板的資源配置,修改內容包括CPU ,系統(tǒng)時鐘、RAM 、Flash等配里信息以及內存映射相關參數(shù)。該頭文件還定義了U-Boot的一些環(huán)境變量和內核啟動參數(shù).可在U-Boot啟動后通過setenv和 saveenv命令修改。U-Boot-1.1.2版本對at91rm9200處理器提供良好的支持,因此對于目錄CPU at91rm9200中的源碼基本不做修改。在U-Boot-1.1.2的Makefile中加入如下代碼:

at91rm9200dk_config: unconfig@/mkconfig $(@: _config=) arm at91rm9200 at91rm9200dk

其中“arm”是CPU的種類,at91rm9200是 CPU對應的代碼目錄,at91rm9200dk是目標板對應的目錄。由于交叉編譯器安裝在目錄/usr/local/arm,應把環(huán)境變量 CROSS_COMPILE設置成相應路徑:CROSS_COMPILE=/usr/local/arm/2.95.3 /bin/arm-linux-

最后,調試U-Boot源代碼,直到U-Boot在開發(fā)板上能正常啟動,調試成功后,燒寫U-Boot到FLASH,燒寫完成后,復位目標板,串口終端就顯示U-Boot的啟動信息。

3.2 內核的、配置和編譯

31.jpg

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉