GD32E230是否支持多次编程同一个字呢?

[复制链接]
1636|18
 楼主| imdx 发表于 2019-1-9 22:46 | 显示全部楼层 |阅读模式
FLASH编程的特性是只能从1变0,要想从0变1,只能整个sector擦除。
比如某个地址的一个32位的字,擦除以后是0xFFFFFFFF,第一次编程0xFFFF0000,然后第二次再编程0x00000000,结果应该是0x00000000。
之前的型号比如GD32F130,GD32F330,以及STM32都是支持这个特性的,试了下GD32E230好像不支持。
看了下手册,不支持编程非0xFFFF的地址。
PGERR  Program error flag bit When programming to the flash while it is not 0xFFFF, this bit is set by hardware. The software can clear it by writing 1.

我的某个软件利用了这个特性,有没有可能性打开呢?



598330983 发表于 2019-1-31 13:23 来自手机 | 显示全部楼层
应该不行吧。
vivilzb1985 发表于 2019-2-17 13:46 | 显示全部楼层
这个flash的擦除的是整单元的擦除的
firstblood 发表于 2019-2-17 21:53 | 显示全部楼层
擦除是基于sector的单元进行的
firstblood 发表于 2019-2-17 22:00 | 显示全部楼层
楼主说的多次编程同一个字的是设么意思的?没怎懂的
comeon201208 发表于 2019-2-17 23:34 | 显示全部楼层
这个是需要找一片RAM的,临时把不需要改变的数据的保存起来的,只改变需要保存的数据即可
comeon201208 发表于 2019-2-17 23:35 | 显示全部楼层
还有就是每次编程的时候都需要先整sector的进行擦除的在进行写操作的
smilingangel 发表于 2019-2-24 22:25 | 显示全部楼层
你这是编程的地址的发生了变化还是?
smilingangel 发表于 2019-2-24 22:26 | 显示全部楼层
一般flash的读写的没啥那点的吧,掌握好擦除的时间点的
baimiaocun2015 发表于 2019-2-24 22:44 | 显示全部楼层
这个主要看flash的自身资源规格的
tongbu2015 发表于 2019-2-27 23:41 | 显示全部楼层
这个取决于flash的读写擦除机制的
tongbu2015 发表于 2019-2-27 23:41 | 显示全部楼层
这个取决于flash的读写擦除机制的
zhangbo1985 发表于 2019-2-28 13:39 | 显示全部楼层
这个吧底层的读写擦除接口设计好的,是可以实现的
zhangbo1985 发表于 2019-2-28 13:46 | 显示全部楼层
重点是有选择性的擦除的实现的,可以整一个缓存区的,先将需要擦除的区域的数据读取出来存入该缓存区,并将需要修改的字修改好,然后正片擦除高flash
zhangbo1985 发表于 2019-2-28 13:47 | 显示全部楼层
最终将该缓存区的数据区数据整体写入该flash的即可
chuntian2016 发表于 2019-2-28 20:37 | 显示全部楼层
楼上介绍的非常详细的,赞一个的
vibra2016 发表于 2019-2-28 21:57 | 显示全部楼层
这个跟MCU自身的资源配置相关系的
lvben5d 发表于 2019-3-1 12:07 | 显示全部楼层
你其实 完全可以 把要保存的数据 放在一个结构体里,只要有1个改动,掉电之前,都整页擦除,然后写入就好了。 毕竟不是EEPROM 那么自在。 这样也很方便的。
 楼主| imdx 发表于 2019-3-6 07:00 来自手机 | 显示全部楼层
看了下回帖,貌似没有看懂原帖在说啥的。统一回复下,E230不支持同一地址多次编程。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

123

主题

905

帖子

8

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