s3c2440a裸奔4之nandflash控制器2.pdf

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
s3c2440a 裸奔 4 之 NAND FLASH 控制器 2 实验程序实现以下功能: 1. 开机蜂明器快响几声标志开机成功 2. 将 NAND FLASH 擦除 3. 分别将三个数组中的数据写入 FLASH 中 4. 等待按键识别(按键按下蜂名器发出响声) 5. 操作不同的按键 MCU将从FLASH中不同的地址读取不同的数 据,作为 LED 显示用数据 注:主程序所引用的基础性库文件就不在这里列出 (1) nandflash.h 文件 #include “2440addr.h” #define cmd_read1 0x00 //页读命令周期 1 #define cmd_read2 0x30 //页读命令周期 2 #define cmd_readid 0x90 //读 NAND FLASH ID 命令 #define cmd_reset 0xff //命令 NAND FLASH 重起 #define cmd_page_write1 0x80 //页写命令周期 1 #define cmd_page_write2 0x10 //页写命令周期 2 #define cmd_block_erase1 0x60 //块擦除命令周期 1 #define cmd_block_erase2 0xd0 //块擦除命令周期 2 #define cmd_readstatus 0x70 //读状态命令 #define cmd_readrandom1 0x05 //随意读命令周期 1 #define cmd_readrandom2 0xe0 //随意读命令周期 2 #define cmd_writerandom 0x85 //随意写命令 #define NF_CMD(data) {rNFCMD=(data);} //操作 NANDFLASH 的命令语句 #define NF_ADDR(addr) {rNFADDR=(addr);} //传输地址 #define NF_RDDATA(); (rNFDATA) //读 32 位数据 #define NF_RDDATA8(); (rNFDATA8) //读 8 位数据 #define NF_WRDATA(data) {rNFDATA=data;} //写 32 位数据 #define NF_WRDATA8(data) {rNFDATA8=data;} //写 8 位数据 //rNFCONT 寄存器 #define NF_CE_L() {rNFCONT=rNFCONT(~(11));} //打开 nandflash 片选 #define NF_CE_H() {rNFCONT=rNFCONT|(11);} //关闭 nandflash 片选 #define NF_RESETECC() {rNFCONT=rNFCONT|(14);} //ECC 初始化 s3c2440a 裸奔 4 之 NAND FLASH 控制器 2 #define NF_MECC_LOCK() {rNFCONT=rNFCONT|(15);} //锁定 MAIN ECC #define NF_MECC_UNLOCK() {rNFCONT=rNFCONT(~(15));} //开锁MAIN ECC #define NF_SECC_LOCK() {rNFCONT=rNFCONT|(16);} //锁定 SPARE ECC #define NF_SECC_UNLOCK() {rNFCONT=rNFCONT(~(16));} //开锁 SPARE ECC //rNFSTAT 状态寄存器 #define NF_WAITRNB()

文档评论(0)

wx171113 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档