zoukankan      html  css  js  c++  java
  • spinand之data buffer

    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无关了。

  • 相关阅读:
    .net事件和委托
    DataFormatString使用笔记
    DropDownList 绑定 枚举 Enum
    iOS开发如何实现消息推送机制
    JQuery调用asp.net后台方法
    Android 服务器推送技术
    Jquery Ajax ashx DataTable 传参 获取参数 C#
    jquery 基础
    [Perl书籍合集]Perl eBooks Collection
    LISP之根源
  • 原文地址:https://www.cnblogs.com/zqb-all/p/10965050.html
Copyright © 2011-2022 走看看