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

📄 nfc.h

📁 mx21的NAND Flash Bootloader源代码
💻 H
字号:
#ifndef __NFC_H__
#define __NFC_H__

/*---------------------------------------------------------------------------*/
/* NFC ERROR code for internal                                               */
/*---------------------------------------------------------------------------*/
#define	NFC_NO_ERR				0x00
#define NFC_SB_1BIT_ECC_ERR		0x01
#define NFC_SB_2BIT_ECC_ERR		0x02
#define NFC_PB_1BIT_ECC_ERR		0x04
#define NFC_PB_2BIT_ECC_ERR		0x08
#define NFC_ERASE_ERR			0x10
#define NFC_WRITE_ERR			0x20
#define NFC_READ_ERR			0x40
#define NFC_ILLEGAL_ACCESS		0x80

/* Operation Type */
#define NFC_CMD_RD_PB_ECC		0x0000
#define NFC_CMD_RD_PB_NOECC		0x0100
#define NFC_CMD_RD_SB_ECC		0x0003
#define NFC_CMD_RD_SB_NOECC		0x0103
#define NFC_CMD_WR_PB_ECC		0x0085
#define NFC_CMD_WR_PB_NOECC		0x0185
#define NFC_CMD_WR_SB_ECC		0x008A
#define NFC_CMD_WR_SB_NOECC		0x018A

/****************************************************************************/
#define NAND_FLASH_PAGE_PER_BLOCK	32
#define NAND_FLASH_PAGE_MAIN_SIZE	512
#define NAND_FLASH_PAGE_SPARE_SIZE	16
#define NF_FMS_2KB  0x20
//#define NF_FMS_512B 0x00
#define NF_16BIT    0x10
//#define NF_8BIT     0x00

/***********************************************************/
/* NAND Flash Command Set for 16-bit I/O                    */
/***********************************************************/
#define NAND_CMD_READ              (0x0000)
#define NAND_CMD_READ1             (0x0001)
#define NAND_CMD_READ2             (0x0050)       
#define NAND_CMD_READ_CONFIRM      (0x0030)
#define NAND_CMD_PAGE_PROG         (0x0080)
#define NAND_CMD_PAGE_PROG_CONFIRM (0x0010)
#define NAND_CMD_ERASE             (0x0060)
#define NAND_CMD_ERASE_CONFIRM     (0x00D0)
#define NAND_CMD_READID            (0x0090)
#define NAND_CMD_RESET             (0x00FF)
#define NAND_CMD_READ_STATUS       (0x0070)

/***********************************************************/
/* Settings for NFC Config1 Register                       */
/***********************************************************/
#define NFC_CONFIG1_ECC_EN  (0x0008)
#define NFC_CONFIG1_SP_ONLY (0x0004)
#define NFC_CONFIG1_READ    (0x0000)
#define NFC_CONFIG1_WRITE   (0x0000)

/***********************************************************/
/* MACRO                                                   */
/***********************************************************/
#define NFC_BUSY  (!( _reg_NFC_NF_CONFIG2 & 0x8000 ))

#ifdef _STANDALONE_
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
#endif

void	nfc_block_lock(void);
void	nfc_block_unlock(u16, u16);

u32	nfc_read_spare(u16, u32*, u32*);
u32	nfc_read_page (u16, u32*, u32*);

u32	nfc_write_page (u16, u32*, u32*);

u32	nfc_erase(u16);

u32	nfc_readid(u32*);

void	nfc_init(void);

#endif /* __NFC_H_ */

⌨️ 快捷键说明

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