1 U-BOOT移植实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档