网站大量收购独家精品文档,联系QQ:2885784924

ARM教程:ARM 的BootLoader与初始化分析.ppt

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、Boot Loader 的概念 在操作系统内核运行之前运行的一段程序 功能 初始化硬件设备 建立内存空间的映射图 调整系统的软硬件环境,以便操作系统内核启动 不通用 依赖于硬件 依赖于具体的板级配置 不同的 CPU有不同的Boot Loader 有些 BootLoader 支持多CPU,如U-Boot支持 ARM和MIPS 1、BootLoader的概念 简单地说,bootloader就是在操作系统内核运行前运行地一段小程序。 通过这段小程序,我们可以初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导和加载内核的作用。 bootloader是依赖于硬件而实现的,特别是在嵌入式系统中。不同的体系结构需求的bootloader是不同的。 对于两块不同的嵌入式板而言,即使它们基于相同的CPU构建,运行在其中一块电路板上的bootloader,未必能够运行在另一块电路开发板上。 2、固态存储设备的空间分配结构 3、控制 Boot Loader 的设备或机制 主机和目标机之间一般通过串口建立连接。 Boot Loader执行时通常会通过串口进行 I/O,如输出打印信息到串口,从串口读取用户控制字符等。 通常目标机上的 Boot Loader 通过串口与主机之间进行文件传输。 传输协议 通常是 xmodem/ymodem/zmodem 协议中的一种 也可通过以太网连接并借助 TFTP 协议来下载文件。 串口传输的速度是有限的 主机提供 TFTP 服务 4、Boot Loader 的操作模式 Boot Loader通常有两种不同的操作模式: 启动加载模式 自主(Autonomous)模式。从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,是Boot Loader 的正常工作模式。 下载模式 通过串口连接或网络连接等通信手段从主机(Host)下载文件。 如:下载内核映像和根文件系统映像等。 从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 BootLoader 写到目标机上的FLASH 类固态存储设备中。 4、Boot Loader 的操作模式 Boot Loader通常有两种不同的操作模式: 下载模式 通常在第一次安装内核与根文件系统时被使用,系统更新也会使用 Boot Loader 的这种工作模式。 该模式通常都会向它的终端用户提供一个简单的命令行接口。 Blob 或 U-Boot 等功能强大的 Boot Loader 通常同时支持这两种工作模式,且允许用户在这两种工作模式之间进行切换。 如Blob 在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而将 blob 切换到下载模式。如10秒内没有用户按键,则 blob 继续启动 Linux 内核。 5、多阶段的 Boot Loader 从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,分为 stage 1和 stage 2 两部分 ,以便提供更为复杂的功能,以及更好的可移植性。 stage 1:汇编部分执行简单的硬件初始化; stage 2 :C语言部分负责复制数据,设置启动参数,串口通信等功能。 5、多阶段的 Boot Loader stage1?通常包括以下步骤: 硬件设备初始化; 为加载?Boot?Loader?的?stage2?准备?RAM?空间; 拷贝?Boot?Loader?的?stage2?到?RAM?空间中; 设置好堆栈; 跳转到?stage2?的?C?入口点。 5、多阶段的 Boot Loader ?stage2?通常包括以下步骤: 初始化本阶段要使用到的硬件设备; 检测系统内存映射(memory?map); 将?kernel?映像和根文件系统映像从?flash?上读到?RAM?空间中; 为内核设置启动参数; 调用内核。 6、Boot Loader 的执行 第一条指令 eg:地址 0嵌入式系统的固态存储设备被映射到这个预先安排的地址上,系统加电后,CPU 将首先执行 Boot Loader 程序。 stage1.1基本的硬件初始化 目的: 为?stage2?的执行以及随后的?kernel?的执行准备好一些基本的硬件环境 。 1.?屏蔽所有的中断

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档