设备之上的文件系统通常用Ramdisk来作为根文件系统4用户应用程序特定于用户的应用程序有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面GUI3BootLoader程序结构BootLoader的实现依赖于CPU的体系结构因此大多数BootLoader都分为stage1和stage2两个部分依赖于CPU体系结构的代码如设备初始化代码等通常都放在stage1中而且通常都用汇编语言来实现以达到短小精悍的目的而stage2则通常用C语言来实现这样可以实现更复杂的功能而且代码会具有更好的可读性和可移植性BootLoader的stage1通常包括一些步骤硬件设备初始化为加载BootLoader的stage2准备RAM空间复制BootLoader的stage2到RAM空间中设置好堆栈跳转到stage2的C入口点BootLoader的stage2通常包括一些步骤初始化本阶段要使用到的硬件设备检测系统内存映射memorymap将ker
el镜像和根文件系统镜像从Flash上读到RAM空间中为内核设置启动参数调用内核4BootLoader的操作模式大多数BootLoader都包含两种不同的操作模式1启动加载模式Bootloadi
g在这种模式下BootLoader从目标机上的某个固态存储设备上将操作系统加载到内存中运行整个过程并没有用户的介入这种模式是BootLoader的正常工作模式在嵌入式系统发布以后BOotLoader必须工作在此模式下才能引导
f整个系统工作2下载模式Dow
loadi
g下载模式是目标机删的BootLoader通过串口或网络等通信手段从开发主机上下载内核镜像和根文件系统镜像到内存中然后可以再被BootLoader写到目标机删的固态存储媒介中或者直接进行系统引导前一种功能通常用于第一次烧写内核与根文件到固态媒介时或系统更新时使用后者多用于开发人员在开发过程中的系统调试阶段工作于这种模式下的BootLoader通常都会向它的终端用户提供一个简单的命令接口222常用嵌入式BootLoaderBootLoader是嵌入式系统中非常重要的一部分也是系统运行工作的必要组成部分在嵌入式系统中常见的BootLoader有一下几种1vivivivi是由韩国MIZI公司开发的专门用于ARM产品线的一种BootLoader因为vivi目前只支持使用串口和主机通信所以必须使用一条串口电缆来连接目标板和主机vivi一般由一下作用检测目标板下载程序并写入Flash初始化硬件把内核ker
el从Flash复制到RAM然后启动它2UBootUboot是德国DENX小组开发的用于多种嵌入式CPU的BootLoader程序它可以运行在基于PowerPCARMMIPS等多种嵌入式开发板上UBoot源代码的主要目录解释如下board目标板相关文件主要包含SDRAMFlash驱动commo
独立于r