JZ2440 裸机驱动 第8章 NAND Flash控制器








2.寄存器介绍
NFADDR = addr & 0xff
NFADDR = (addr >> ) & 0xff (左移9位,不是8位)
NFADDR = (addr >> ) & 0xff (左移17位,不是16位)
NFADDR = (addr >> ) & 0xff (左移25位,不是24位)
NFADDR
SECTIONS{
first 0x00000000:{head.o init.o nand.o}
second 0x30000000:AT(){main.o}
}
nand.lds
/*初始化NAND Flash*/
void nand_init(void)
{
#define TACLS 0
#define TWRPH0 3
#define TWRPH1 0 /*判断S3C2410还是S3C2440*/
if((GSTATUS1 == 0x32410000) || (GSTATUS1 == 0x32410002))
{
nand_chip.nand_reset = s3c2410_nand_reset;
nand_chip.wait_idle = s3c2410_wait_idle;
nand_chip.nand_select_chip = s3c2410_nand_select_chip;
nand_chip.nand_deselect_chip = s3c2410_nand_deselect_chip;
nand_chip.write_cmd = s3c2410_write_cmd;
nand_chip.read_data = s3c2410_read_data; /*使能NAND Flash控制器,初始化ECC,禁止片选,设置时序*/
s3c2410nand->NFCONF = ( << ) | ( << ) | ( << ) | (TACLS << ) | (TWRPH0 << ) | (TWRPH1);
}
else
{
nand_chip.nand_reset = s3c2440_nand_reset;
nand_chip.wait_idle = s3c2440_wait_idle;
nand_chip.nand_select_chip = s3c2440_nand_select_chip;
nand_chip.nand_deselect_chip = s3c2440_nand_deselect_chip;
nand_chip.write_cmd = s3c2440_write_cmd;
nand_chip.read_data = s3c2440_read_data; /*设置时序*/
s3c2440nand->NFCONF = (TACLS << ) | (TWRPH0 << ) | (TWRPH1 << );
/*使能NAND Flash控制器,初始化ECC,禁止片选*/
s3c2440nand->NFCONF = ( << ) | ( << ) | ( << );
} /*复位NAND Flash*/
nand_reset();
}
nand_init()
void nand_read(unsigned char *buf, unsigned long start_addr, int size)
{
int i, j; if((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)){
return; /*地址或长度不对齐*/
} /*选中芯片*/
nand_select_chip(); for(i = start_addr; i < (start_addr + size) ; ){
/*发出READ0命令*/
write_cmd(); /*Write Address*/
write_addr(i);
wait_idle(); for(j = ; j < NAND_SECTOR_SIZE; j++, i++){
*buf = read_data();
buf++;
}
} /*取消片选信号*/
nand_deselect_chip(); return;
}
nand_read()

附:代码:
JZ2440 裸机驱动 第8章 NAND Flash控制器的更多相关文章
- JZ2440 裸机驱动 第12章 I2C接口
本章目标: 了解I2C总线协议: 掌握S3C2410/S3C2440中I2C接口的使用方法: 12.1 I2C总线协议及硬件介绍 12.1.1 I2C总线协议 1 I2C总线的概念 2 I2C总线的信 ...
- JZ2440 裸机驱动 第6章 存储控制器
本章目标: 了解S3C2410/S3C2440地址空间的布局 掌握如何通过总线形式访问扩展的外设,比如内存.NOR Flash.网卡等 ························ ...
- 第8章 NAND FLASH控制器
8.1 NAND Flash介绍和NAND Flash控制器使用 NAND Flash在嵌入式系统中的地位与PC上的硬盘类似 NAND Flash在掉电后仍可保存 8.1.1 Flash介绍 有NOR ...
- JZ2440 裸机驱动 第14章 ADC和触摸屏接口
本章目标: 了解S3C2410/S3C2440和触摸屏的结构: 了解电阻触摸屏的工作原理和等效电路图: 了解S3C2410/S3C2440触摸屏控制器的多种工作模式: ...
- JZ2440 裸机驱动 第5章 GPIO接口
本章目标: 掌握嵌入式开发的步骤:编程.编译.烧写程序.运行 通过GPIO的操作了解软件如何控制硬件 5.1 GPIO硬件介绍 S3C2440A有130个多功能输入/输出口引脚 ...
- JZ2440 裸机驱动 第11章 通用异步收发器UART
本章目标: 了解UART原理: 掌握S3C2410/S3C2440中UART的使用 11.1 UART原理及UART内部使用方法 11.1.1 UART原理说明 UART用于传输串行数据: ...
- JZ2440 裸机驱动 第10章 系统时钟和定时器
本章目标 了解S3C2410/S3C2440的时钟体系结构 掌握通过设置MPLL改变系统时钟的方法 掌握在不同的频率下设置存储控制器的方法 掌握PWM定时器的用法 ...
- JZ2440 裸机驱动 第9章 中断体系结构
本章目标: 了解ARM体系CPU的7种工作模式 了解S3C2410/S3C2440中断体系结构 掌握S3C2410/S3C2440的中断服务程序的编写方法 9.1 S3C241 ...
- JZ2440 裸机驱动 第7章 内存管理单元MMU
本章目标: 了解虚拟地址和物理地址的关系: 掌握如何通过设置MMU来控制虚拟地址到物理地址的转化: 了解MMU的内存访问权限机制: 了解TLB.Cache.Write ...
随机推荐
- sql 数据库显示 正在恢复
问题原因:Sql Server 一直显示正在恢复.有事务未恢复或者还原数据库造成 处理办法: 步骤一:数据库上右键->任务->分离 步骤二:数据库上右键->任务->脱机 数据库 ...
- LD_PRELOAD的偷梁换柱之能
作者: net66 原创 本文网址:http://www.cnblogs.com/net66/p/5609026.html 发布日期:2015 年 06月 22日 一.LD_PRELOAD是什么 LD ...
- bzoj3332
题解: 首先只有存在的路有可能有值 然后在存储矩阵的同时对于本来就有边的情况直接存下来这条边的值 然后跑一次最大生成树 在最大生成树的同时就可以求出矩阵的信息. 代码: #include<bit ...
- C++中的接口继承和实现继承
很多人认为,C++中是不存在接口继承的,只有Java.C#这类语言才提供了相应的语法支持. 但是,如同鲁迅说过的某句名言:世上本没有接口继承,用的人多了,才有了接口继承.C++中依然可以实现接口继承, ...
- DevExpress v17.2新版亮点——CodeRush篇(一)
用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了CodeRush v17.2 的新功能,快来下载试用新版本! Unit Test ...
- DevExpress v17.2新版亮点—Analytics Dashboard篇(一)
用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了Analytics Dashboard v17.2 的新功能,快来下载试用新版本! ...
- MyEclipse WebSphere开发教程:WebSphere 8安装指南(二)
[周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] IBM为使用WebSphere测试应用程序的开发人员提供了免费的WebSphere Ap ...
- 解决:编辑一条彩信,附件选择添加音频,返回到编辑界面选择play,不能播放,没有声音
[操作步骤]:编辑一条彩信,附件选择添加音频(外部音频),返回到编辑界面选择play,菜单键选择view slideshow [测试结果]:不能播放,没有声音 [预期结果]:可以播放 根据以往的经验( ...
- Android 源码阅读之SMS,MMS
主界面: com.android.mms.ui.ConversationList.java [extends ListActivity] 点击新建信息:onListItemClick -〉 posi ...
- HDU 1592 Half of and a Half(大数)
Half of and a Half Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...