STM32 IAP + Modbus 踩坑日记:四天四夜,腱鞘囊肿都犯了
问题背景
手上有个 STM32G4 项目,做了一个 IAP + APP 架构:
- IAP 负责升级,通过 Modbus 接收固件
- APP 负责业务逻辑
- 原本两个工程都是好的
- 某天重新生成代码,出问题了
踩坑过程:一步一个坑,坑坑不重样
第一步:两个工程,两种症状
| 工程 | Modbus | 跳转 APP |
|---|---|---|
| 工程一 | ❌ 不通 | ✅ 可跳转 |
| 工程二 | ✅ 通 | ❌ 不能跳转 |
现象很诡异,同样的逻辑,一个能跳不能通,一个能通不能跳。开始漫长的对比…
四天,从周二到周五,对着两个工程一行行 diff,腱鞘囊肿都犯了,还是没看出问题。
第二步:跳转失败问题定位
APP 不能跳转,调试器打断点失败,无法单步。只能靠打印猜。
看跳转代码: