APM32E103的Flash编程步骤疑问
极海工业级MCU,基于Cortex-M3内核的APM32E103系列MCU性价比相当之高。基于55nm制程的优势还是非常明显。在学习APM32E103的时候看到SDK在IAP的例程,擦写和编程Flash还是挺方便的,我这里还是有些疑问?我看公司之前的IAP代码,第一步是要将程序运行到SRAM,然后再进行升级操作,如擦除Flash,编程flash。
这是为什么啊?
我们也是把代码运行SRAM中,再擦除Flash。
感觉有点浪费SRAM空间。我们将其独立出来了,正常应用跑起来的时候这块RAM空间也不使用。 无所谓吧!
只要不在擦除的时候读取正在操作的flash页应该就没有事情吧! FrostShimmer 发表于 2025-6-29 16:53
无所谓吧!
只要不在擦除的时候读取正在操作的flash页应该就没有事情吧!
明白了。
谢谢大佬的回复。 客气了。
我们的项目这么设计一直没有出现过问题 将程序运行到SRAM的原因是为了保证在Flash更新过程中,当前运行的程序不会受到影响。这样可以避免在更新过程中发生程序中断或崩溃的情况。
星空魔法师 发表于 2025-7-24 16:32
将程序运行到SRAM的原因是为了保证在Flash更新过程中,当前运行的程序不会受到影响。这样可以避免在更新过 ...
明白了。
谢谢大佬指点 将程序运行到SRAM的原因是,MCU在执行Flash编程操作时,不能同时运行Flash中的代码。因此,将代码临时运行在SRAM中,可以保证在Flash擦写和编程过程中,MCU能够正常工作。
Flash在擦除与写入过程,不能读取。
如果读取,直接进入Hardfault了 在进行Flash擦写和编程时,如果程序还在运行,可能会导致数据不一致或程序崩溃
在擦写与写入时,不能读取flash操作。
是连操作都不可以的
页:
[1]