📄 nand.h
字号:
#include "option.h"
#include "def.h"
#include "44b.h"
#include "44blib.h"
///////////
/////
#define NAND_FLASH_16M
#define NAND_DAT 0x02000000
#define NAND_CLE 0x02000002
#define NAND_ALE 0x02000004
#define NFWrCmd(cmd) *(volatile U8 *)NAND_CLE = (cmd)
#define NFWrAddr(addr) *(volatile U8 *)NAND_ALE = (addr)
#define NFWrDat(dat) *(volatile U8 *)NAND_DAT = (dat)
#define NFRdDat() *(volatile U8 *)NAND_DAT
////////////////
#define READCMD0 0
#define READCMD1 1
#define READCMD2 0x50
#define ERASECMD0 0x60
#define ERASECMD1 0xd0
#define PROGCMD0 0x80
#define PROGCMD1 0x10
#define QUERYCMD 0x70
#define READIDCMD 0x90
//////////
#define NFEnable(void) {rPDATC &= 0xFDFF;} //~CE(GPC9) enable
#define NFDisable(void) {rPDATC |= 0x1<<9;}
#define NFIsReady(void) ((rPDATC>>8)|0x1) //R or ~B
#define NFIsBusy(void) !NFIsReady()
#define NFWrCmd(cmd) *(volatile U8 *)NAND_CLE = (cmd)
#define NFWrAddr(addr) *(volatile U8 *)NAND_ALE = (addr)
#define NFWrDat(dat) *(volatile U8 *)NAND_DAT = (dat)
#define NFRdDat() *(volatile U8 *)NAND_DAT
//////////
U8 NFWaitBusy(void);
U32 NFReadID(void);
void NandFlashInit(void);
U8 NFReadStat(void);
U8 NFEraseBlock(U32 uiBlockAdd);
void NFReadPage(const U32 uiPageAddr,U8 *pcDst);
U8 NFWritePage( const U32 uiPageAddr,const U8 *pcSrc );
U8 NFChkBadBlk( U32 uiBlockAddr );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -