- 1、本文档共72页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Boot的loader 的概念
Bootloader 的概念
一、Bootloader 的引入
从前面的硬件实验可以知道,系统上电之后,需要一段程序来进行初始化:关闭
WATCHDOG 、改变系统时钟、初始化存储控制器、将更多的代码复制到内存中等等。如果
它能将操作系统内核(无论从本地,比如 Flash ;还是从远端,比如通过网络)复制到内存中
运行,就称这段程序为Bootloader 。
简单地说,Bootloader 就是这么一小段程序,它在系统上电时开始执行,初始化硬件设备、
准备好软件环境,最后调用操作系统内核。
可以增强Bootloader 的功能,比如增加网络功能、从PC 上通过串口或网络下载文件、烧写
文件、将Flash 上压缩的文件解压后再运行等──这就是一个功能更为强大的Bootloader ,
也称为Monitor 。实际上,在最终产品中用户并不需要这些功能,它们只是为了方便开发。
Bootloader 的实现严重依赖于具体硬件,在嵌入式系统中硬件配置千差万别,即使是相同的
CPU,它的外设( 比如Flash)也可能不同,所以不可能有一个Bootloader 支持所有的 CPU、
所有的电路板。即使是支持CPU 架构比较多的U-Boot ,也不是一拿来就可以使用的(除非里
面的配置刚好与你的板子相同) ,需要进行一些移植。
二、 Bootloader 的启动方式
CPU 上电后,会从某个地址开始执行。比如MIPS 结构的CPU 会从0xBFC00000 取第一条
指令,而ARM 结构的CPU 则从地址0x0000000 开始。嵌入式单板中,需要把存储器件ROM
或Flash 等映射到这个地址,Bootloader 就存放在这个地址开始处,这样一上电就可以执行。
在开发时,通常需要使用各种命令操作Bootloader ,一般通过串口来连接PC 和开发板,可
以在串口上输入各种命令、观察运行结果等。这也只是对开发人员才有意义,用户使用产品
时是不用接串口来控制Bootloader 的。从这个观点来看,Bootloader 可以分为两种操作模式
(Operation Mode):
(1)启动加载(Boot loading)模式。
上电后,Bootloader 从板子上的某个固态存储设备上将操作系统加载到RAM 中运行,整个
过程并没有用户的介入。产品发布时,Bootloader 工作在这种模式下。
(2 )下载(Downloading)模式。
在这种模式下,开发人员可以使用各种命令,通过串口连接或网络连接等通信手段从主机
(Host)下载文件( 比如内核映像、文件系统映像) ,将它们直接放在内存运行或是烧入Flash 类
固态存储设备中。
板子与主机间传输文件时,可以使用串口的xmodem/ymodem/zmodem 协议,它们使用简单,
只是速度比较慢;还可以使用网络通过tftp 、nfs 协议来传输,这时,主机上要开启tftp 、nfs
服务;还有其他方法,比如USB 等。
像Blob 或U-Boot 等这样功能强大的Bootloader 通常同时支持这两种工作模式,而且允许用
户在这两种工作模式之间进行切换。比如,U-Boot 在启动时处于正常的启动加载模式,但
是它会延时若干秒(这可以设置)等待终端用户按下任意键而将 U-Boot 切换到下载模式。如
果在指定时间内没有用户按键,则U-Boot 继续启动Linux 内核。 编辑] 15.1.2 Bootloader
的结构和启动过程
?1. 概述
在移植之前先了解Bootloader 的一些通用概念,对理解它的代码会有所帮助。
在一个嵌入式Linux 系统中,从软件的角度通常可以分为4 个层次:
(1)引导加载程序,包括固化在固件(firmware) 中的 boot 代码(可选)和 Bootloader 两大部
分。
有些CPU 在运行Bootloader 之前先运行一段固化的程序(固件,firmware),比如x86 结构的
CPU 就是先运行BIOS 中的固件,然后才运行硬盘第一个分区(MBR) 中的Bootloader 。
在大多嵌入式系统中并没有固件,Bootloader 是上电后执行的第一个程序。
(2 )Linux 内核。
特定于嵌入式板子的定制内核以及内核的启动参数。内核的启动参数可以是内核默认的,或
是由Bootloader 传递给它的。
(3 )文件系统。
包括根文件系统和建立于Flash 内存设备之上的文件系统。里面包含了Linux
您可能关注的文档
最近下载
- 2024年六盘水市中考生物试题卷(含答案).docx
- 人教版小学数学五年级上册全册教案(含全册教学反思).pdf VIP
- 妇幼保健学知识--妇幼保健学绪论.ppt VIP
- 中移铁通校招笔试有多少题.pdf VIP
- 马德堡半球实验_经典儿童科普教学课件.ppt VIP
- 成都市田家炳中学数学新初一分班试卷含答案.doc VIP
- 体例格式11:《小型网络安装与调试》工学一体化课程教学进度计划表.pdf VIP
- 人教版道德与法治三年级下册全册教学设计.docx VIP
- 艺术概论20.主题三 探知 话题2 从杜尚说起——现代艺术悟读.pptx VIP
- 血液透析移植物动静脉内瘘护理中国专家共识(第1版)2025解读.pptx
文档评论(0)