[APM32E1] APM32E103的Flash编程步骤疑问

[复制链接]
 楼主| GalaxyStroll 发表于 2025-6-29 10:04 | 显示全部楼层 |阅读模式
极海工业级MCU,基于Cortex-M3内核的APM32E103系列MCU性价比相当之高。基于55nm制程的优势还是非常明显。在学习APM32E103的时候看到SDK在IAP的例程,擦写和编程Flash还是挺方便的,我这里还是有些疑问?
我看公司之前的IAP代码,第一步是要将程序运行到SRAM,然后再进行升级操作,如擦除Flash,编程flash。
这是为什么啊?

HeartbeatEcho 发表于 2025-6-29 16:07 | 显示全部楼层
我们也是把代码运行SRAM中,再擦除Flash。
感觉有点浪费SRAM空间。我们将其独立出来了,正常应用跑起来的时候这块RAM空间也不使用。
FrostShimmer 发表于 2025-6-29 16:53 | 显示全部楼层
无所谓吧!
只要不在擦除的时候读取正在操作的flash页应该就没有事情吧!
 楼主| GalaxyStroll 发表于 2025-7-21 18:25 | 显示全部楼层
FrostShimmer 发表于 2025-6-29 16:53
无所谓吧!
只要不在擦除的时候读取正在操作的flash页应该就没有事情吧!

明白了。
谢谢大佬的回复。
FrostShimmer 发表于 2025-7-23 10:52 | 显示全部楼层
客气了。
我们的项目这么设计一直没有出现过问题
星空魔法师 发表于 2025-7-24 16:32 | 显示全部楼层
将程序运行到SRAM的原因是为了保证在Flash更新过程中,当前运行的程序不会受到影响。这样可以避免在更新过程中发生程序中断或崩溃的情况。
 楼主| GalaxyStroll 发表于 2025-8-6 19:42 | 显示全部楼层
星空魔法师 发表于 2025-7-24 16:32
将程序运行到SRAM的原因是为了保证在Flash更新过程中,当前运行的程序不会受到影响。这样可以避免在更新过 ...

明白了。
谢谢大佬指点
我是一颗胖蘑菇 发表于 2025-8-8 09:24 | 显示全部楼层
将程序运行到SRAM的原因是,MCU在执行Flash编程操作时,不能同时运行Flash中的代码。因此,将代码临时运行在SRAM中,可以保证在Flash擦写和编程过程中,MCU能够正常工作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

22

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部