STM32
直播中

敷衍作笑谈

9年用户 956经验值
擅长:制造/封装 连接器 光电显示 接口/总线/驱动 RF/无线
私信 关注
[问答]

如何用stm8s的IAP实现wifi远程升级?

最近有一个项目客户提出需要远程升级,系统中已有wifi模块,本意想通过wifi模块透传(串口)给stm8s105或者207芯片升级,但是看资料说bootloader这边牵扯到中断向量共享的问题,这里主要需要共享的是串口发送接收中断,不知道大虾们有没有解决,有没有参考例程,谢谢~

回帖(1)

张秀兰

2024-4-25 17:22:28
要实现STM8S的IAP(In-Application Programming)通过WiFi远程升级,可以按照以下步骤进行:

1. 准备硬件和软件环境:
   - 确保你有STM8S105或207芯片的开发板。
   - 确保你有WiFi模块,例如ESP8266,以及相关的硬件连接。
   - 安装STM8S的编译器和调试器,例如IAR Embedded Workbench for STM8。

2. 设计Bootloader:
   - STM8S的Bootloader需要能够接收来自WiFi模块的数据,并将其存储到闪存中。
   - 为了实现这一点,你需要在Bootloader中实现串口接收中断,以便从WiFi模块接收数据。

3. 解决中断向量共享问题:
   - STM8S的中断向量表是固定的,因此你需要在Bootloader中实现一种机制,以便在接收到特定命令时切换到串口接收中断。
   - 一种可能的方法是使用一个标志寄存器,当接收到特定命令时,将该寄存器设置为1。在Bootloader的主循环中,检查该寄存器的值,如果为1,则切换到串口接收中断。

4. 实现IAP功能:
   - 在Bootloader中实现IAP功能,以便能够将接收到的数据烧录到闪存中。
   - 这可能需要实现对STM8S闪存编程接口的封装,以便能够方便地烧录数据。

5. 设计WiFi模块的固件:
   - 为WiFi模块编写固件,使其能够接收远程升级命令,并将升级数据通过串口发送给STM8S的Bootloader。

6. 测试和调试:
   - 使用串口助手或其他工具,模拟远程升级命令,测试Bootloader是否能够正确接收数据并将其烧录到闪存中。
   - 如果遇到问题,使用调试器逐步调试Bootloader和WiFi模块的固件,找出问题所在并解决。

7. 集成到项目中:
   - 将Bootloader和WiFi模块的固件集成到你的项目中,确保它们能够正常工作。

8. 提供参考例程:
   - 虽然这里没有提供具体的参考例程,但你可以参考STM8S的官方文档和示例代码,以及WiFi模块的官方文档,来实现上述功能。

通过以上步骤,你应该能够实现STM8S的IAP通过WiFi远程升级。在实现过程中,可能需要根据你的具体需求和硬件环境进行一些调整。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分