第14章节 深入Bootloader.pptVIP

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

第14章 深入Bootloader Bootloader一词在嵌入式系统中应用广泛,中文意思可以解释为“启动加载器”。顾名思义,Bootloader是一个在系统启动时工作的软件。由于启动时候涉及到硬件和软件的启动,Bootloader是一个涉及到硬件和软件衔接的重要系统软件。本章从Bootloader的原理出发,分析Bootloader的基本功能,同时介绍了常见的Bootloader系统软件,并且给出了U-Boot这款Bootloader在mini2440开发板的移植过程。本章主要内容如下: Bootloader的基本知识和工作原理 常见的几种Bootloader介绍和对比 U-Boot的工程结构和工作流程 移植U-Boot到mini2440开发板 14.1 初识Bootloader 对于没有接触过嵌入式系统的人来说,Bootloader的功能虽然可以理解,但是缺乏一个直观的认识。本节以大家熟知的PC为例,介绍PC的启动工作流程,然后引入嵌入式Bootloader的概念,给读者一个感性的认识,帮助初学者揭开嵌入式系统Bootloader的面纱。 14.1.1 PC(个人电脑)上的Bootloader 不少初学者都会对标题有或多或少的疑惑,觉得PC机从哪里来的Bootloader。很少有人会说PC机有Bootloader。实际上PC的BIOS(主板上固化的一段程序,常说的“基本输入输出系统”)和硬盘或其他磁盘设备的引导记录在扮演着和嵌入式系统中Bootloader类似的作用,读者可以把这两部分的系统程序理解为PC的Bootloader。 Bootloader是系统加电后运行的第一段程序,一般来说,Bootloader为了保证整个系统的启动速度,要在很短的时间内运行。PC机的Bootloader由BIOS和MBR组成。其中,BIOS固化在PC机主板的一块内存内;MBR是PC机内硬盘主引导扇区(Master Boot Recorder)的缩写。 14.1.2 什么是嵌入式系统的Bootloader PC机的体系结构相对固定,多数厂商采用相同的架构,甚至外部设备的连接方式都完全相同。并且,PC机有统一的设计规范,操作系统和开发人员不用为系统启动发愁,启动的工作都是由BIOS来完成的。不仅如此,PC的BIOS还为操作系统提供了访问底层硬件的中断调用。 嵌入式系统虽然硬件差异大,但是仍然有相同的规律可寻。在同一体系结构上,外部设备的连接方式、工作方式可能不同,但是CPU的指令、编程模型是相同的。由于和PC系统的差异,在嵌入式系统中,需要开发人员自己设计Bootloader。所幸的是,开发人员不用从零开始为每个系统编写代码,一些开源软件组织以及其他公司已经设计出了适合多种系统的Bootloader。这些Bootloader软件实际上是为嵌入式系统设计的一个相对通用的框架。开发人员只需要根据需求,按照不同体系结构的编程模型,以及硬件连接结构,设计与硬件相关的代码,省去了从头开发的繁琐流程。 14.1.3 嵌入式系统常见的Bootloader Bootloader是嵌入式软件开发的第一个环节,它把嵌入式系统的软件和硬件紧密衔接在一起,对于一个嵌入式设备的后续开发至关重要。Bootloader初始化目标硬件,给嵌入式操作系统提供硬件资源信息,并且装载嵌入式操作系统。在嵌入式开发过程中Bootloader往往是难点,开源的Bootloader在设计思想上往往有一些相通之处。本节介绍两款常见的Bootloader供读者参考。 1.U-Boot系统加载器 2.ViVi系统加载器 14.2 U-Boot分析 Bootloader代码是嵌入式系统复位后进入操作系统前执行的一段代码。通过Bootloader的代码初始化处理器的各寄存器以及其他外部设备,建立存储器映射图以及初始化堆栈,为操作系统提供基本的运行环境。由于嵌入式系统的硬件的多样性,不可能有通用的Bootloader,因此需要根据具体硬件特点移植。本节以目前应用比较广泛的U-Boot为例讲解嵌入式系统Bootloader移植的方法。 14.2.1 获取U-Boot U-Boot的源代码可以从ftp://ftp.denx.de/pub/u-boot/获得。使用匿名用户身份登陆到U-Boot的FTP服务器后,进入pub/u-boot目录,该目录包含了U-Boot所有代码。本书使用U-Boot 1.1.6版本代码作为分析的样本。 14.2.2 U-Boot工程结构分析 学习一个软件,尤其是开源软件,首先应该从分析软件的工程结构开始。一个好的软件有良好的工程结构,对于读者学习和理解软件的架构以及工作流程都有很好的帮助。 U-Boot的源代码布局和Linux类似,使用了按照模块划分的结构,并

文档评论(0)

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

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

1亿VIP精品文档

相关文档