- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统原理与应用第11讲 BootLoader
BootLoader概述
BootLoader框架
BootLoader代码分析
一、BootLoader概述
BootLoader功能
BootLoader特点
常见BootLoader
1. BootLoader功能
嵌入式系统的软件体系结构:
BootLoader功能(续)
系统引导程序通常称为Boot Loader,是在系统复位后执行的第一段代码,相当于PC上的BIOS以及商业实时操作系统中的板级支持包BSP。
Boot Loader首先完成系统硬件的初始化,包括时钟的设置、存储区的映射等,设置堆栈指针等;然后把操作系统内核从flash区拷贝到ram区,并跳转到内核的入口,将系统控制权交给操作系统,在此之后系统的运行和Boot Loader 再无任何关系。
BootLoader功能(续)
典型Flash存储空间分配结构,从地址0x0开始,依次存放BootLoader、BootLoader参数、操作系统内核以及文件系统,如下图所示:
2. BootLoader特点
Boot Loader独立于操作系统,必须由用户自己设计,uClinux的发行包中不包含Boot Loader,但用户可以直接使用或参考一些开源的Boot Loader软件工程来编制自己的Boot Loader。
BootLoader的实现高度依赖于硬件,包括处理器的体系结构、具体型号、硬件电路板的设计。
BootLoader特点(续)
Boot Loader与主机通信最常用的方式是通过串口,使用的协议通常是xmodem/ymodem/ zmodem等协议的一种。
借助TFTP协议使用以太网连接速度更快,但此时主机必须提供TFTP服务。
BootLoader特点(续)
Boot Loader分为单阶段和多阶段两类
多阶段的Boot Loader能提供更为复杂的功能,以及更好的移植性。从固态存储器上启动的Boot Loader大多是两阶段的启动过程。具体分为stage1和stage2。
BootLoader特点(续)
大多Boot Loader都有两个操作模式:
启动加载:即Boot Loader从目标机上的某个固态存储器上将操作系统加载到ram中运行,整个过程没有用户的介入。这是Boot Loader的正常工作模式。
下载模式:目标机上的Boot Loader将通过串口或网络连接从主机(host)上下载文件,例如内核映象和根文件系统等。下载的文件首先放在ram中,然后被Boot Loader写到固态存储器中。 Boot Loader的这种模式通常在第一次安装内核与根文件系统时使用。
Bootloader系统架构用例分析
3. 常见BootLoader
LILO:Linux Loader简称,是Linux 诞生之日起一直使用的Boot Loader,现在由John Coffman维护,有详细的文档。在可以获得最新版本。
GRUB:GRand Unified BootLoader,是GNU计划的主要Boot Loader。
常见BootLoader(续)
Blob:LART硬件计划采用的BootLoader。因为它的采用,Blob被移植到许多使用ARM的系统,使用非常广泛。Blob不提供监控程序的能力。
RedBoot:Red Hat的下一代Boot Loader。
U-Boot:公认的功能最多、最具弹性以及开发最积极的开放源码BootLoader,受到各种支持者的支持。U-Boot以PPCBoot和ARMBoot为基础,大约支持100种PPC电路和十几种ARM电路
常见BootLoader(续)
vivi是由韩国mizi公司为ARM处理器系列设计的一个BootLoader,目前只支持使用串口和主机通信,所以您必须使用一条串口电缆来连接目标板和主机。作用如下:
检测目标机;
初始化硬件;
把操作系统内核从Flash复制到RAM,然后启动它。
二、BootLoader框架
由于Boot Loader的实现依赖于CPU的体系结构、目标板硬件电路设计,因此大多数Boot Loader都分为两个阶段。
依赖于CPU的代码,例如设备初始化等放在stage1中,这部分代码通常用汇编来编写,以达到短小精悍的目的。
而stage2通常用C编写,以实现更复杂的功能,而且可以提高代码的可移植性。
stage1包含的步骤
硬件设备初始化;
为加载Boot Loader的stage2准备ram空间;
复制Boot Loader的stage2到ram中;
设置好堆栈;
跳转到stage2的入口;
stage2包含的步骤
初始化本阶段要使用的硬件设备
检测系统内存映射(Memory Map)
将kernel映象和根文件系统从flash读到
您可能关注的文档
- 砌体结构材料及力学性能材料分析.ppt
- 砌体结构第六剪力墙材料分析.ppt
- 砌体结构第一材料分析.ppt
- 砌体结构检测鉴定材料分析.ppt
- 器件——晶闸管材料分析.ppt
- 千姿百态的动物世界3材料分析.ppt
- 千姿百态的动物世界八级材料分析.ppt
- 前列腺的影像诊断材料分析.ppt
- 前轮毂轴承孔组合镗床设计材料分析.docx
- 前言课程编程思想及实践材料分析.pptx
- 打造智能生态圈,2025高端装备制造产业园区项目可行性研究报告.docx
- 2025年特色农产品电商平台农产品电商市场发展趋势研究报告.docx
- 奢侈品电商平台用户互动体验优化与品牌影响力提升.docx
- 2025-2026学年高中数学北师大版2011必修3-北师大版2006教学设计合集.docx
- 新品牌线助力连锁酒店在度假酒店市场的拓展策略研究报告.docx
- 再生医学技术在干细胞移植术后长期效果评估的应用研究.docx
- 奢侈品电商平台用户互动与社区建设策略研究报告.docx
- 2025年智能垃圾分类科普教育基地建设成本效益分析报告.docx
- 民俗文化旅游跨境推广平台用户体验提升报告.docx
- 奢侈品电商平台内容营销效果评估报告:打造优质内容生态.docx
文档评论(0)