- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章11嵌入式系统
什么是Bootloader Boot + Load Boot,启动(上电) Load,加载(系统) 引导加载程序(Bootloader)是系统加电后运行的第一段软件代码。 Bootloader是与系统硬件环境高度相关的初始化软件,它担负着初始化硬件和引导操作系统的双重责任。 对了解嵌入式系统底层运行机制、优化和快速启动的研究都有重要的意义。 嵌入式Linux软件开发层次 Boot loader的实例 智能手机 iOS 越狱 Android 刷rom,root PC机 PC 机中的引导加载程序 两部分组成 BIOS(其本质就是一段固件程序) 位于硬盘 MBR 中的 OS Boot Loader(如LILO 和 GRUB 等) 流程 BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader OS Boot Loader 的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,即开始启动操作系统。 嵌入式系统中引导加载程序 系统的加载启动任务完全由 Bootloader来完成 流程 加电启动Bootloader→硬件初始化→加载内核。 比如在一个基于 ARM7TDMI 的嵌入式系统中,系统在上电或复位时通常都从地址 0处开始执行,而在这个地址处安排的通常就是系统的 Bootloader 程序。 Boot Loader的概念 在操作系统内核运行之前运行的一段小程序 功能 初始化硬件设备 建立内存空间的映射图 调整系统的软硬件环境,以便操作系统内核启动 不通用 依赖于硬件CPU 依赖于主板board 不同的CPU有不同的BootLoader 有些 BootLoader 支持多CPU,如U-Boot等。 Boot Loader 的安装媒介 系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址上取指令。 比如,基于ARM7TDMI的CPU在复位时通常都从地址 0它的第一条指令。 基于CPU 构建的嵌入式系统通常都有某种类型的固态存储设备被映射到这个预先安排的地址上。 比如:ROM、EEPROM 或 FLASH 等。 因此在系统加电后,CPU将首先执行Bootloader 程序。 固态存储设备的典型空间分配结构 控制 Boot Loader 的设备或机制 主机和目标机之间一般通过串口建立连接 Boot Loader 软件在执行时通常会通过串口来进行 I/O,比如 输出打印信息到串口 从串口读取用户控制字符等。 最常用的串口通信软件 Linux:minicom Windows:附件中的超级终端 Boot Loader 的启动过程 Boot Loader的启动过程可以是 单阶段(Single Stage)或 一些只需完成很简单功能的boot loader可能是单阶段的 多阶段(Multi-Stage) 通常多阶段的 Boot Loader 能提供更为复杂的功能,以及更好的可移植性 从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,也即启动过程可以分为 stage1 和 stage2 两部分 Boot Loader 的操作模式 大多数 Boot Loader 包含两种不同的操作模式 启动加载(Boot loading)模式和 下载(Downloading)模式 这种区别仅对于开发人员才有意义 从最终用户的角度看,Boot Loader 的作用就是加载操作系统,并不存在上述两种模式的区别 启动加载模式 也称为自主(Autonomous)模式 Boot Loader从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。 这种模式是 Boot Loader 的正常工作模式 在嵌入式产品发布时,Boot Loader必须工作在该模式下 下载模式 目标机的 Boot Loader通过串口或网络等通信手段从主机(Host)下载文件 比如内核映像和根文件系统映像 Host?target ram? target FLASH 该模式的使用时机 通常在第一次安装内核与根文件系统时被使用 也用于此后的系统更新 工作于该模式下的 Boot Loader 通常都会向它的终端用户提供一个简单的命令行接口 Boot Loader 的操作模式 一些功能强大的 Boot Loader 通常 同时支持这两种工作模式 如Blob和U-Boot 允许用户在这两种工作模式之间进行切换 比如,Blob 在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而将 blob 切换到下载模式。如果在
文档评论(0)