需求

在用 stm32u5 芯片,调试 iap 的时候,在写 flash 的过程中,进入了 hardfault.

解决

因为 STM32U5 没有官方的 IAP demo,所以使用的是 STM32F4 的 IAP 移植过来的。

经过调试和查资料,发现 STM32U5 在写 flash 的时候,只支持 quad word, 而 STM32F4 是直接写 word, 所以所有涉及到 flash 的写入,数量计算,循环次数等等,从前到后,全部需要按照 quad 来进行修改才行。

参考