NandFlas的规范程序代码.docVIP

  • 6
  • 0
  • 约2.6万字
  • 约 8页
  • 2017-03-06 发布于贵州
  • 举报
NandFlas的规范程序代码

nandflash裸机驱动程序的分析 nandflash在嵌入式设备中广泛的应用,学些nandflash的重要性不言而喻,这里分析一段实例代码,不管是编码规范还是程序的结构都是很有价值的。下边是K9F1208U0M的实例代码。 首先看nand.h文件: #ifndef __NAND_Flash__ #define __NAND_Flash__ extern void InitNandCfg void ; //初始化K9F1208UOM NAND flash 配置 extern unsigned int ReadChipId void ; //读取NAND Flash的ID号 extern unsigned short ReadStatus void ; //读取NAND Flash的状态 extern unsigned int EraseBlock unsigned int addr ; //NAND Flash块擦除 extern void ReadPage unsigned int addr, unsigned char *buf ; //K9F1208U0M nand flash 的页数据读 extern void WritePage unsigned int addr, unsigned char *buf ; //K9F1208U0M nand flash 的页数据写 extern void MarkBadBlk unsigned int addr ; //屏蔽 K9F1208U0M nand flash 的坏块 extern int CheckBadBlk unsigned int addr ; //检查 K9F1208U0M nand flash 的坏块 extern void InitNandFlash void ; //K9F1208U0M nand flash 的初始化 #endif 需要详细看的是nandflash.c文件: // // 常量定义区 // #define EnNandFlash rNFCONF | 0x8000 //bit15 1 enable NAND flash controller #define DsNandFlash rNFCONF ~0x8000 //bit15 1 disable NAND flash controller #define InitEcc rNFCONF | 0x1000 //bit12 1 initialize ECC #define NoEcc rNFCONF ~0x1000 //bit12 0 initialize ECC #define NFChipEn rNFCONF ~0x800 //bit11 0 NAND flash nFCE L active #define NFChipDs rNFCONF | 0x800 //bit11 1 NAND flash nFCE H inactive #define WrNFCmd cmd rNFCMD cmd //write commond to nand flash #define WrNFAddr addr rNFADDR addr //write address to nand flash #define WrNFDat dat rNFDATA dat //write data to nand flash #define RdNFDat rNFDATA //read data from nand flash #define RdNFStat rNFSTAT //read status from nand flash #define NFIsBusy ! rNFSTAT1 //whether nand flash is busy? #define NFIsReady rNFSTAT1 //whether nand flash is ready? #define READCMD0 0 //Read0 model command Page addr 0~127 #define READCMD1 1 //Read1 model command Page addr 128~511 #define READCMD2 0x50 //Read2 model command Page addr 512~527 #define ERASECMD0 0x60 //Block eras

文档评论(0)

1亿VIP精品文档

相关文档