微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用另一个微控制器对 STM32 进行编程的选项

如何解决使用另一个微控制器对 STM32 进行编程的选项

在我的项目中,我将使用 STM32f103 作为主微控制器,使用 ESP8266 作为 Wi-Fi 模块。这两个芯片通过UART相互联系。

我有一个包含“version2.bin”文件的服务器。我可以用 ESP8266 下载这个文件,但是我应该如何用这个文件更新 STM32 固件?

换句话说,我如何执行 OTA?

解决方法

STM32F1 没有嵌入式引导加载程序,因此您唯一的选择是在 micro 中制作自己的引导加载程序并 make 以便它可以自我编程。理论上,您也可以使用调试器协议进行编程,但从未见过它完成,我想这样做简直是疯了。

将闪存分区并保存一部分用于引导加载程序,另一部分用于应用程序。前者应该检查一些信号来更新后者。之后引导加载程序应该跳转到应用程序。您需要一些信号来通过软件或硬件进行微复位。不要忘记在收到的固件中添加 crc 校验和检查。

附言 您的应用程序可能需要两个单独的向量表,因此在从一个跳转到另一个时,您应该更新 VTOR 寄存器以反映应用程序向量表的位置。引导加载程序将保留在默认闪存地址 0,该地址映射到每个 STM32 中的 0x8000000 afaik。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。