使用RT-Thread的打包器时,有固件版本和固件分区名两个参数。
由于BootLoader是基于fal操作的,即将download分区中存放的rbl文件解压后拷贝到指定分区。

在BootLoader中设置了应用分区为app分区,而bl通常用于更新固件,所以官方教程这里写的是app分区。假如现在我有一个字库(不依赖文件系统访问),想存放至font分区,假设这个字库还是需要加密的,那么就可以用打包器打包吧分区名改成font,将打包后的文件上传到服务器,在嵌入式应用程序里将该文件下载到download分区,重启后实现内容的拷贝。

至于固件版本,RT-Thread的BootLoader,在bl分区中应该有存放app分区的crc、更新时的时间戳和固件版本,即当新下载的固件和原本固件内容相同时,避免无所谓的更新操作。
RT-Thread的BootLoader在升级的时候,对固件版本的判断是要求版本不一样(不需要新的版本号大于旧的,而且好像是通过字符串比对,即版本号你除了填写2.0.0,还可以填V2.0.0,或者Release2.0.0),如果软件重新编译了,时间戳是不一样的,对于不同时间戳但固件版本相同的两个固件,BootLoader也会执行升级操作的,如下图所示。

2021.4.4纠正一下:
BootLoader只能识别BootLoader中的分区表,app中的分区表无法识别。所以还是只能填A

本文探讨了如何使用RT-Thread打包器将加密字库打包到font分区,并在BootLoader中处理不同分区的固件升级策略。重点涉及固件版本判断、分区设置及实际操作中的问题和解决方案,如rbl文件转换和factory分区的应用。
2117

被折叠的 条评论
为什么被折叠?



