新聞中心

        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ù)目標板的資源配置,修改內(nèi)容包括CPU ,系統(tǒng)時鐘、RAM 、Flash等配里信息以及內(nèi)存映射相關參數(shù)。該頭文件還定義了U-Boot的一些環(huán)境變量和內(nèi)核啟動參數(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-

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

        3.2 內(nèi)核的、配置和編譯

        31.jpg

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


        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 东宁县| 阳泉市| 竹北市| 双辽市| 伊通| 大渡口区| 三原县| 招远市| 云南省| 卢湾区| 沙坪坝区| 东山县| 桂林市| 贞丰县| 左贡县| 和田县| 旬阳县| 察隅县| 马关县| 昂仁县| 衡山县| 郑州市| 衡水市| 英超| 云安县| 登封市| 鞍山市| 台湾省| 博白县| 凌源市| 石棉县| 台安县| 潜江市| 景宁| 肇源县| 通城县| 沐川县| 雷山县| 化德县| 商都县| 集贤县|