data buffer简介

spinand一般会有一个内置的data buffer。
以W25N01GV为例,一个page是2048bytes外加64bytes的spare数据,其data buffer就有2048+64=2112bytes。

data buffer与读写

在写数据到spinand时,需要分为两步。
第一步,Load Program Data (02h),将数据写到data buffer中。此时spinand除了会将接收到spi的波形解码出来写到buffer,还会计算对应的ecc校验码,并覆盖到spare区域的指定位置。即在buffer中准备好要写入cell的数据。
第二步,Program Execute (10h),将数据从data buffer真正写到cell中,固化起来。

在从spinand中读数据时,也需要分为两步
第一步,Page Data Read (13h),将数据从cell中读取到data buffer中。此时spinand会读取cell数据,并计算ecc,进行纠错。如果cell中发生了位翻转,那么经过ecc纠错后写到data buffer中的就已经是正确的数据了
第二步,Read Data (03h),将数据从data buffer中读出来。

可以看到,data buffer是读写的必经之路。

data buffer 读写测试

当出现flash数据读写错误,可以专门构建一个buffer读写测试。

简单来讲,就是只执行上述读写步骤的第一步,把数据写到buffer,但不写入cell,而是直接再读出校验。
这样的实验,省去了读写cell的时间,效率很高。且不会真正读写cell,因此对flash的寿命是没有影响的。可以帮助快速复现排查问题。
如果buffer读写测试可以复现问题,那么就可以确认问题跟cell无关了。

最新文章

  1. C语言 回文
  2. 【Linux学习】Vi 操作命令集合
  3. Win10 UI入门窗口由默认500px to 320px
  4. 在Json解析过程中,我为什么用object1.optInt ,和 object1.optString
  5. hdu 1517 博弈 **
  6. 动态SQL基础
  7. jsp开发知识
  8. Codeforces Round #188 (Div. 2) C. Perfect Pair 数学
  9. JSP JS 日期控件的下载、使用及注意事项
  10. JS常见的字符串操作
  11. UVA11992 Fast Matrix Operations
  12. python新建txt文件,并逐行写入数据
  13. 整理 oracle异常错误处理
  14. 自己实现一个一致性 Hash 算法
  15. Visual Studio 2010详细安装过程
  16. linux批量修改文件名
  17. SpringBoot Mybatis 执行自定义SQL
  18. Ubuntu16.04中MySQL之中文不能插入问题
  19. jquery显示、隐藏div的方法
  20. mybatis foreach标签的解释 与常用之处

热门文章

  1. js抽奖概率随机取出数据(简单示例)
  2. C# MVC 过滤器
  3. Spring面试题集锦(精选)
  4. alloc 和 init都做了什么验证。
  5. 深入理解跳跃链表在Redis中的应用
  6. 在阿里云购买SSL证书,让网站支持HTTPS
  7. luogu P2985 [USACO10FEB]吃巧克力Chocolate Eating
  8. 简单http和https服务器python脚本
  9. openlayers4 入门开发系列之前端动态渲染克里金插值 kriging 篇(附源码下载)
  10. art-template模板判断