打印

GD32E230 内部flash 可以擦除 但不能写入

[复制链接]
817|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
时空vsxx|  楼主 | 2023-4-24 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近使用GD32E230 进行开发,按照如下流程  扇区擦除(成功)-》flash解锁后(成功)-》字写入(32bit写入,函数返回值表示写入成功)-》flash锁定 ,使用MDK 的memory窗查看flash 依然是FF FF FF FF。测试双字写入也是一样的。但是函数返回值提示写入并没有错误。大家帮我看看这是什么情况

使用特权

评论回复
沙发
玛尼玛尼哄| | 2023-4-30 20:14 | 只看该作者
试试官方的例子,如果可以,那应该是操作错误,如果不行,那可能锁定了吧。

使用特权

评论回复
板凳
呐咯密密| | 2023-5-5 09:55 | 只看该作者
用官方例程测试,记住写的区域不能和代码区域重叠,不能超出FLASH容量,不会有问题的,我用的就是这款,没任何问题

使用特权

评论回复
评论
mmh123123 2023-7-24 09:31 回复TA
请问是用官方给的FMC例程测试的FLASH读写吗,我官方例程擦除成功,但是写不进去,写完立即读都是FF,麻烦大佬指点12 
地板
时空vsxx|  楼主 | 2023-5-16 09:56 | 只看该作者
好的,谢谢大家 找到问题了,粗心没看实际芯片的尾缀,实际只有32K flash , 我以为是64K flash的芯片 写到;了flash 区域以外

使用特权

评论回复
5
V853| | 2023-5-16 13:38 | 只看该作者
时空vsxx 发表于 2023-5-16 09:56
好的,谢谢大家 找到问题了,粗心没看实际芯片的尾缀,实际只有32K flash , 我以为是64K flash的芯片 写到 ...

哈哈,那你这个确实是疏忽大意了。

使用特权

评论回复
6
tpgf| | 2023-5-17 09:03 | 只看该作者
是不是楼主在做完擦除操作之后不小心锁上了flash啊

使用特权

评论回复
7
磨砂| | 2023-5-17 10:56 | 只看该作者
V853 发表于 2023-5-16 13:38
哈哈,那你这个确实是疏忽大意了。

这么小的flash 其最小的操作单元是多大的呢

使用特权

评论回复
8
晓伍| | 2023-5-17 11:56 | 只看该作者
V853 发表于 2023-5-16 13:38
哈哈,那你这个确实是疏忽大意了。

可是如果可以擦除的话 在擦除的时候不会报错吗

使用特权

评论回复
9
八层楼| | 2023-5-17 12:19 | 只看该作者
V853 发表于 2023-5-16 13:38
哈哈,那你这个确实是疏忽大意了。

超出其实际的大小的话  会不会吧不应该擦除的位置擦除了呢

使用特权

评论回复
10
观海| | 2023-5-17 13:29 | 只看该作者
呐咯密密 发表于 2023-5-5 09:55
用官方例程测试,记住写的区域不能和代码区域重叠,不能超出FLASH容量,不会有问题的,我用的就是这款,没 ...

如何确定代码区域的地址呢?是否可以考虑复制代码出来擦掉后再写入?

使用特权

评论回复
11
guanjiaer| | 2023-5-17 14:41 | 只看该作者
可以单独对超出的部分进行写保护防止误操作吗

使用特权

评论回复
12
linkunzhen| | 2023-5-23 17:02 | 只看该作者
呐咯密密 发表于 2023-5-5 09:55
用官方例程测试,记住写的区域不能和代码区域重叠,不能超出FLASH容量,不会有问题的,我用的就是这款,没 ...

您好,我们是GD的代理商,GD32E230C8T6这款你们有用到吗?我们有库存低价处理,不止是否有机会合作一下!

使用特权

评论回复
13
lidi911| | 2023-5-23 20:51 | 只看该作者
有可能是MDK显示的问题,直接读出来比较数据是不是对的就OK了。

使用特权

评论回复
14
V853| | 2023-6-13 15:20 | 只看该作者
磨砂 发表于 2023-5-17 10:56
这么小的flash 其最小的操作单元是多大的呢

应该是4KB吧。

使用特权

评论回复
15
V853| | 2023-6-13 15:20 | 只看该作者
八层楼 发表于 2023-5-17 12:19
超出其实际的大小的话  会不会吧不应该擦除的位置擦除了呢

往上的话,我感觉应该不会,往下就说不好了。

使用特权

评论回复
16
V853| | 2023-6-13 15:21 | 只看该作者
晓伍 发表于 2023-5-17 11:56
可是如果可以擦除的话 在擦除的时候不会报错吗

可以重复擦除,有啥好报错的呢?

使用特权

评论回复
17
家有两宝呀| | 2023-7-24 15:52 | 只看该作者
在写入Flash后,处理器可能存在缓存,可能导致读回的数据并不是最新的。在执行写入后,可以使用(memory barrier)来刷新处理器的缓存,读取到的是最新的数据。

使用特权

评论回复
18
家有两宝呀| | 2023-7-24 15:52 | 只看该作者
也有可能是写入操作虽然函数返回值表示成功,但实际上并没有成功写入。这样的话可能需要检查写入函数的实现,确保写入操作成功了。

使用特权

评论回复
19
家有两宝呀| | 2023-7-24 15:53 | 只看该作者
数据的长度和地址等参数如果不正确,可能导致只有部分数据被写入。另外一部分可想而知,就没写进去。会导致错误

使用特权

评论回复
20
fred123456| | 2024-1-14 13:30 | 只看该作者
请问你这个怎么解决的 ? 我目前也是 可以erase 但是写入失败。 flash大小也看了 没有问题 我直接写了 800000+ 2k的地方  查看的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝