新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > U-Boot在S3C2410上的移植分析

U-Boot在S3C2410上的移植分析

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


其中“arm”是CPU的种类,arm920t是ARM CPU对应的代码目录,是自己开发板对应的目录。

交叉编译器安装在:/ path/ armv4l-unknown -linux-目录下,所以把CROSS-COMPILE 设置成相应的路径: CROSS-COMPILE = / path/ arm4l-unknown-linux -

生成目标文件并进行测试
依次运行以下命令:

# make clean
# make -config
# make

之后会生成三个文件:

——ELF 格式的文件, 可以被大多数Debug 程序识别;
.bin ——二进制文件,纯粹的

二进制执行代码,不保存ELF 格式和调试信息。 这个文件一般用于烧录到用户开发板中;U-Boot .srec ——Motorola S-Record格式,可以通过串行口下载到开发板中。

测试与应用

本文引用地址:http://www.eepw.com.cn/article/218884.htm

1) 测试

利用编制好的Flash烧写程序,通过JTAG口将生成的二进制文件U-Boot。bin烧入Flash的零地址。 烧录成功后,拔掉JTAG调试线并复位开发板,从Minicom终端输出如下信息:

U-Boot 1.1.2 (Jul 20 2005-09 :34 :21)
U-Boot code : 33F00000-> 33F1952C BSS:-> 33F1D870
RAM Configuration :
Bank # 0 : 30000000 64 MB
Flash Memory Start 0x0000000
Device ID of the Flash is 18
Flash : 16 MB
Write 18 to Watchdog and it is 18 now
In : serial
Out : serial
Err : serial
SMDK2410 #

串口输出的以上信息表明,CPU和串口已正常工作。通过U-Boot提供的命令flinfo和mtest可以测试Flash和RAM。经过测试,可以正确地读出Flash信息及读写RAM,表明Flash 和DRAM 已正确初始化。用tftp命令传输宿主机tftpboot目录下任一小文件到RAM成功,说明网卡芯片也成功驱动。

2) 简单应用

U- Boot的主要作用是用来引导内核。因此,通过U-Boot引导一个特定的内核,可以进一步测试其的稳定性。而使用U-Boot引导内核有两种不同的方法。第一种方法是直接将内核映象文件和根文件系统烧写入Flash,使用此方法,U-Boot在启动时将 Flash中的内核映象及根文件系统读入RAM指定位置并从同一位置启动内核。第二种方法是将内核映象文件和根文件系统下载至RAM中直接启动(而不是从Flash中读入RAM) ,此种方法不需要烧写Flash。笔者为了减少烧写Flash的次数,在本文中采用第二种方法,其步骤如下:

SMDK2410 # tftp 30008000 zImage
SMDK2410 # tftp 30800000 ramdisk.Image.gz
SMDK2410 # go 30008000

上述指令执行的过程中,未出现异常,内核成功启动,并最终进入Shell提示符“ # ”。在Shell提示符下输入内核编译时定制的各个命令,均可以正常运行。另外编写简单C程序,并用交叉编译器编译之,最终生成的可执行文件能够在开发板上正常运行。上述事实说明内核经过U-Boot引导已稳定运行在开发板上。此次应用,进一步验证了U-Boot的稳定性。至此,工作告一段落。

结 语

目前,笔者移植的U-Boot已经能稳定地运行在开发板上,这使得Linux内核的调试脱离了BDM调试器,节约了大量的开发时间,大大提高了效率,是对后续嵌入式开发的有力支持。当然,U-Boot只是一款好用的,嵌入式Linux的开发存在很多技术细节,只有根据实际情况不断修改、调试、总结,才能获得更大的成功。

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


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭