- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统BootLoader BootLoader Boot loader是与系统硬件环境高度相关的初始化软件,它担负着初始化硬件和引导操作系统的双重责任。 每一个特定系统的Boot loader都会有所不同。 Boot loader移植是在特定硬件平台上操作系统移植至关重要的一步,是引导操作系统和根文件系统的基础。 对了解嵌入式系统底层运行机制、优化和快速启动的研究都有重要的意义。 PC 机中的引导加载程序 两部分组成 BIOS(其本质就是一段固件程序) 位于硬盘 MBR 中的 OS Boot Loader(如LILO 和 GRUB 等) 流程 BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader Boot Loader 的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,即开始启动操作系统。 嵌入式系统中引导加载程序 系统的加载启动任务就完全由 Boot Loader 来完成 ARM7TDMI中,系统在上电或复位时从地址 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 依赖于主板board 不同的 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 的启动过程 从固态存储设备上启动的 Boot Loader 大多都是 2 阶段 启动过程可以分为 stage 1和 stage 2 两部分 BOOTLOADER一般分为2部分 汇编部分执行简单的硬件初始化 C语言部分负责复制数据,设置启动参数,串口通信等功能 BOOTLOADER的生命周期 1. 初始化硬件,如设置UART(至少设置一个),检测存储器等 2. 设置启动参数,告诉内核硬件的信息,如显示控制台LCD或串口、VGA等. 3. 跳转到操作系统的首地址. 4. 消亡 Boot Loader 的操作模式 启动加载模式 自主(Autonomous)模式 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行 Boot Loader 的正常工作模式 下载模式 通过串口连接或网络连接等通信手段从主机(Host)下载内核映像和根文件系统映像等。 从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 BootLoader 写到目标机上的FLASH 类固态存储设备中。 第一次安装内核与根文件系统时或对其更新时使用 通常都会向它的终端用户提供一个简单的命令行接口 BootLoader 与主机之间进行文件传输所用的通信设备及协议 通常Boot Loader 通过串口与主机之间进行文件传输 传输协议 通常是 xmodem/ymodem/zmodem 协议中的一种 可通过以太网连接并借助 TFTP 协议来下载文件 串口传输的速度是有限的 主机提供 TFTP 服务 Boot?Loader?的主要任务 stage1?通常包括以下步骤 硬件设备初始化 为加载?Boot?Loader?的?stage2?准备?RAM?空间 拷贝?Boot?Loader?的?stage2?到?RAM?空间中 设置好堆栈 跳转到?stage2?的?C?入口点 Boot?Loader?的?stage2?通常包括以下步骤 初始化本阶段要使用到的硬件设备 检测系统内存映射(memory?map) 将?kernel?和根文件系统
文档评论(0)