1、在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。整个系统的加载启动任务就完全由BootLoader来完成,BOOT loader用户可以自己更新程序
2、BootLoader就是一个引导程序。结合我之前做的项目我说一下:我们项目有使用的单片机有两块Flash,一块64K,一块4K,4KFlash放BootLoader程序,64K放APP,单片机上电后从4kFlash运行(BootLoader程序),主要进行判断是否有升级器连接,如果没有升级器连接就直接跳转到64KFlash(APP)运行用户程序,如果有升级器连接就启动擦除程序,擦除64KFlash,并从升级器那接收新的APP程序,写到64KFlash里面,写完之后再跳转到64KFlash运行,以达到升级的目的。
BootLoader程序不一定进行升级操作,可以进行硬件检测,如果硬件检测没问题才运行APP,就想PC每次开机时屏幕黑屏 有很多英文在闪烁,其实那就是BIOS开机的自检!
3、用户闪存: BOOT1=x BOOT0=0 芯片内置的Flash。
SRAM: BOOT1=1 BOOT0=1 芯片内置的RAM 区,就是内存啦。
系统存储器:BOOT1=0 BOOT0=1 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM 区。
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。
BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1 从内置SRAM 启动,这种模式可以用于调试。