我正在为我的项目使用32位ARM STM32F439ZI微控制器。微控制器具有2兆字节的闪存,分为2个1兆字节的存储区,用于同步读取和写入/擦除,如数据表所示。
我想介绍微控制器的Over The Air(OTA)固件更新。
我使用大约200-400 KB的闪存存储器作为固件。
当然,我只能使用引导加载程序刷新下载更新二进制文件。但是,我想通过使用两个1兆字节闪存库作为故障安全功能来介绍安全网。
例如:
如果使用STM32F4可以实现“双启动”,我找不到资源(有一些关于STM32F7系列的东西,但这被宣传为专用的“功能”)。
STM32F4系列是可行的还是推荐的?有更好的方法吗?以及启动加载程序调度调用(到活动闪存库的主要功能)的方式如何(Ansi C)?
我不确定,如果我完全理解“双启动”,但如果它是关于在闪存中有两个版本的固件(当前工作一个要更换和新固件),那么最简单的方法是让在启动OTA之前,bootloader会在闪存的单独区域中备份应用程序固件,但这会减少可用闪存的总量。我的硕士论文(Fail-proof over the air firmware upgrade for embedded systems)是一个非常相似的主题。你可能想看看。