Bootloader分析(一)
时间:2016-12-13作者:华清远见
BootLoader是在嵌入式系统内核运行之前运行的一段程序。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为终调用操作系统内核准备好正确的环境。在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。 我们可以看到很多种Bootloader,因为体系结构不同的CPU对应不同的Bootloader,有些Bootloader支持多种不同类型体系结构的处理器,如U-boot。Bootloader不但依赖于CPU的体系结构,还依赖于嵌入式的板级设备的配置。即同样一种CPU结构的两块不同的嵌入式开发板,运行在一块开发板上的Bootloader不一定能运行在另一个开发板上,需要修改Bootloader的源程序以适应不同的开发板。 Bootloader的操作模式: 大多数Bootloader均包括两种操作模式,即启动加载模式和下载模式。 1、启动加载模式:Bootloader从目标机上的某个存储设备上将内核加载加载到RAM中运行,整个过程并没有用户的介入。启动加载模式为Bootloader正常工作模式,因此所发布的嵌入式产品的Bootloader只能工作在该模式下。 2、下载模式:这种模式下,目标机上Bootloader将通过串口、网络和USB连接等通信方式从HOST(主机)下载文件,如文件系统镜像、内核镜像等。从主机下载的文件通常首先被Bootloader保存到目标ROM中,然后再被Bootloader写到目标板上的Flash类的固态存储设备上。这种模式一般在第一次安装内核与根文件系统时被使用,或者在系统更新时使用。 Bootloader有很多种,即Bootloader是其他boot的总称。在此我们主讲U-boot。U-boot(Universal Boot Loader)是遵循GPL条款的开放源码项目。 U-boot不仅能够引导加载嵌入式linux系统。还能引导加载FreeBSD、VxWorks、NetBSD等系统。U-boot中的Universal指两个方面:一方面是支持的操作系统多。另一方面是支持大多数的处理器。 U-boot的优点: U-boot在目前的嵌入式开发中被广泛运用,是其有很多有点。只要有一下几点: 1.开放源代码。 2.支持多种嵌入式操作系统内核,如linux、QNX、LynxOs等。 3.支持多个处理器系列,如ARM、X86、MIPS、PowerPC。 4.较高的稳定性和可靠性。 5.丰富的设备驱动源码,如串口、以太网、SDRAM、Flash、LCD、键盘、鼠标等。 6.较多丰富的开发调试文档与强大的网络技术支持。 7.高度灵活的功能设置,适合U-boot调试、操作系统不同引导要求和嵌入式产品。 U-boot的功能非常强大,主要有一下功能: 系统引导:支持NFS挂载、RAMDISK(压缩或非压缩)形式的根文件系统,即从FLASH中引导压缩/非压缩的系统内核。 1、自加载程序:加载程序分为两部分。一部分内部ROM中厂家固化(芯片生产时固化的)的启动代码和U-boot两部分。因此上电后U-boot的运行是有固化程序引导,由于SRAM的存储空间的限制,u-boot只能运行一部分,剩下的靠已启动的程序来搬运到内存。当u-boot都运行起来,就接管了芯片。然后把内核搬运到内存上执行,随后引导文件系统运行。 2、对必要的硬件初始化:如 相关资讯
发表评论
|