嵌入式bootloader技术内幕

嵌入式bootloader技术内幕

ID:11801861

大小:41.26 KB

页数:15页

时间:2018-07-14

嵌入式bootloader技术内幕_第1页
嵌入式bootloader技术内幕_第2页
嵌入式bootloader技术内幕_第3页
嵌入式bootloader技术内幕_第4页
嵌入式bootloader技术内幕_第5页
资源描述:

《嵌入式bootloader技术内幕》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式BootLoader技术内幕 -[Linux]Tag:linux 编程 bootloader版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://rtfsc.blogbus.com/logs/22633893.html嵌入式BootLoader技术内幕作者:詹荣开(zhanrk@sohu.com)本文选自:IBMDW2003年12月30日 本文详细地介绍了基于嵌入式系统中的OS启动加载程序――BootLoader的概念、软件设计的主要任务以及结构框架等内容。 一、引言 在专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软

2、件的角度看通常可以分为四个层次: 1.引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader 两大部分。 2.Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3.文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。 4.用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI懂。 引导加载程序是系统加电后运行的第一段软件代码。回忆一下PC的体系结构我们可以知道,PC机中的引导

3、加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OSBootLoader(比如,LILO和GRUB等)一起组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的RAM中,然后将控制权交给OSBootLoader。BootLoader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,也即开始启动操作系统。 而在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMIcore的嵌入

4、式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。 本文将从BootLoader的概念、BootLoader的主要任务、BootLoader的框架结构以及BootLoader的安装等四个方面来讨论嵌入式系统的BootLoader。 二、BootLoader的概念 简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 通常,BootLoader

5、是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。 1.BootLoader所支持的CPU和嵌入式板 每种不同的CPU体系结构都有不同的BootLoader。有些BootLoader也支持多种体系结构的CPU,比如U-Boot就同时支持ARM体系结构和MIPS体系结构。除了依赖于CPU的体系结构外,BootLoader实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是

6、基于同一种CPU而构建的,要想让运行在一块板子上的BootLoader程序也能运行在另一块板子上,通常也都需要修改BootLoader的源程序。 2.BootLoader的安装媒介(InstallationMedium) 系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址上取指令。比如,基于ARM7TDMIcore的CPU在复位时通常都从地址0x00000000取它的第一条指令。而基于CPU构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM或FLASH等)被映射到这个预先安排的地址上。因此在系统加电后,CPU将首先执行BootLoader程序。 

7、下图1就是一个同时装有BootLoader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图。 http://tech.ccidnet.com/pub/attachme.../12/267984.gif 图1固态存储设备的典型空间分配结构3.用来控制BootLoader的设备或机制 主机和目标机之间一般通过串口建立连接,BootLoader软件在执行时通常会通过串口来进行I/O,比如:输出打印信

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

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

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