STM32 IAP 使用 uart, ymodem
需求 需要在 STM32 芯片上,使用 uart 接口,通过 ymodem 协议,进行 IAP 升级。 解决 想用 IAP 升级,芯片上的程序需要分为两个部分,bootloader 和 app. 上位机需要一个软件通过接口,把新版本的软件发送给芯片。 bootloader bootloader 可以参考 STM32 提供的 IAP demo 进行修改。其中写 flash 的地方需要注意,不同芯片支持的写 flash 不一样,主要是支持的单次写入长度不一样,那么相关的写入次数等等都要跟着修改。 app app 部分需要改动的比较少,主要是两个地方: link: 这里需要修改 flash 起始地址,需要和 bootloader 中最后跳转的地址一致。gcc 编译器在 ld 文件中修改。 中断向量: VECT_TAB_OFFSET 也需要修改为新地址对应的偏移。 上位机 上位机软件最简单的就是使用 windows 自带的超级终端 hypertrm. 当然也可以自己写一个支持 YMODEM 协议的软件。 参考 串口YMODEM实现IAP程序升级(附完整工程) STM32 + IAP + Ymodem完美结合 YMODEM协议简介 {Windows} 网工必备:超级终端中文版及3CDaemon汉化版 STM32 IAP升级固件 + 上位机 例程 STM32中断向量表的偏移量设置方法 STM32单片机实现Bootloader跳转的关键步骤 【STM32+cubemx】0024 HAL库开发:IAP(在应用编程)的实现 STM32 用cubemx移植IAP功能,实现串口升级 STM32CubeIDE IAP原理讲解,及UART双APP交替升级IAP实现 【经验分享】STM32_IAP详解(有代码,有上位机) STM32 之八 在线升级(IAP)超详细图解 及 需要注意的问题解决