- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ARM9的GT2440开发板的U-boot-1.3.4的移植
卢少林 南京农业大学
邮箱:lushaolin1989@
硬件配置
1、 GT2440\其它开发板
2、 其中nand flash为2Kb一页(具体和512byte的有什么区别,参考nand元件手册,或者上网搜一下,对于uboot,主要是读nand时的写地址时序的不一样)
3、 串行线
4、 J-link\j-tag(笔者用的是jlink,主要用于uboot的调试,因为你移植马上能用的可能性不大,所以需要调试)
?
软件配置:
1、u-boot-1.3.4
2、USB或TFTP下载
3、arm-linux-gcc 3.3.2
?
三、UBOOT移植
1、注意问题
了解了大概uboot的运行过程,现在开始移植,移植前,说明几个问题
由于uboot-1.3.4较于较早的版本,就是Makefile有一定的变化,使得对于24x0处理器从nand启动 会有问题,就是有人说的无法运行过lowlevel_init。这个问题产生的原因是因为编译器将笔者自己添加的用于nandboot的子函数放到了4K 之后(为什么说是4K,uboot从nand启动原理,前面说过),解决办法:
1、顶层Makefile文件中:
#__LIBS := $(subst $(obj),,$(LIBS)) $(subst$(obj),,$(LIBBOARD))__LIBS := $(subst $(obj),,$(LIBBOARD)) $(subst $(obj),,$(LIBS))这样修改之后查看map文件可以发现,lowlevel_init函数链接到了前面.2、在不修改Makefile的情况下,可以通过修改目标板下的链接文件u-boot.lds来使lowlevel_init放在4K之内: cpu/arm920t/start.o (.text)board/net2410e/lowlevel_init.o (.text) 把之放到start.o的后面.这相当于修改链接脚本,未做验证,笔者使用第一种方法!
3、?开始移植/*其中,蓝色为修改内容,红色为添加内容,参考《移植u-boot-1.3.4到s3c2440》*/
下载源码,网址:
U-Boot软件包下载网站:/project/u-boot
笔者更喜欢从这里下载源码:ftp://ftp.denx.de/pub/u-boot/
1)解压uboot
#tar –xjvf u-boot-1.3.4.tar.gz2
?
2)修改Makefile
#cd u-boot-1.3.4
#vi Makefile或者直接在图形界面打开Makefile,可能这种方法更好用
修改内容如下:
__LIBS := $(subst$(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD))
改为:
__LIBS := $(subst $(obj),,$(LIBBOARD)) $(subst$(obj),,$(LIBS))
添加开发板信息
sbc2410x_config: unconfig @$(MKCONFIG)$(@:_config=) arm arm920t sbc2410x NULL s3c24x0
GT2440_config : unconfig @$(MKCONFIG) $(@:_config=) armarm920t ?GT2440? NULL? s3c24x0
/*
各项的意思如下:
GT2440_config : 这个名字是将来你配置板子时候用到的名字,参见make GT2440_config命令。
arm: CPU的架构(ARCH)
arm920t: CPU的类型(CPU),其对应于cpu/arm920t子目录。
gt2440: 开发板的型号(BOARD),对应于board/ GT2440目录。
NULL: 开发者/或经销商(vender)。s3c24x0: 片上系统(SOC)。
*/
?
3)在/board/下建立自己的开发板目录
由于笔者开发者那填了NULL,所以直接创建,如果有填,则要再建一个子目录,因为笔者是以sbc2410x这板为基础移植的,所以还要将它的内容复制到开发板文件夹上。
[root@localhost board]#mkdir /board/GT2440
[root@localhost board]#cp –arf sbc2410x/* GT2440/
[root@localhost board]#cd GT2440
[root@localhost u-boot-1.3.4]#mv sbc2410x.c GT2440.c
[root@localhost u-boot-1.3.4]
文档评论(0)