我使用STM32作为我的微处理器,使用I2C EEPROM进行存储,使用ESP8266进行Wifi
我如何使用ESP8266下载引导加载程序的更新二进制文件到闪存,尽管固件文件将比STM32 Ram大,因此我不能从ESP8266加载文件为一个块?
发布于 2019-08-06 22:47:08
我猜您想要更新stm32固件。
在这种情况下,允许将stm32的新二进制文件上传到web,将其存储在esp8266文件系统中(它必须大于stm32闪存大小)。
之后,启用闪存写入,设置一个小型协议,用于从esp8266文件到stm32闪存的串行通信更新stm32。
请记住,用于更新stm32闪存的所有函数都必须位于内存中。
我正在为stm32f4和esp8266做一个项目,我就是这么做的。
选项2:
如果你的程序二进制大小低于stm32闪存大小的50%,那么使用stm32闪存的一半来存储新程序,重置后,检查是否有什么东西在那里,如果它是然后更新(这是我实际上正在做的stm32,非常安全的更新方法,因为只有stm32的中央处理器用于更新,它是非常快的)。
发布于 2020-03-09 16:45:48
我假设您的STM32闪存上有两个固件。第一个是引导加载程序,第二个是你的应用程序。您的引导加载程序通过ESP8266的串行接口获得新的固件;因此,您可以使用流控制引脚暂停通信,直到您将数据写入闪存。
https://stackoverflow.com/questions/53517091
复制相似问题