搜索
bottom↓
回复: 22

只把1改写成0的情况下,Flash到底能不能一次擦除多次写入?

[复制链接]

出0入0汤圆

发表于 2020-3-16 15:45:28 | 显示全部楼层 |阅读模式
比如擦除后是0xFFFFFFFF, 第一次写入0xFFFFFF01, 第二次写入0xFFFF0101,第三次写入0x00000000.一直以为是可以这样操作的,今天在GD32上面试,居然不行……
是我记错了,还是GD32不支持这种操作?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入22汤圆

发表于 2020-3-16 15:53:04 | 显示全部楼层
外置的sp iflash如25qxx这种是可以的,mcu内部flash没试过

出0入0汤圆

发表于 2020-3-16 15:54:03 | 显示全部楼层
我试过单片机内的flash是可以的

出0入0汤圆

发表于 2020-3-16 15:56:44 | 显示全部楼层
以前STC老姚就是这么推荐的,还用位来标志指针,提高内部FLASH的修改次数。

出0入0汤圆

 楼主| 发表于 2020-3-16 15:57:58 | 显示全部楼层
再次确认了下,GD32E230系列不支持这么操作

出0入16汤圆

发表于 2020-3-16 16:14:22 | 显示全部楼层
STM32检测到flash数据不为空就不给写了

出10入284汤圆

发表于 2020-3-16 16:24:38 来自手机 | 显示全部楼层
你是要弄这个?
http://www.matrix67.com/blog/archives/6443

出0入0汤圆

 楼主| 发表于 2020-3-16 16:37:46 | 显示全部楼层
brother_yan 发表于 2020-3-16 16:24
你是要弄这个?
http://www.matrix67.com/blog/archives/6443

没这么复杂,就是记录点简单的掉电数据,想减少点擦除次数。

出0入0汤圆

发表于 2020-3-16 16:44:18 | 显示全部楼层
我试过好几种外置flash是可以这样写的

出4535入62汤圆

发表于 2020-3-16 17:04:47 | 显示全部楼层
应该可以的吧,也要看你能操作的最小块是多大

出0入0汤圆

发表于 2020-3-16 19:26:20 | 显示全部楼层
STM32 不可以, 如6楼所述

出0入1119汤圆

发表于 2020-3-16 19:43:04 | 显示全部楼层
flash不行吧,都是按块写,eeprom估计可以

出0入0汤圆

发表于 2020-3-16 22:02:07 | 显示全部楼层
单片机现在估计有保护机制  以前的avr貌似可以

出50入58汤圆

发表于 2020-3-16 22:46:55 来自手机 | 显示全部楼层
brother_yan 发表于 2020-3-16 16:24
你是要弄这个?
http://www.matrix67.com/blog/archives/6443

哈哈,竟然在这也有同好关注这个博客!
话说这个博客已经好久没更新了

出10入284汤圆

发表于 2020-3-16 23:17:11 来自手机 | 显示全部楼层
鲜衣怒马 发表于 2020-3-16 22:46
哈哈,竟然在这也有同好关注这个博客!
话说这个博客已经好久没更新了

以前看过这篇博文觉得很有意思。博主是一个比较杰出的数学爱好者,博客里的东西技巧性都比较强

出0入0汤圆

发表于 2020-3-16 23:20:41 | 显示全部楼层
STM32不清楚,知道的几个品牌都是可以的。

出0入0汤圆

发表于 2020-3-16 23:29:31 来自手机 | 显示全部楼层
外置可以的,以前就是这么做的。

出0入0汤圆

发表于 2020-3-17 00:17:19 来自手机 | 显示全部楼层
亲测STM32F407以128个数据为单位写入是可以的,改成1个1个写也是可以的

出0入42汤圆

发表于 2020-3-17 08:42:31 | 显示全部楼层
brother_yan 发表于 2020-3-16 23:17
以前看过这篇博文觉得很有意思。博主是一个比较杰出的数学爱好者,博客里的东西技巧性都比较强 ...

北大中文系里数学最好的

出0入0汤圆

发表于 2020-3-18 14:18:45 | 显示全部楼层
flash机制上是可以从1写为0,但不可以从0写为1,楼主上面的数据符合要求。如果不行,那可能是GD32底层还有一些判别机制导致的。

出0入0汤圆

发表于 2021-2-24 15:18:53 | 显示全部楼层
STM32F030C8T6 可以从0xFFFF 写入任何数据(比如0xFF01),然后不擦除 。可以再次写入0x0000。试过其他值不成功。

出0入0汤圆

发表于 2021-2-24 15:25:39 | 显示全部楼层
本帖最后由 zrp123 于 2021-2-24 15:26 编辑

试过XMC4700,是可以的,没有问题
不过这个芯片0/1与大多数是反的
编辑原因:完善回答

出190入0汤圆

发表于 2021-2-24 16:45:22 | 显示全部楼层
stm32可以将flash为1的bit写为0,但不可为0的bit改写成1
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-16 18:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表