NAND_Flash的驱动程序设计.pdf
文本预览下载声明
NAND Flash
NAND Flash
K9F2808UOBNAND FlashS3C2410,NAND FlashARM
,UBoot
SP3232EC
EPF10K20TC144-3
LM4890MM EL2180CS
BSO4804
SN74AHCT1G14DCKR
CL450-P160
EP1K10TC100-3 IR2110
MRF150
NOR NAND
NOR Flash
NOR,NAND,,I/O8
16,NANDFlash,,
K9F2808UOB,NAND Flash
NAND Flash
1 NAND Flash
S3C2410NAND FlashS3C2410 CPUNAND Flash
NAND FlashNAND Flash,NAND Flash
, NAND FlashS3C2410,
1.1
NAND Flash, 1=4 096 1=32;1=528=
(512)+OOB(16)16 OOBOut?of?BandNAND Flash
512NAND Flash00h/01h/50h
OOBNAND Flash
/data/html/2009-6-23/77135.html 18 [2009-10-30 15:26:19]
NAND Flash
NAND Flash1001
(1) OOB6(517
)FFOOB6OOB3
NAND FlashECC
1.2 NAND Flash
1NAND FlashSW12R/B/
23nWAIT/S3C2410NAND Flash
2NAND Flash
1 NAND Flash
1.3
NAND Flash(SFR)
NAND FlashNAND Flash
NFCONFNFCMDNFADDRNFDATANFSTATNFECC
/data/html/2009-6-23/77135.html 28 [2009-10-30 15:26:19]
NAND Flash
2 NAND FlashS3C2410
2 Flash
SDRAMNAND Flash
: SDRAMNAND Flash:
NAND Flash NAND Flash
SDRAMNAND Flash
()
2.1 NAND Flash Read
,00H,,
,ECC
blockpagebuffer1
0
static int NF_ReadPage(unsigned int block, unsigned int page, unsigned char *buffer){
NF_RSTECC(); /* ECC */
NF_nFCE_L(); /* NAND Flash*/
NF_CMD(0x00); /* A *//* A0~A7() */
NF_ADDR(0); /* A9A16() */
NF_ADDR(blockPage0xff); /* A17A24,() */
NF_ADDR((blockPage8)0xff);/* A25, () */
/data/html/2009-6-23/77135.html 38 [2009-10-30 15:26:19]
NAND Flash
NF_ADDR((blockPage16)0xff);/* NAND Flash */
ReadPage();/* , 512 */
ReadECC();/* ECC */
ReadOOB();/* OOB *//* NAND Flash */
NF_nFCE_H();/* ECC, */
Return (checkEcc())}
2.2 NAND Flash Program
,
00h(A)/01h(B)/05h(C), ; 80h()
; 10h3
3
blockpagebufferNAND Flash
01
/data/html/2009-6-23/77135.html 48 [2009-10-30 15:26:19]
NAND Flash
static int NF_WritePage(unsigned int block, unsigned int page, unsigned char *buff
显示全部