當前位置:外匯行情大全網 - 外匯開戶 - 如何快速檢測NAND的壞塊

如何快速檢測NAND的壞塊

首先,調用erase來擦除所有NAND,然後執行以下檢測操作。

如果頁面大於512字節,

badblockpos = 0;

bad block bytes = 2;

如果頁面小於512字節,

badblockpos = 5;

bad block bytes = 1;

讀取每個塊的前兩頁的OOB區中從badblockpos開始的最後壹個badblockbytes字節是否為0xff,

如果是,那麽塊是好的,否則塊是壞的[gliethttp_20080523]!

UINT_T create_bbt

{

UINT _ T Retval

p _ flash properties _ T pFlashP = getflash properties(fbt);

UINT_T BlkSize,BlkNum

UINT _ T flash _ addr

#定義頁面大小(2048)

#定義頁面備用大小(64)

#定義塊大小(64 *頁面大小)

#定義tmp _ buffer _ addr(0x 80200000-page _ size-page _ spare _ size)

#定義tmp _ spare _ buffer _ addr(tmp _ buffer _ addr+page _ size)

int i,j;

char * bbpos

bb pos =(char *)(tmp _ spare _ buffer _ addr+0);

BlkSize = pFlashP->。BlockSize

blk num = pFlashP-& gt;數字塊;

for(I = 0;我& ltBlkNumi++)

{

flash _ addr = i * BlkSize

for(j = 0;j & lt2;j++)

{

retval = xdfc _ read((UINT _ T *)tmp _ buffer _ addr,flash_addr + j*page_size,page_size,(UINT_T *)tmp_spare_buffer_addr,GetNANDProperties());

如果(返回)

{

goto _ _ create _ bbt _ mark

}

if(bbpos[0]!= 0x ff)goto _ _ create _ bbt _ mark;

if(bbpos[1]!= 0x ff)goto _ _ create _ bbt _ mark;

}

繼續;

__create_bbt_mark:

重定位塊(I & amp;GetFMProperties()-& gt;BBT,fbt);

}

}

  • 上一篇:南京餐飲店生意紅火,催生了黃牛經濟。黃牛的存在是否合理?
  • 下一篇:沈陽市對外承包工程和勞務合作管理辦法(試行)
  • copyright 2024外匯行情大全網