Boot 配置
使用以下命令可以进入 menuconfig 配置界面,配置 Boot 的相关参数。
scons --menuconfig
配置 Bootloader 链接脚本
- 在 Chip options 中,找到 Custom link script path (relative path in sdk) 选项。
- 将链接脚本的相对路径填写到该选项中,以 d21x_bootloader_gcc.ld
链接脚本为例。
Chip options ---> (application/baremetal/bootloader/ldscript/d21x_bootloader_gcc.ld) Custom link script path (relative path in sdk)
- 保存并退出 menuconfig 界面。
- 重新编译项目,生成新的 Bootloader 固件。
配置串口控制台使用 UART
-
在 Board Options 中,使能本项目所使用的 UART,以 uart0 为例。
Board options ---> *** Peripheral Devices: *** [*] Using uart0 [ ] Using uart1 [ ] Using uart2 [ ] Using uart3
-
在 Bootloader Options 中设置控制台所使用的 UART ID。
Bootloader options ---> (0) Bootloader console UART ID
- 保存并退出 menuconfig 界面。
- 重新编译项目,生成新的 Bootloader 固件。
配置 Bootloader 支持的启动介质
- 启用 SPI NOR 和 SPI NAND 启动支持:在 Bootloader options 中,确保以下选项被选中:
Bootloader options ---> [ ] MMC boot support ---- [*] SPI NOR boot support ---> [*] SPI NAND boot support --->
- 配置启动介质的相关参数。如不需要,可略过。部分启动介质需要进一步配置相关参数的,比如对于 SPI NAND,需要配置下列参数:
-
SPI NAND device using QSPI controller:指定了使用哪个 QSPI 控制器来访问 SPI NAND 设备。
-
SPI NAND device working frequency (Hz):设置 QSPI 总线工作频率,例如 100000000。
示例如下:--- SPI NAND boot support (0) SPI NAND device using QSPI controller (100000000) SPI NAND device working frequency(Hz)
-
升级功能
在 Bootloader options 中,选中以下选项,分别启用 USB、NAND 和 NOR 升级功能:
Bootloader options --->
aicupg setting --->
[*] aicupg usb upgrade on
[*] aicupg nand upgrade on
[*] aicupg nor upgrade on
编译 Boot 固件
新配置一个板子后,需要为该方案编译生成一个 bootloader.bin 文件。
在 Baremetal SDK 中,Boot 程序可以当作一个独立的裸机项目进行编译,与 SDK 中的其他方案编译方法相同。
例如:针对 D21x Demo88 的 SPI NAND 方案编译方法如下:
scons --apply-def d21x_demo88-nand_baremetal_bootloader_defconfig
scons
编译完成时,除了在 output/d21x_demo88-nand_baremetal_bootloader/images/ 下生成 elf 文件外, 还会将 bootloader.bin 复制到板级目录之中,供打包烧录镜像时使用:
target/d21x/demo88-nand/pack/bootloader.bin
编译 Boot 时,不会打包烧录镜像文件,编译应用时才会打包烧录镜像。
在编译应用时,如果 bootloader.bin 已经存在,并且分区等配置没有改变,则不需要重新编译 Bootloader。