- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Bootloaer移植关键技术分析
学 号: 课 程 论 文课 程 论 文题 目Bootloader移植关键技术分析学 院信息工程学院专 业电子信息工程班 级姓 名指导教师2017年6月6日 Bootloader移植关键技术分析1 bootloader简介 (1)bootloader在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。[1]? 对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的板子有上百种。通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。在专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:1、 引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。3、 文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。4、 用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,我们仍然可以对bootloader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。(2)启动方式CPU上电后会从某个地址开始执行。比如MIPS结构的CPU会从0xBFC00000取第一条指令,而ARM结构的CPU则从地址0x0000000开始。嵌入式开发系统中,需要把存储器件ROM或Flash等映射到这个地址,Bootloader就存放在这个地址的开始处,这样一上电就可以执行。在开发时,通常需要使用各种命令操作Bootloader,一般通过串口来连接PC和开发板,可以在串口上输入各种命令,观察运行结果等。这也只是对开发人员才有意义,用户使用产品时是不用接口接串口来控制Bootloader的。从这个观点来看,Bootloader可以分为以下两种操作模式1)启动加载模式(Boot loading模式) 上电后,Bootloader从板子上的某个固态存储设备上将操作系统加载到RAM上运行,整个过程并没有用户的介入。产品发布时,Bootloader工作在这种模式下。2)下载模式(Downloading模式) 在这种模式下,开发人员可以使用各种命令通过,通过串口连接或网络设备等通信手段从主机下载文件,将他们直接放在内存运行或是烧入Flash类固态存储设备中。像Blob或U-boot等这样功能强大的Bootloader通常支持这两种工作模式,而且允许用户在这两种工作模式之间进行切换。比如U-boot在启动时处于正常的启动加载模式,但是,他会延时若干秒,等待终端用户按下任意键,而将U-boot切换到下载模式下。如果在指定时间内没有用户按键,则U-boot继续启动Linux内核。(3)Bootloader启动过程Bootloader的启动过程可以分为单阶段、多阶段两种。通常多阶段的Bootloader能提供更为复杂的功能及更好的可移植性,从固态存储设备上启动的Bootloa
您可能关注的文档
最近下载
- “我和红领巾的故事”分享汇 课件.ppt VIP
- 2024—2025学年安徽省合肥市第四十五中学八年级上学期期中语文试卷.doc VIP
- 农村土地永久转让协议书(简单版).pdf VIP
- egi-128通道电极数字和电极名称对应关系.docx VIP
- 大学生职业生涯规划.pdf VIP
- there-be-句型讲解与练习.ppt VIP
- 清洁生产教材.ppt VIP
- 【一诊】绵阳市高三2022级(2025届)第一次诊断性考试政治试卷(含标准答案).docx
- 【一种新型软体仿生机器人的结构设计8200字】.docx VIP
- 《民航安全检查(安检技能实操)》课件——第五章 服务、礼仪基本知识.pptx VIP
原创力文档


文档评论(0)