- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统BootLoader.doc
嵌入式系统的BootLoader
3.1? BootLoader概述
一个嵌入式Linux系统从软件的角度看通常分为4个层次:引导加载程序、Linux内核、文件系统、用户应用程序。
引导加载程序是系统加电后运行的第一段代码。大家熟悉的PC中的引导程序一般由BIOS和位于MBR的操作系统BootLoader(例如LILO或者GRUB)一起组成。然而在嵌入式系统中通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。在嵌入式Linux中,引导加载程序即等效为BootLoader。简单地说,BootLoader就是在操作系统内核运行前执行的一段小程序。通过这段小程序,我们可以初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导和加载内核的作用。
BootLoader是依赖于硬件实现的,特别是在嵌入式系统中。不同体系结构需求的BootLoader是不同的,除了体系结构,BootLoader还依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基于相同的CPU构建,运行在其中一块电路板上的BootLoader,未必能够运行在另一块电路开发板上。
Bootloader的启动过程可以是单阶段的,也可以是多阶段的。大多数单阶段的BootLoader应用于简单的系统,比如没有操作系统的系统。通常多阶段的BootLoader能提供更为复杂的功能以及更好的可移植性。从固态存储设备上启动的BootLoader大多数是两阶段的启动过程,也就是启动过程可以分为stage 1和stage 2两部分。依赖于CPU体系结构的代码,比如设备初始化代码?? 等,通常都放在stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而stage2则通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。
大多数BootLoader都包含两种不同的操作模式:启动加载(Boot loading)模式和下载(Down loading)模式,这种区别仅对于开发人员才有意义。但从最终用户的角度看,BootLoader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。
(1)启动加载模式:这种模式也称为自主(Autonomous)模式,即BootLoader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程没有用户的介入。这种模式是BootLoader的正常工作模式。因此在嵌入式产品发布的时候,BootLoader显然必须工作在这种模式下。
(2)下载模式:在这种模式下,目标机上的BootLoader将通过串口连接或网络连接等通信手段从主机上下载文件,比如下载应用程序、数据文件、内核映像等。从主机下载的文件通常首先被BootLoader保存到目标机的RAM中然后再被BootLoader写到目标机上的固态存储设备中,BootLoader的这种模式通常在系统更新时使用。工作于这种模式下的BootLoader通常都会向它的终端用户提供一个简单的命令行接口,比如U-Boot、Blob、VIVI等。3.2? 常用的嵌入式Linux BootLoader
从上一节的内容可以了解到BootLoader是嵌入式系统中非常重要的一部分,也是系统运行工作的必要组成部分。在嵌入式系统中常见的BootLoader有以下几种。3.2.1? U-Boot
U-Boot是德国DENX小组开发的用于多种嵌入式CPU的BootLoader程序,它可以运行在基于PowerPC、ARM、MIPS等多种嵌入式开发板上。从/或ftp://ftp.denx. de/pub/u-boot/站点都可以下载U-Boot的源代码,U-Boot源代码的主要目录解释如下。
??● board? 目标板相关文件,主要包含SDRAM、Flash驱动;
??● common? 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;
??● cpu? 与处理器相关的文件,如mpc8xx子目录下含串口、网口、LCD驱动及中断初始化等文件;
??● driver? 通用设备驱动,如CFI Flash驱动(目前对Intel Flash支持较好);
??● doc? U-Boot的说明文档;
??● examples? 可在U-Boot下运行的示例程序,如hello_world.c、timer.c;
??● include? U-Boot头文件,尤其是configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;
??● lib_xxx? 处理器体系相关的文件,如lib_pp
您可能关注的文档
- 基于支持向量机商业银行贷款违约判别地研究.ppt
- 基于改进遗传算法电力系统无功优化.doc
- 基于数据仓库学生体质健康状况分析评价模型及其实现.doc
- 基于数据库和数据仓库数据挖掘.ppt
- 基于有限元桁架结构动态分析地研究.doc
- 基于构件软件复用技术地研究应用.ppt
- 基于节能要求暖通空调设计.doc
- 基于虚拟化技术云存储地研究.ppt
- 基于蚁群算法TSP问题地研究 开题答辩.ppt
- 基于软总线技术多数据库融合应用地研究和实现.ppt
- 山东省山东师大附中2023-2024学年高三第十次模拟考试数学试题试卷.doc
- 山东省青岛经济开发区致远中学2024年高三数学试题考试试题.doc
- 山东省青岛市第五十八中2023-2024学年高三2月份数学试题模拟试题.doc
- 山东省青岛市崂山区第二中学2023-2024学年(高三)数学试题5月月考试题.doc
- 山东省乳山一中2024年高三下学期(线上)适应性测试数学试题.doc
- 山东省山东省滕州市第二中学2024年高三下学期5月调研考试数学试题.doc
- 山东省青岛市青岛第二中学2023-2024学年高考数学试题模拟卷(4).doc
- 山东省青岛市西海岸新区胶南第一高级中学2024年高三二模(4月)数学试题.doc
- 山东省日照黄海高级中学2023-2024学年高三下期中考试综合试题.doc
- 山东省青岛市第五十八中学2023-2024学年高三下期2月数学试题试卷.doc
最近下载
- 常见的平面牵出线调车工作(宽屏).ppt
- 行风建设及医德医风考核领导小组 .pdf VIP
- 2024危险化学品重大生产安全事故隐患判定标准考核试题及答案.docx VIP
- 宁攀高速zcb1-14项目部现浇箱梁统计表.xlsx VIP
- 咸阳市事业单位招聘硕士研究生人员真题.docx VIP
- 物业管理服务节能降耗与环保管理方案.pdf
- 万东医疗DR产品介绍课件.ppt
- 高中政治2025届高考《中国特色社会主义》真题汇总练习(附参考答案).doc
- 联通新融合发展技能竞赛(业务管理及稽核赛道)试题及答案.doc VIP
- 山东省临沂市罗庄区2023-2024学年七年级上学期期中考试语文试题(含答案).doc VIP
文档评论(0)