- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 U-BOOT移植实验
U-BOOT移植实验
u-boot简介
u-boot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序, u-boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。u-boot除了支持PowerPC系列的处理器外,还能支持MIPS、 x86、ARM、NIOS、XScale等诸多常用系列的处理器。
u-boot源码目录介绍
目录 内容 board 和一些已有开发板有关的文件. 每一个开发板都以一个子目录出现在当前目录中,比如说:SMDK2410,子目录中存放与开发板相关的配置文件. common 实现uboot命令行下支持的命令,每一条命令都对应一个文件。例如go命令对应就是
cmd_boot.c cpu 与特定CPU架构相关目录,每一款uboot下支持的CPU在该目录下对应一个子目录,比如有子目录arm920t等。 disk 对磁盘的支持 doc 文档目录。uboot有非常完善的文档,推荐大家参考阅读。 drivers uboot支持的设备驱动程序都放在该目录,比如各种网卡、支持CFI的Flash、串口和USB等。 fs 支持的文件系统,uboot现在支持cramfs、fat、fdos、jffs2和registerfs。 include uboot使用的头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。该目录下configs目录有与开发板相关的配置头文件,如smdk2410.h。该目录下的asm目录有与CPU体系结构相关的头文件,asm对应的是asmarm. lib_xxxx 与体系结构相关的库文件。如与ARM相关的库放在lib_arm中。 net 与网络协议栈相关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现。 tools uboot的工具,如:mkimage, crc等等。
u-boot的启动过程
1 启动流程
我们一般把bootloader都分为阶段1(stage1)和阶段2(stage2)两大部分,依赖于CPU体系结构的代码(如CPU初始化代码等)通常都放在阶段1中且通常用汇编语言实现,而阶段2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。
1 阶段1,汇编代码,对于s3c2410是cpu/arm920t/start.s文件。
主要流程如下:
设置CPU的模式为SVC模式
关闭看门狗
禁掉所有中断
设置以CPU的频率
把自己拷贝到RAM
配置内存区控制寄存器
配置的栈空间
进入C代码部分
2 阶段2是C语言代码,在lib_arm/board.c中的start_armboot是C语言开始的函数,也是整个启动代码中C语言的主函数。这个函数调用一系列的初始化函数,然后进入主UBOOT命令行,进入命令循环(即整个boot的工作循环),接受用户从串口输入的命令,然后进行相应的工作。
当用户输入启动linux的命令的时候,u-boot会将 kernel 映像和从 flash 上读到 RAM 空间中为内核设置启动参数内核。Uboot的源码可以从以下网址下载:/u-boot/u-boot-1.1.4.tar.bz2?modtime=1134752480big_mirror=0
我们这里下载的是u-boot-1.1.4.tar.bz2
建立工作目录:
mkdir /root/build_uboot
cd /root/build_uboot
把下载的源码拷贝到该目录,解压;
tar jxvf u-boot-1.1.4.tar.bz2
mv u-boot-1.1.4 u-boot
2 确定分区:
user
rootfs
kernel
参数 u-boot 0x0400 0000
0x0200 0000
0x0020 0000
0x0004 0000
0x0003 0000
0x0000 0000 _______
我们可以根据以上的一个分区信息来配置我们的系统.
u-boot移植的具体步骤:
一 建立适合的board平台
1 修改顶层Makefile找到:
smdk2410_config : unconfig
@./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
在其后面添加:
gec2410_config : unconfig
@./mkconfig $(@:_config=) arm arm920t gec2410 NULL s3c24x0
:
arm: CPU的架构(ARCH)
arm92
您可能关注的文档
- 浙江省中小学教师录用考试学前教育2013招聘教师考试大纲、试题与答案.doc
- 浙江省台州市2009年高考生物复习研讨会.ppt
- 浙江省第九届“挑战杯”大学生创业计划竞赛预通知(定稿).doc
- 浙江省中小学教师培训质量管理和评价系统操作方法与要求.doc
- 浙江省说课比赛:《方程根与函数零点》之五(新人教A版必修1).ppt
- 浙江省2012年高考数学备考研讨会资料5:高考试题研究与有效复习策略(23张PPT).ppt
- 浙江省金华市2010年中考文综试题与答案.doc
- 海南2011高考英语一轮复习:Module 4 Carnival(外研版必修5).ppt
- 海洋温度分布与变化.doc
- 海西高速公路网命名与编号规则(2009.05).doc
文档评论(0)