zoukankan      html  css  js  c++  java
  • nandflash中oob、ecc分析

    1、为何需要分析?

          最近一直接触这类驱动,如果对它的原理不懂的话,驱动调试会很麻烦!!!!!!

    2、ecc?

          nand的纠错能力,目前有1位、4位和8位,也就是说在512字节中如果是4位的ecc那就可以纠正最多4个bit的错误,一般就是翻转的错误!

    3、oob?

           冗余区域,一般存放的是ecc纠错码,一般4位的ecc的纠错后需要的字节数为:4 bit ecc, per 512 bytes can creat 13 * 4 = 52 bit , 52 / 8 = 7 bytes ,就是需要7个字节的空间

          而我们目前的nandflash的页大小一般为2kb,也就是2kb/512bytes==4,也就是说至少需要4×7=28个ecc纠错的字节存放的地方

         oob分区一般已经由硬件厂商固定了,每512字节的oob大小为16字节,那么2kb的页就是64字节

         oob分区:

    struct nand_ecclayout _nand_oob_64 = {

     .eccbytes = 24,   //ecc纠错需要的空间

     .eccpos = {       //具体存放的位置

         40, 41, 42, 43, 44, 45, 46, 47,

         48, 49, 50, 51, 52, 53, 54, 55,

         56, 57, 58, 59, 60, 61, 62, 63},

     .oobfree = {

      {.offset = 2,      //偏移2位,这2位主要用来存放坏块标志,0xff

       .length = 38}} //多余的部分,可以用来存放系统文件的标志,如yaffs!

    };

    3、现在nand和sdram一般都集成了!

  • 相关阅读:
    python urllib urllib2
    python 标准库获取网络信息
    dell N1500 安全配置
    python jinjia2模板使用
    flask-admin
    github使用
    python中文处理
    C++输入和输出中进制问题
    hdu1708(C++)
    hdu1017(C++)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3249178.html
Copyright © 2011-2022 走看看