현재 위치 - 대출자문플랫폼 - 외환 플랫폼 - NAND 의 손상된 블록을 신속하게 감지하는 방법

NAND 의 손상된 블록을 신속하게 감지하는 방법

먼저 erase 를 호출하여 모든 NAND 를 지운 후 다음 테스트 작업을 수행합니다.

페이지가 5 12 바이트보다 크면

Badblockpos = 0;;

Bad block bytes = 2;;

페이지가 5 12 바이트보다 작은 경우 ,

Badblockpos = 5;;

Bad blockbytes =1;

각 블록의 처음 두 페이지의 OOB 영역에서 badblockpos 로 시작하는 마지막 badblockbytes 바이트가 0xff 인지 읽습니다.

그렇다면 블록이 좋다. 그렇지 않으면 블록이 나쁘다 [gliethttp_20080523]!

UINT_T create_bbt

{

UINT _ T Retval

P _ flashproperties _ t pflashp = getflash properties (fbt);

UINT_T BlkSize, BlkNum

UINT _ T flash _ addr

# 페이지 크기 정의 (2048)

# 페이지 대체 크기 정의 (64)

# 블록 크기 정의 (64 * 페이지 크기)

# tmp _ buffer _ addr 정의 (0x8020000-page _ size-page _ spare _ size)

# tmp _ spare _ buffer _ addr 정의 (tmp _ buffer _ addr+page _ size)

Int I, j;

Char * bbpos

Bbpos = (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<2; J++)

{

Retval = xdfc _ read ((uint _ t *) tmp _ buffer _ addr, flash_addr+j*page_size,

다음 경우 (반환)

{

Goto _ _ create _ bbt _ mark

}

If(bbpos[0]! = 0xff) goto _ _ create _ bbt _ mark;

If(bbpos[ 1]! = 0xff) goto _ _ create _ bbt _ mark;

}

계속;

__create_bbt_mark:

블록 재배치 (I & amp;; Getfmproperties ()-> BBT, fbt);

}

}

copyright 2024대출자문플랫폼