- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 嵌入式系统-bootloader
嵌入式系统BootLoader BootLoader 嵌入式系统中的 OS 启动加载程序 引导加载程序 相对于操作系统内核来说,它是一个硬件抽象层 PC 机中的引导加载程序 两部分组成 BIOS(其本质就是一段固件程序) 位于硬盘 MBR 中的 OS Boot Loader(如LILO 和 GRUB 等) 流程 BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader Boot Loader 的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,即开始启动操作系统。 嵌入式系统中引导加载程序 没 BIOS 那样的固件程序 系统的加载启动任务就完全由 Boot Loader 来完成 ARM中,系统在上电或复位时从地址 0处开始执行 这个地址是Boot Loader 程序 典型的嵌入式系统 boot loader Blob: boot loader object的缩写 开源,遵循GPL,很好的Linux loader,主要针对ARM U-boot:universal boot loader的缩写, 开源,遵循GPL,支持ARM,MIPS,X86,Nios等处理器 可启动VxWorks, QNX, Linux等多种操作系统 Boot Loader 的概念 在操作系统内核运行之前运行的一段小程序 功能 初始化硬件设备 建立内存空间的映射图 调整系统的软硬件环境,以便操作系统内核启动 不通用 依赖于硬件 依赖于具体的板级配置 不同的 CPU有不同的Boot Loader 有些 BootLoader 支持多CPU,如U-Boot支持 ARM和MIPS 固态存储设备的典型空间分配结构 Boot Loader 的执行 第一条指令 eg:地址 0嵌入式系统通常有固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上 系统加电后,CPU 将首先执行 Boot Loader 程序 用来控制 Boot Loader 的设备或机制 主机和目标机之间一般通过串口建立连接 Boot Loader执行时通常会通过串口进行 I/O 如输出打印信息到串口,从串口读取用户控制字符等 Boot Loader 的启动过程是单阶段(Single Stage)还是多阶段(Multi-Stage) 多阶段的 Boot Loader 提供更为复杂的功能,以及更好的可移植性 从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程 启动过程可以分为 stage 1和 stage 2 两部分 BOOTLOADER一般分为2部分 汇编部分执行简单的硬件初始化 C语言部分负责复制数据,设置启动参数,串口通信等功能 BOOTLOADER的生命周期 1. 初始化硬件,如设置UART(至少设置一个),检测存储器等 2. 设置启动参数,告诉内核硬件的信息,如用哪个启动界面,波特率. 3. 跳转到操作系统的首地址. 4. 消亡 Boot Loader 的操作模式 (Operation Mode) 两种不同的操作模式 启动加载模式 自主(Autonomous)模式 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行 Boot Loader 的正常工作模式 下载模式 通过串口连接或网络连接等通信手段从主机(Host)下载文件 如:下载内核映像和根文件系统映像等。 从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 BootLoader 写到目标机上的FLASH 类固态存储设备中。 通常在第一次安装内核与根文件系统时被使用 系统更新也会使用 Boot Loader 的这种工作模式 通常都会向它的终端用户提供一个简单的命令行接口 Blob 或 U-Boot 等功能强大的 Boot Loader 通常同时支持这两种工作模式 允许用户在这两种工作模式之间进行切换 如Blob 在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而将 blob 切换到下载模式。如10秒内没有用户按键,则 blob 继续启动 Linux 内核 Boot?Loader?的主要任务 stage1?通常包括以下步骤 硬件设备初始化 为加载?Boot?Loader?的?stage2?准备?RAM?空间 拷贝?Boot?Loader?的?stage2?到?RAM?空间中 设置好堆栈 跳转到?stage2?的?C?入口点 Boot?Loader?的?stage2?通常包括以下步骤 初始化本阶段要使用到的硬件设备 检
文档评论(0)