打印
[STM32F1]

关于FLASH擦写的问题

[复制链接]
2445|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mthgh0818|  楼主 | 2014-7-4 10:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在使用的是K9f2808的flash,里面的block是16K,擦写按照block擦写的,我想请教一下当我修改页中的几个字节怎么做?难道要把block全读出来修改了在写入?这样也太麻烦了吧?
沙发
wyde518| | 2014-7-4 10:46 | 只看该作者
必须这样

使用特权

评论回复
板凳
wyde518| | 2014-7-4 10:47 | 只看该作者
flash和EEPROM差别就在这里

使用特权

评论回复
地板
mthgh0818|  楼主 | 2014-7-4 14:33 | 只看该作者
wyde518 发表于 2014-7-4 10:46
必须这样

那么除了移植文件系统外有什么好的办法管理nand?nand很容易坏块,要加上坏块处理

使用特权

评论回复
5
mthgh0818|  楼主 | 2014-7-4 14:37 | 只看该作者
wyde518 发表于 2014-7-4 10:47
flash和EEPROM差别就在这里

单片机的rom本来就小,难道要申请一个16k的内存专门用来做这个?你知道文件系统上是怎么实现的吗?

使用特权

评论回复
6
wyde518| | 2014-7-4 17:36 | 只看该作者
本帖最后由 wyde518 于 2014-7-4 17:38 编辑
mthgh0818 发表于 2014-7-4 14:37
单片机的rom本来就小,难道要申请一个16k的内存专门用来做这个?你知道文件系统上是怎么实现的吗? ...


是ram吧,flash一般都分页,块,扇区,你可以考虑用页读写,这样会占用较小内存

使用特权

评论回复
7
mthgh0818|  楼主 | 2014-7-7 09:16 | 只看该作者
wyde518 发表于 2014-7-4 17:36
是ram吧,flash一般都分页,块,扇区,你可以考虑用页读写,这样会占用较小内存 ...

是的,是ram,不好意思打错了。我的意思是1个16k的块中其中一个页中的某些字节需要修改,要把这个块上所有的数据全读出来修改完要修改的数据擦除了块在写入吧?是这样实现的吧?但块本身很大,有的flash块128k并且也只能按块擦除,要读出所有数据需要一个很大的空间,单片机的RAM应该不够吧?这个地方我一直没弄明白,我是移植的文件系统,但文件系统是怎么实现的我没看懂

使用特权

评论回复
8
wyde518| | 2014-7-7 14:38 | 只看该作者
mthgh0818 发表于 2014-7-7 09:16
是的,是ram,不好意思打错了。我的意思是1个16k的块中其中一个页中的某些字节需要修改,要把这个块上所 ...

不需要整个块读出,应该可以-----页读写

使用特权

评论回复
9
wyde518| | 2014-7-7 14:41 | 只看该作者
wyde518 发表于 2014-7-7 14:38
不需要整个块读出,应该可以-----页读写

FEATURES



Voltage Supply : 2.7 ~ 3.6 V



Organization

  - Memory Cell Array

    -(16M + 512K)bit x 8bit

  - Data Register   

    - (512 + 16)bit x 8bit



Automatic Program and Erase

  - Page Program

    -(512 + 16)Byte

  - Block Erase :

    - (16K + 512)Byte



Page Read Operation

  - Page Size

    - (512 + 16)Byte

  - Random Access      : 10

µ

s(Max.)

  - Serial Page Access : 50ns(Min.)

使用特权

评论回复
10
mthgh0818|  楼主 | 2014-7-8 09:41 | 只看该作者
wyde518 发表于 2014-7-7 14:41
FEATURES


是的,我明白你的意思,我知道读取可以以页的方式,但你上面也写到了擦除是以块擦除的Block Erase :
   - (16K + 512)Byte。我的意思你可能没弄明白,我的意思是一个块上已经写了很多页了,我想修改其中一个页上的某几个字节,需要的操作是按页读取一直把块上所有的已写页读出,把需要修改的内容修改了,把块擦除了,再把内容写入。你明白了吗?我的意思是擦除时块擦除的,如果想修改其中的页要怎么做?把所有的内容都读出在写入太麻烦了

使用特权

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

本版积分规则

4

主题

20

帖子

1

粉丝