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

📄 nandfdrv.h

📁 PDA上的CF CARD 文件系统的建立程式
💻 H
字号:
/****************************************************************
;*								*
;*		INSTUTITE FOR INFORMATION INDUSTRY		*
;*		     FFS HEADER -- FFSFLASH			*
;*			  July 22, 1999				*
;*								*
;****************************************************************/
#ifndef _NAND_FFS_FLASH_DRIVER_H
#define _NAND_FFS_FLASH_DRIVER_H


/**************************************************************
;*                                                            *
;*		Gloabal Definitions			      *
;*                                                            *
;*************************************************************/

// the base address of flash
#define NAND_FFS_FLASH_BASE_ADDR	0x10c00000


// commands and address for Intel 28F flash
#define INTEL28F800C3_SA0      (0x000000)
#define INTEL28F800C3_SA1      (0x002000)
#define INTEL28F800C3_SA2      (0x004000)
#define INTEL28F800C3_SA3      (0x006000)
#define INTEL28F800C3_SA4      (0x008000)
#define INTEL28F800C3_SA5      (0x00a000)
#define INTEL28F800C3_SA6      (0x00c000)
#define INTEL28F800C3_SA7      (0x00e000)
#define INTEL28F800C3_SA8      (0x010000)
#define INTEL28F800C3_SA9      (0x020000)
#define INTEL28F800C3_SA10     (0x030000)
#define INTEL28F800C3_SA11     (0x040000)
#define INTEL28F800C3_SA12     (0x050000)
#define INTEL28F800C3_SA13     (0x060000)
#define INTEL28F800C3_SA14     (0x070000)
#define INTEL28F800C3_SA15     (0x080000)
#define INTEL28F800C3_SA16     (0x090000)
#define INTEL28F800C3_SA17     (0x0A0000)
#define INTEL28F800C3_SA18     (0x0B0000)
#define INTEL28F800C3_SA19     (0x0C0000)
#define INTEL28F800C3_SA20     (0x0D0000)
#define INTEL28F800C3_SA21     (0x0E0000)
#define INTEL28F800C3_SA22     (0x0F0000)
#define INTEL28F800C3_SA23     (0x100000)
#define INTEL28F800C3_SA24     (0x110000)
#define INTEL28F800C3_SA25     (0x120000)
#define INTEL28F800C3_SA26     (0x130000)
#define INTEL28F800C3_SA27     (0x140000)
#define INTEL28F800C3_SA28     (0x150000)
#define INTEL28F800C3_SA29     (0x160000)
#define INTEL28F800C3_SA30     (0x170000)
#define INTEL28F800C3_SA31     (0x180000)
#define INTEL28F800C3_SA32     (0x190000)
#define INTEL28F800C3_SA33     (0x1A0000)
#define INTEL28F800C3_SA34     (0x1B0000)
#define INTEL28F800C3_SA35     (0x1C0000)
#define INTEL28F800C3_SA36     (0x1D0000)
#define INTEL28F800C3_SA37     (0x1E0000)
#define INTEL28F800C3_SA38     (0x1F0000)
#define INTEL28F800C3_SA39     (0x200000)
#define INTEL28F800C3_SA40     (0x210000)
#define INTEL28F800C3_SA41     (0x220000)
#define INTEL28F800C3_SA42     (0x230000)
#define INTEL28F800C3_SA43     (0x240000)
#define INTEL28F800C3_SA44     (0x250000)
#define INTEL28F800C3_SA45     (0x260000)
#define INTEL28F800C3_SA46     (0x270000)
#define INTEL28F800C3_SA47     (0x280000)
#define INTEL28F800C3_SA48     (0x290000)
#define INTEL28F800C3_SA49     (0x2A0000)
#define INTEL28F800C3_SA50     (0x2B0000)
#define INTEL28F800C3_SA51     (0x2C0000)
#define INTEL28F800C3_SA52     (0x2D0000)
#define INTEL28F800C3_SA53     (0x2E0000)
#define INTEL28F800C3_SA54     (0x2F0000)
#define INTEL28F800C3_SA55     (0x300000)
#define INTEL28F800C3_SA56     (0x310000)
#define INTEL28F800C3_SA57     (0x320000)
#define INTEL28F800C3_SA58     (0x330000)
#define INTEL28F800C3_SA59     (0x340000)
#define INTEL28F800C3_SA60     (0x350000)
#define INTEL28F800C3_SA61     (0x360000)
#define INTEL28F800C3_SA62     (0x370000)
#define INTEL28F800C3_SA63     (0x380000)
#define INTEL28F800C3_SA64     (0x390000)
#define INTEL28F800C3_SA65     (0x3A0000)
#define INTEL28F800C3_SA66     (0x3B0000)
#define INTEL28F800C3_SA67     (0x3C0000)
#define INTEL28F800C3_SA68     (0x3D0000)
#define INTEL28F800C3_SA69     (0x3E0000)
#define INTEL28F800C3_SA70     (0x3F0000)
#define INTEL28F800C3_SAEND    (0x400000)

#define INTEL_STATUS_WSMS      (0x80)
#define INTEL_STATUS_ESS       (0x40)
#define INTEL_STATUS_ES        (0x20)
#define INTEL_STATUS_PS        (0x10)
#define INTEL_STATUS_VPPS      (0x08)
#define INTEL_STATUS_PSS       (0x04)
#define INTEL_STATUS_BLS       (0x02)
#define INTEL_STATUS_R         (0x01)

#define INTEL_CMD_CFIQUERY     (0x9898)
#define INTEL_CMD_READ_CONFIG  (0x9090)
#define INTEL_CMD_RESET        (0xFFFF)
#define INTEL_CMD_STATUS       (0x7070)
#define INTEL_CMD_CLR_STATUS   (0x5050)
#define INTEL_CMD_PROG_SETUP   (0x4040)
#define INTEL_CMD_ERASE_SETUP  (0x2020)
#define INTEL_CMD_SUSPEND      (0xB0B0)
#define INTEL_CMD_CONFIG       (0x6060)
#define INTEL_CMD_LOCK_BLOCK   (0x0101)
#define INTEL_CMD_ERASE_CONFRM (0xD0D0)
#define INTEL_CMD_ERASE_RESUME (0xD0D0)
#define INTEL_CMD_UNLOCK_BLOCK (0xD0D0)
#define INTEL_CMD_LOCKDOWN     (0x2F2F)
#define INTEL_CMD_PROG_PROTECT (0xC0C0)



/*************************************************************
Function: NAND_FFS_fshFrameRead
Description:
	read a flash frame
Input:
	frame - the frame number
Output:
	0	SUCCESS
	-1	FAILURE
**************************************************************/
int NAND_FFS_fshFrameRead(int frame, unsigned char *pData);


/*************************************************************
Function: NAND_FFS_fshBlockRead
Description:
	read a flash sector
Input:
	sec - the sector number
Output:
	0	SUCCESS
	-1	FAILURE
**************************************************************/
int NAND_FFS_fshBlockRead(int sec, unsigned char *pData);


/*************************************************************
Function: NAND_FFS_fshBlockErase
Description:
	erase a flash sector
Input:
	sec - the sector number
Output:
	0	SUCCESS
	-1	FAILURE
**************************************************************/
int NAND_FFS_fshBlockErase(int sec);


/*************************************************************
Function: NAND_FFS_fshBlockProgram
Description:
	program a flash sector
Input:
	sec - the sector number
Output:
	0	SUCCESS
	-1	FAILURE
**************************************************************/
int NAND_FFS_fshBlockProgram(int sec, unsigned char *pData);


#endif


⌨️ 快捷键说明

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