基于Uboot构建嵌入式LinuxBootloader.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文档。上传文档
查看更多
基于Uboot构建嵌入式LinuxBootloader

基于Uboot构建嵌入式LinuxBootloader   摘要:   介绍U-boot功能和特点,并以ARM9板MagicArm2410和嵌入式Linux为背景,探讨U-boot的移植方法与要点。   关键词:引导加载程序; U-boot; 嵌入式Linux; 移植   中图分类号:TP316.81文献标志码:A   文章编号:1001-3695(2007)12-0238-03      1Bootloader介绍      目前在一些专用板上运行Linux已经越来越流行,从软件角度看一个嵌入式Linux系统可分为四个层次,即Bootloader、kernel(Linux内核)、root filesystem(根文件系统)和用户应用程序。   引导加载程序(Bootloader)是系统加电后运行的第一段软件代码。它的主要运行任务就是将内核映像从硬盘读入RAM中,然后跳转到内核的入口点去运行,即开始启动操作系统。在嵌入式系统中,通常并没有PC机上BIOS那样的固件程序(有的嵌入式CPU也会内嵌一段短小的启动程序)。因此整个系统的加载启动任务就完全由Bootloader来完成。通过这段小程序可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置为一个合适的状态。通常,Bootloader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界中建立一个通用的Bootloader几乎是不可?┠艿?。   1.1Bootloader所支持的CPU和嵌入式板   不同的CPU体系结构均有不同的Bootloader,但是有些Bootloader也支持多种体系结构的CPU。要想让运行在一块嵌入式板上的Bootloader程序也能运行在另一块嵌入式板上,通常需要修改Bootloader的源程序。   1.2Bootloader的安装媒介   系统加电或复位后,通常所有的CPU都从某个由CPU制造商预先安排的地址上取指令。比如,基于ARM7TDMI core的CPU在复位时通常都从地址0它的第一条指令。基于CPU构建的嵌入式系统通常都有某种类型的固态存储设备(如ROM、E??2PROM或flash等)被映射到这个预先安排的地址上。因此在系统加电后,CPU将首先执行Bootloader?┏绦?。   图1是一个同时装有Bootloader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图。   1.3用来控制Bootloader的设备或机制   主机与目标机之间一般通过串口建立连接。Bootloader软件在执行时通常会通过串口来进行I/O。   1.4Bootloader的操作模式   1)启动加载(bootloading)模式也称为自主模式,即??Boot-??loader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并无用户介入。嵌入式产品发布时Bootloader显然必须工作在这种模式下。   2)下载(downloading)模式目标机上的Bootloader将通过串口连接或网络连接等通信手段从主机(host)下载文件,如下载内核映像和根文件系统映像等。从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再被??Boot-??loader写到目标机上的flash类固态存储设备中。   1.5Bootloader与主机进行文件传输所用通信设备及协议   最常见的情况就是,目标机上的Bootloader通过串口与主机之间进行文件传输,传输协议通常是xmodem/ymodem/zmodem协议中的一种。但是,串口传输的速度是有限的,因此通过以太网连接并借助TFTP 协议来下载文件是个更好的选择,这也是U-boot所采用的方式。   1.6Bootloader的主要任务与典型结构框架   从操作系统的角度看,Bootloader的总目标就是正确地调用内核来执行。另外,Bootloader的实现依赖于CPU的体系结构,因此大多数Bootloader都分为stage1和stage2两大部分。依赖于CPU体系结构的代码,如设备初始化代码等,通常都放在stage1中,用汇编语言来实现。通常stage2用C语言来实现。这样可以实现更复杂的功能,代码会具有更好的可读性和可移植性。      2U-boot简介      U-boot(universal boot loader)是遵循GPL条款的开放源码项目。它不仅仅支持嵌入式Linux系统的引导,还支持NetBSD、VxWorks、QNX、RTEMS、ARTOS和LynxOS嵌入式操作系统。这是U-boot中Universal的一层含

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档