⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nandflash.h

📁 nand flash读写实验代码
💻 H
字号:
#ifndef __NANDFLASH_H__
#define __NANDFLASH_H__

#define	EnNandFlash()	(rNFCONF |= 0x8000)  //bit15=1 enable NAND flash controller
#define	DsNandFlash()	(rNFCONF &= ~0x8000) //bit15=0 disable NAND flash controller
#define	InitEcc()		(rNFCONF |= 0x1000)  //bit12=1 initialize ECC
#define	NoEcc()			(rNFCONF &= ~0x1000) //bit12=0 initialize ECC
#define	NFChipEn()		(rNFCONF &= ~0x800)  //bit11=0 NAND flash nFCE = L (active)
#define	NFChipDs()		(rNFCONF |= 0x800)   //bit11=1 NAND flash nFCE = H (inactive)

#define	WrNFCmd(cmd)	(rNFCMD = (cmd))   //write commond to nand flash
#define	WrNFAddr(addr)	(rNFADDR = (addr)) //write address to nand flash
#define	WrNFDat(dat)	(rNFDATA = (dat))  //write data to nand flash
#define	RdNFDat()		(rNFDATA)     //read data from nand flash
#define	RdNFStat()		(rNFSTAT)     //read status from nand flash
#define	NFIsBusy()		(!(rNFSTAT&1))//whether nand flash is busy?
#define	NFIsReady()		(rNFSTAT&1)   //whether nand flash is ready?
#define NF_WAITRB()    {while(!(rNFSTAT&(1<<0)));}

#define NFBlcokAddr 0x33ffb000//the last block of nand flash.16KB/block

#define	READCMD0	0
#define	READCMD1	1
#define	READCMD2	0x50
#define	ERASECMD0	0x60
#define	ERASECMD1	0xd0
#define	PROGCMD0	0x80
#define	PROGCMD1	0x10
#define	NFSTATUS	0x70
#define	RdIDCMD		0x90


U32 WritePage(U32 addr, U8 *buf);
U32 ReadPage(U32 addr, U8 *buf);
U32 EraseBlock(U32 addr);
U32 ReadChipId(void);
U32 ReadChipId(void);
void InitNandCfg(void);
void InitNandFlash(void);
U32 MarkBadBlk(U32 addr);

#endif /*__NANDFLASH_H__*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -