1 / 2
文档名称:

NAND flash.doc

格式:doc   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

NAND flash.doc

上传人:fy5186fy 2015/5/19 文件大小:0 KB

下载得到文件列表

NAND flash.doc

文档介绍

文档介绍:在s3c2410处理器中有专门的NAND flash控制器,他们位于SFR区,具体可以参看s3c2410用户手册。以下的这些代码均可以在vivi或者kernel里面找到。在vivi中,有关NAND flash的驱动都在driver/mtd/nand/下,该目录中包含的源文件: flash的主要驱动。 NAND flash 芯片定义了一个很长的结构,这个结构中包含了操作NAND flash的函数和一些必要的变量(include/mtd/)。
struct nand_chip {
#ifdef CONFIG_MTD_NANDY /* =y */
void (*hwcontrol)(int cmd); void (*write_cmd)(u_char val); void (*write_addr)(u_char val); u_char (*read_data)(void);
void (*write_data)(u_char val);
void (*wait_for_ready)(void); int page_shift;
u_char *data_buf;
u_char *data_cache;
int cache_page; struct nand_smc_dev *dev; u_char spare[SMC_OOB_SIZE]; #else /* CONFIG_MTD_NANDY */
……
#ifdef
u_char ecc_code_buf[6];
u_char reserved[2]; #endif
#endif /* CONFIG_MTD_NANDY */
};
纵观对NAND flash的各种操作(read、write、erase),无外乎如下几种操作:
nand_select()
mand()
read,write……
flash nand_deselect() 下面是以上四步的实现代码:
1、选择NAND flash
#define nand_select() this->hwcontrol(NAND_CTL_SETNCE); \
mand(mtd, NAND_CMD_RESET, -1, -1); \ udelay (10);
hwcontrol(NAND_CTL_SETNCE)的作用是设置2410的NAND FLASH CONFIGURATION (NFCONF) REGISTER的NAND Flash Memory chip enable位为0,这位寄存器在自动重启后就被系统自动清零。如果要访问NAND flash的内存,这位必须置1。 mand(mtd, NAND_CMD_RESET, -1, -1);向flash发送命令,此命令为reset,即为重置NAND flash。
然后是10us的延迟,给flash个反应时间。
2、发送命令
mand()。NAND flash的命令有如下几种:命令命令值描述
NAND_CMD_READ0 0 读操作 NAND_CMD_READ1 1 读操作
NAND_CMD