搜索
bottom↓
回复: 16

关于在SST25VF016的页内定位写数据的一些想法

[复制链接]

出0入0汤圆

发表于 2014-11-5 14:57:20 | 显示全部楼层 |阅读模式
先说2点背景:
1、保存的突发性的日志,一般都是几十个字节那样子。为了写这几十字节,需要动用4KB的RAM,貌似很费劲
2、在测试中发现,未擦除就直接写0xF0,读出来的数据前4bit不会发生改变,后4bit变成0了。

所以有个想法,如果我知道位置的情况下,能不能通过写一群0xFF定位到我想要的位置,再接着写数据?

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

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-11-5 15:17:49 | 显示全部楼层
楼主,我看了几遍也不知道你在说啥啊

出0入0汤圆

发表于 2014-11-5 15:51:52 | 显示全部楼层
FLASH是可以写0不能写1,要写1就必须整块/页擦除。
搞清楚这点后就很容易理解,不管你写什么数据,只能把字节的相应位从1改成0。

所以你的想法按理说是可以的,我在NOR FLASH上测试过可行,NAND FLASH就不清楚了,需要自己实际测试下。

出0入0汤圆

发表于 2014-11-5 15:57:38 | 显示全部楼层
肯定是不可以的。你可以将0xff写为0x00,但不可以将原本为0x00的地址直接改为0xff,只有擦除后才能从0x00恢复为0xff.

出0入0汤圆

 楼主| 发表于 2014-11-5 20:43:37 | 显示全部楼层
bbglx 发表于 2014-11-5 15:17
楼主,我看了几遍也不知道你在说啥啊

这个我再解释一下~~

SST25VF016的写入地址是页地址,一页4kB。

如果发现一页里面只写了1KB数据,想利用完这4KB空间,常规的做法是把这1KB读出来,再加3KB数据,接着要擦这一页,再把这4KB写入。

这需要4KB的RAM,RAM消耗比较大(现使用STM32F103R8,20KB的RAM)。还很费功夫。

出0入0汤圆

 楼主| 发表于 2014-11-5 20:53:13 | 显示全部楼层
dalarang 发表于 2014-11-5 15:51
FLASH是可以写0不能写1,要写1就必须整块/页擦除。
搞清楚这点后就很容易理解,不管你写什么数据,只能把字 ...

SST25VF016也是NOR FLASH,本来考虑过NAND FLASH做的,后来算算还是NOR FLASH+SD卡划算的来,IO需要也是,成本更加低廉

出0入0汤圆

 楼主| 发表于 2014-11-5 20:58:56 | 显示全部楼层
senjet 发表于 2014-11-5 15:57
肯定是不可以的。你可以将0xff写为0x00,但不可以将原本为0x00的地址直接改为0xff,只有擦除后才能从0x00恢复 ...

举个栗子说一下~

SST25VF016的写入地址是页地址,一页4kB。

如果发现一页里面只写了1KB数据,想利用完这4KB空间,常规的做法是把这1KB读出来,再加3KB数据,接着要擦这一页,再把这4KB写入。

现在是想不擦除这1KB,通过写入0xFF,把SST25VF016的指针推到1KB+1的位置,在继续写入我的数据。

如果这样可行的话,能省掉读出、保存、擦页的步骤,并且每次写入的量不大的时候非常方便,内存、时间花费都少。

出0入0汤圆

发表于 2014-11-5 21:01:59 | 显示全部楼层
LearningASM 发表于 2014-11-5 20:53
SST25VF016也是NOR FLASH,本来考虑过NAND FLASH做的,后来算算还是NOR FLASH+SD卡划算的来,IO需要也是 ...

可以,你只要保证你要写的地方原来是0xFF就可以.

出0入0汤圆

发表于 2014-11-5 21:03:42 | 显示全部楼层
LearningASM 发表于 2014-11-5 20:53
SST25VF016也是NOR FLASH,本来考虑过NAND FLASH做的,后来算算还是NOR FLASH+SD卡划算的来,IO需要也是 ...

这下看懂了,但是不用每次写都要擦除啊,只是之前你写过的地方想要再写要擦除而已。
如果你不确定你想写的地方有没有被擦除过,也就不确定他的内容是什么,你的方法好像也不可行。

出0入0汤圆

 楼主| 发表于 2014-11-5 21:04:52 | 显示全部楼层
hyz_avr 发表于 2014-11-5 21:01
可以,你只要保证你要写的地方原来是0xFF就可以.

在论坛上没看到有人这样做,感觉上不靠谱,想问一下。

出0入0汤圆

发表于 2014-11-5 21:06:49 | 显示全部楼层
LearningASM 发表于 2014-11-5 20:58
举个栗子说一下~

SST25VF016的写入地址是页地址,一页4kB。

何必这样多此一举呢,难道SST25VFxxx没有Byte-Program和Auto Address Increment (AAI) Word-Program么?你直接将写入的地址指定为1k+1不就可以了?

出0入0汤圆

发表于 2014-11-5 21:06:52 | 显示全部楼层
LearningASM 发表于 2014-11-5 21:04
在论坛上没看到有人这样做,感觉上不靠谱,想问一下。

可以的,我就是先擦除4K,然后串口每次接收512字节写入的.

出0入0汤圆

 楼主| 发表于 2014-11-5 22:18:12 | 显示全部楼层
senjet 发表于 2014-11-5 21:06
何必这样多此一举呢,难道SST25VFxxx没有Byte-Program和Auto Address Increment (AAI) Word-Program么? ...

对了半天百度翻译,终于看到了,原来本来就是读写按地址保存的,擦除是按页进行,被例程的注释坑了

出0入0汤圆

发表于 2015-1-2 10:24:59 | 显示全部楼层
LearningASM 发表于 2014-11-5 22:18
对了半天百度翻译,终于看到了,原来本来就是读写按地址保存的,擦除是按页进行,被例程的注释坑了 ...

哈,我当时也是,例子程序不能全信!

出0入0汤圆

发表于 2015-1-2 18:13:47 | 显示全部楼层
这类片子可以在一页内任意地址开始的

出0入0汤圆

发表于 2015-4-14 00:50:35 | 显示全部楼层
楼主例程可否共享一下?

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-24 17:06

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

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