- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三部分(搞高篇)讲稿(一)___Bootloader;一、 Bootloader ;在嵌入式系统中:
通常并没有像 BIOS 那样的固件程序
(注,有的嵌入式 CPU 也会内嵌一段短小的启动程序)
,因此整个系统的加载启动任务就完全由 Boot Loader
来完成。
比如在一个基于 ARM7TDMI core 的嵌入式系统
中,系统在上电或复位时通常都从地址 0处
开始执行,而在这个地址处安排的通常就是系统的
Boot Loader 程序。 ;1.Boot Loader 的概念 简单地说,Boot Loader 就是在操作系统内核
运行之前运行的一段小程序。
通过???段小程序,我们可以初始化硬件设备、
建立内存空间的映射图,从而将系统的软硬件环境
带到一个合适的状态,以便为最终调用操作系统内核
准备好正确的环境。
通常,Boot Loader 是严重地依赖于硬件而实现
的,特别是在嵌入式世界。
因此,在嵌入式世界里建立一个通用的 Boot
Loader 几乎是不可能的。尽管如此,我们仍然可以
对 Boot Loader 归纳出一些通用的概念来,用以指导
特定的嵌入式系统 Boot Loader 设计与实现。 ;Boot Loader 一些通用的概念:
(1) Boot Loader 所支持的 CPU 和嵌入式板
(2) Boot Loader 的安装媒介
(3) Boot Loader 的控制方式
(4) Boot Loader 的操作模式
(5) Boot Loader 与主机通信
;(1) Boot Loader 所支持的 CPU 和嵌入式板;(2)Boot Loader 的安装媒介
系统加电或复位后,所有的处理器通常都从某个预先
安排的地址上取指令。
比如,ARM在复位时从地址0x0取指。
嵌入式系统中通常都有某种类型的固态存储设备(比
如:ROM、EEPROM 或FLASH 等)被映射到这个预先安
排的地址上。因此在系统加电后,处理器将首先执行
Boot Loader 程序
Bootloader是最先被系统执行的程序
;固态存储设备的典型空间分配结构;;(3)Boot Loader的控制方式
??主机和目标机之间一般通过串口建立连接,Boot Loader 软件在执行时通常会通过串口来进行通讯,比如:输出打印信息到串口,从串口读取用户控制字符
??也可以通过JTAG等其他接口通讯
;(4)Boot Loader 的操作模式??
大多数Boot Loader 都包含两种不同的操作模式:??
启动加载模式??
下载模式??
最终用户的角度看,Boot Loader 的作用就是用来
加载操作系统,而并不存在所谓的启动加载模式与
下载工作模式的区别;启动加载与下载模式
??
启动加载模式
称为“自主”(Autonomous)模式。也即Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到RAM 中运行,整个过程并没有用户的介入。这种模式是Boot Loader的正常工作模式,因此在嵌入式产品发布的时侯,Boot Loader 显然必须工作在这种模式下。
??;下载模式
在这种模式下,目标机上的Boot Loader 将通过串口连接或网络连接等通信手段从主机下载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常首先被Boot Loader 保存到目标机的RAM 中,然后再被Boot Loader 写到目标机上的FLASH 类固态存储设备中。
Boot Loader 的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用Boot Loader 的这种工作模式。工作于这种模式下的Boot Loader 通常都会向它的终端用户提供一个简单的命令行接口。
;(5)BootLoader与主机通信
串口传输,传输协议通常是xmodem/ymodem
/zmodem。程序简单,传输的速度比较
慢,115200bps
通过以太网传输是个好方法。TFTP 协议是
最常见的方式
;2.Boot Loader 的主要任务与典型结构框架;
Boot Loader 的stage1
??通常包括以下步骤(以执行的先后顺序):
1.硬件设备初始化。
2.为加载Boot Loader 的stage2 准备RAM 空间。
3.拷贝Boot Loader 的stage2 到RAM 空间中。
4.设置好堆栈。
5.跳转到stage2 的C 入口点
;;Boot Loader 的stage2
通常包括以下步骤(以执行的先后顺
文档评论(0)