将该 demo 生成的 app(升级用)和 fsbl、最简化 bit 文件(可选)打包成 BOOT.BIN,作为 golden image 烧写在 qspi flash 偏移 0 地址开始的位置,其中最简化 bit 文件为在线升级功能提供必要的物理通道(如果不需要,可以不打包该文件),golden image 一旦发布基本不需要进行升级,由该 golden image 负责和上位机进行通信交互,完成业务 app、业务 bit 文件、uboot 以及操作系统 image 等文件在线升级,在 qspi flash 容量足够的情况下,还可以进一步实现多个业务镜像、bit文件并存,通过在线切换不同的bit文件和业务镜像实现不同的功能,业务 bit 文件由业务 APP 负责加载到 PL 中。这个例子是裸机程序下的使用串口实现在线升级功能,对于操作系统下的升级和多业务镜像不在本文中进行讨论,操作系统下在线升级和多业务镜像相对更容易实现;用户可以在该 demo 的基础上,在升级过程中增加所有业务 app 和 bit 文件的 CRC 校验,并把 CRC 校验值保存在 flash 中(在 qspi flash 预留从 16M-64KB 开始的 64KB 保留升级相关的信息),启动加载业务app 和bit 文件时,如果某个文件CRC错误,则加载其他备份文件,实现PSOC multiboot的效果。
一,在线升级工作原理和程序流程
软复位重启系统流程不是必须的,可根据需要修改成右边的“加载业务app并启动”的流程。
二,工程简要说明