新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于AT91RM9200的ARM Linux的移植方法

基于AT91RM9200的ARM Linux的移植方法

作者:时间:2012-04-11来源:网络收藏

目前嵌入式系统的Bootloader版本很多,如Blob、Redboot、Vivi和U-Boot等,下面就以现在最流行的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)添加网卡芯片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。根据目标板的一级boot来修改,修改后TEXT BASE=0x21f00000。

其次,修改目录include/configs的头文件at91rm9200dk.h,根据目标板的资源配置,修改内容包括CPU ,系统时钟、RAM 、Flash等配里信息以及内存映射相关参数。该头文件还定义了U-Boot的一些环境变量和内核启动参数.可在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,应把环境变量 CROSS_COMPILE设置成相应路径:CROSS_COMPILE=/usr/local/arm/2.95.3 /bin/arm-linux-

最后,调试U-Boot源代码,直到U-Boot在开发板上能正常启动,调试成功后,烧写U-Boot到FLASH,烧写完成后,复位目标板,串口终端就显示U-Boot的启动信息。

3.2 内核的、配置和编译

31.jpg

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭