在嵌入式(shì)操作系统中(zhōng),BootLoader是(shì)在操作系统内核运行(háng)之前运行。可以初(chū)始化硬件(jiàn)设备、建立内存空间映射(shè)图,从而将系统的软硬件环境(jìng)带到一个(gè)合适(shì)状态,以便为(wéi)最终调用操作系统内核准备好(hǎo)正确的环境。在嵌入(rù)式(shì)系统中,通常并没有像(xiàng)Bioses那样的固件程序(注,有(yǒu)的嵌(qiàn)入(rù)式CPU也会内嵌一段短小的(de)启动程(chéng)序),因此整个系(xì)统的加载启(qǐ)动任务就完(wán)全(quán)由BootLoader来完成。在一个基于(yú)ARM7TDMI core的(de)嵌(qiàn)入式系(xì)统中,系统在上(shàng)电或复(fù)位时通常(cháng)都从(cóng)地址(zhǐ)0x00000000处开始执(zhí)行,而在这个地址处安排的通(tōng)常(cháng)就是(shì)系统(tǒng)的BootLoader程序。
1.自启动模式:在这(zhè)种(zhǒng)模式下,bootloader从目标机上的某个固态存(cún)储设备上(shàng)将操作(zuò)系统加载到RAM中运行,整个过程并没有用户的介入。
2.交互模式:在这种模式下,目标机上的bootloader将通(tōng)过串(chuàn)口(kǒu)或网络等通行手段(duàn)从(cóng)开(kāi)发主机(jī)(Host)上下(xià)载内核映像等到RAM中。可以被bootloader写到目标(biāo)机(jī)上(shàng)的固(gù)态存(cún)储媒质中,或者直接进入系统(tǒng)的(de)引导。也可(kě)以通过串口接收用户的命令。
第一阶段:
1.初始(shǐ)化基本硬件;
2.把bootloader自动搬运(yùn)到(dào)内存中;
3.设置堆栈指针并(bìng)将bss段(duàn)清零。为后续执行代码做准备;
第(dì)二阶(jiē)段:
1.初始化本阶段要用到(dào)的硬件(jiàn);
2.读取环境变量(liàng);
3.启动:
(a)自启(qǐ)动模式,从Flash或通过网络加载内核并(bìng)执行;
(b)下载模式(shì),接收到(dào)用户的命令(lìng)后执行;
