nfdrv.h
来自「该软件为在sunplus的61单片机上实现的mp3播放器.里面有完整的源代码.」· C头文件 代码 · 共 50 行
H
50 行
#ifndef __NFDRV_h__
#define __NFDRV_h__
// write your header here
/************************** Read Command ************************************/
#define NF_READ_A_AREA_CMD 0x00
#define NF_READ_B_AREA_CMD 0x01
#define NF_READ_C_AREA_CMD 0x50
/************************** Read ID Command *********************************/
#define NF_READ_ID_CMD 0x90
#define NF_RESET_CMD 0xff
/************************** Program command *********************************/
#define NF_SEQUENTIAL_DATA_INPUT_CMD 0x80
#define NF_PAGE_PROGRAM_CMD 0x10
/************************** Erase command ***********************************/
#define NF_BLOCK_ERASE_CMD 0x60
#define NF_BLOCK_ERASE_CONFIRM_CMD 0xD0
/************************** Read Status command *****************************/
#define NF_READ_STATUS_CMD 0x70
#define NF_BUFFER_SIZE (Byte)(133)
/***************** NF Pins Define *****************************************************/
//#define NF_BLOCK_SIZE 0x4000
#define NF_CLE_ENABLE() asm("R1=[P_IOA_Buffer]\n\t" "R1|=0x0010\n\t" "[P_IOA_Buffer]=R1")
#define NF_CLE_DISABLE() asm("R1=[P_IOA_Buffer]\n\t" "R1&=0xffef\n\t" "[P_IOA_Buffer]=R1")
#define NF_ALE_ENABLE() asm("R1=[P_IOA_Buffer]\n\t" "R1|=0x0020\n\t" "[P_IOA_Buffer]=R1")
#define NF_ALE_DISABLE() asm("R1=[P_IOA_Buffer]\n\t" "R1&=0xffdf\n\t" "[P_IOA_Buffer]=R1")
#define NF_CHIP_ENABLE() asm("R1=[P_IOB_Buffer]\n\t" "R1&=0xffef\n\t" "[P_IOB_Buffer]=R1")
#define NF_CHIP_DISABLE() asm("R1=[P_IOB_Buffer]\n\t" "R1|=0x0010\n\t" "[P_IOB_Buffer]=R1")
#define NF_WP_OPEN() asm("R1=[P_IOB_Buffer]\n\t" "R1&=0x7fff\n\t" "[P_IOB_Buffer]=R1")
#define NF_WP_CLOSE() asm("R1=[P_IOB_Buffer]\n\t" "R1|=0x8000\n\t" "[P_IOB_Buffer]=R1")
/*_____ D E C L A R A T I O N ______________________________________________*/
void NandFlashInit();
void NF_Reset();
void NF_PageRead(unsigned int wColumnAddr,unsigned long int wRowAddr, unsigned int *wrData);
unsigned int NF_ReadID();
#define NF_STATUS_PE 0x0001
#define NF_STATUS_RB 0x0004
#define NF_STATUS_WP 0x0008
unsigned int NF_EraseBlock(unsigned long int Addr32 );
unsigned int NF_PageProgram(unsigned int wColumnAddr,unsigned long int wRowAddr, unsigned int *wrData);
void NF_ReadMultiByte(unsigned long int dAddr, unsigned int wLen, unsigned int *wrData );
void DMA_NFtoD12(unsigned long int wAddr, unsigned int nbSector);
void DMA_D12toNF(unsigned long int wAddr, unsigned int nbSector);
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?