bootloader移植关键技术分析

bootloader移植关键技术分析

ID:6602659

大小:54.81 KB

页数:29页

时间:2018-01-20

bootloader移植关键技术分析_第1页
bootloader移植关键技术分析_第2页
bootloader移植关键技术分析_第3页
bootloader移植关键技术分析_第4页
bootloader移植关键技术分析_第5页
资源描述:

《bootloader移植关键技术分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、学号:课程论文题目Bootloader移植关键技术分析学院信息工程学院专业电子信息工程班级姓名指导教师2017年6月6日Bootloader移植关键技术分析1bootloader简介(1)bootloader在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整

2、个系统的加载启动任务就完全由BootLoader来完成。Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。[1] 对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板

3、级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的板子有上百种。通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。在专用的嵌入

4、式板子运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:1、引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。3、文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。4、用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌

5、入式GUI有:MicroWindows和MiniGUI等。通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,我们仍然可以对bootloader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。(2)启动方式CPU上电后会从某个地址开始执行。比如MIPS结构的CPU会从0xBFC00000取第一条指令,而ARM结构的CPU则从地址0x开始。嵌入式开发系统中,需要把存储器件ROM或Fl

6、ash等映射到这个地址,Bootloader就存放在这个地址的开始处,这样一上电就可以执行。在开发时,通常需要使用各种命令操作Bootloader,一般通过串口来连接PC和开发板,可以在串口上输入各种命令,观察运行结果等。这也只是对开发人员才有意义,用户使用产品时是不用接口接串口来控制Bootloader的。从这个观点来看,Bootloader可以分为以下两种操作模式1)启动加载模式(Bootloading模式)上电后,Bootloader从板子上的某个固态存储设备上将操作系统加载到RAM上运行,整个过程

7、并没有用户的介入。产品发布时,Bootloader工作在这种模式下。2)下载模式(Downloading模式)在这种模式下,开发人员可以使用各种命令通过,通过串口连接或网络设备等通信手段从主机下载文件,将他们直接放在内存运行或是烧入Flash类固态存储设备中。像Blob或U-boot等这样功能强大的Bootloader通常支持这两种工作模式,而且允许用户在这两种工作模式之间进行切换。比如U-boot在启动时处于正常的启动加载模式,但是,他会延时若干秒,等待终端用户按下任意键,而将U-boot切换到下载模式

8、下。如果在指定时间内没有用户按键,则U-boot继续启动Linux内核。(3)Bootloader启动过程Bootloader的启动过程可以分为单阶段、多阶段两种。通常多阶段的Bootloader能提供更为复杂的功能及更好的可移植性,从固态存储设备上启动的Bootloader大多都是两阶段的启动过程,第一阶段使用汇编来实现,它完成一些依赖于CPU体系结构的初始化,并调用第二阶段的代码;第二阶段则通常使用C语言来实现,这样可以实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。