- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
u-boot步骤u-boot步骤
U-Boot实验指导书
一、获得U-Boot源码
我们的光盘中提供了直接从U-Boot的官方网站下载的源代码,版本是1.3.2.,放在src目录下。将u-boot-1.3.2.tar.bz2拷贝了工作目录下,解压源码包:
[root@vm-dev 2410-s]# pwd
/root/2410-s
[root@vm-dev 2410-s]# cp /mnt/hgfs/e/u-boot-1.3.2.tar.bz2 ./
[root@vm-dev 2410-s]# tar jxvf u-boot-1.3.2.tar.bz2
[root@vm-dev 2410-s]# cd u-boot.1.3.2
二、建立板级支持包
在board目录下,每一块开发板都有一个对应的目录,因此我们需要为我们的开发板建立一个目录,名字叫做up2410,并创建相应的文件:
[root@vm-dev u-boot-1.3.2]# cd board/
[root@vm-dev board]# mkdir up2410
[root@vm-dev board]# cp smdk2410/* up2410
[root@vm-dev board]# cd ../
上面的步骤中,我们把smdk2410目录下的所有文件都拷贝到了我们的up2410目录下,因为我们的开发板和smdk2410开发板的配置差不多。
每个开发板都有一个自己的配置文件,如smdk2410开发板的配置文件为include/configs/smdk2410.h,我们也需要为我们的开发板建立自己的配置文件。可以直接从smdk2410开发板的配置文件中修改而来。因此我们先把smdk2410的配置文件复制到我们开发板的配置文件当中:
[root@vm-dev u-boot-1.3.2]# cp include/configs/smdk2410.h include/configs/up2410.h
然后,修改Makefile,使得可以配置我们的开发板:
[root@vm-dev u-boot-1.3.2]# vi Makefile
在Makefile中找到下面两行:
smdk2400_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 NULL s3c24x0
紧接这这两行添加如下两行:
up2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t up2410 NULL s3c24x0
注意第二行开始部分的空白是按TAB键获得的!红色的部分显示了不同处!
这样,我们自己的板级支持包就建好了。 三、添加代码,支持从Nand Flash启动
由于我们的开发板上没有Nor Flash,只能从Nand Flash启动。而U-Boot默认不支持从Nand Flash启动,所以需要我们自己添加代码来实现从Nand Flash启动。
1、 修改start.S文件
位于cpu/arm920t/目录下的start.S文件是开发板上电后运行的第一段代码,需要在这个文件中添加内容,以支持从Nand Flash启动。
[root@vm-dev u-boot-1.3.2]# vi cpu/arm920t/start.S
首先,删掉start.S中的第181行和201行的下面内容:
#ifdef CONFIG_AT91RM9200
#endif
如果有这两句,这两句之间的内容将不会被编译。而我们的开发板需要执行这些内容。然后,找到这一行:
#ifndef CONFIG_SKIP_RELOCATE_UBOOT
在紧接这这行的下面添加下面几行:
#ifdef CONFIG_S3C2410_NAND_BOOT
bl copy_myself
#else
再找到
ble copy_loop
在它的下面添加一行:
#endif
做这些工作就是要完成一个简单的功能:如果我们定义了CONFIG_S3C2410_NAND_BOOT这个宏,那么就执行copy_myself这个子程序,否则就执行#else下面的程序。copy_myself这个子程序的功能就是把U-Boot自身的代码从Nand Flash拷贝到SDRAM中,需要我们自己实现,U-Boot自身并没有为我们实现。
我们把copy_myself也添加在start.S文件中。找到下面的一行:
_start_armboot: .word start_armboot
在这一行的下面添加如下的内容:
/*
***************************
文档评论(0)