#define dis_select_nand() ( rNFCONT |= 1<<1 )
#define controller_enable() ( rNFCONT |= 1 )
#define controller_disable() ( rNFCONT &= ~1 )
void nand_flash_init(void); //初始化
void nand_read_id(void);
extern int nand_block_erase(U32 num); //num要删除的块号
extern int nand_page_write(U32 addr,U8 *buffer,U32 size); //addr要写的起始页地址,buffer要写的缓存,size要写的字节大小最大为4G
extern int nand_page_read(U32 addr,U8 *buffer,U32 size); //addr开始页地址,从每页00地址开始读
extern int nand_random_read(U32 paddr,U32 offset,U8 *data); //随机读数据 paddr页地址,offset页内偏移地址
extern int nand_random_write(U32 paddr,U32 offset,U8 data); //随机写,paddr页地址,offset页内区最后一个地偏移地址
extern void nand_test_bad_block(void); //测试坏块函数,并标记在nand_bbi变量里和spare里(如果非0xff则为坏块)
注:如需使用我们的nand flash 只修改如上红色部分所示的厂商ID,设备ID。