Boot 介绍
tinySPL 是 Luban-Lite 中的启动引导程序(Bootloader),其功能包含了加载启动应用程序、烧录和升级。
启动流程
Luban-Lite 的系统启动流程如下:
其中 PBP(PreBootProgram) 主要做 DRAM 初始化工作,tinySPL 负责进行启动和升级。
软件架构
tinySPL 是基于 Luban-Lite 的 HAL 构建的裸机(Baremetal) 程序,其软件架构如下图所示。
上图中, HAL 、 Board 、 Sys 与 Luban-Lite SDK 中的应用程序共用同一份代码,以简化 Boot 对不同板子的支持。
编译说明
新配置一个板子后,需要为该方案编译生成一个 bootloader.bin。
在 Luban-Lite SDK 中,Boot 程序可以当作一个独立的裸机项目进行编译,与 SDK 中的其他方案编译方法相同。
例如:针对 D21x Demo88 的 SPI NAND 方案编译方法如下:
bash
scons --apply-def d21x_demo88-nand_baremetal_bootloader_defconfig
scons
1
2
3
2
3
编译完成时,除了在 output/d21x_demo88-nand_baremetal_bootloader/images/
下生成 elf 文件外,还会将 bootloader.bin
复制到板级目录之中,供打包烧录镜像时使用:
bash
target/d21x/demo88-nand/pack/bootloader.bin
1
编译 Boot 时,不会打包烧录镜像文件,编译应用时才会打包烧录镜像。
小技巧:
在编译应用时,如果 bootloader.bin 已经存在,并且分区等配置没有改变,则不需要重新编译 Bootloader。