ARM9之NAND FLASH总结

/*author----->Armking*/

/*data----->2008年9月2*/

/*ps:本人总结,备于日后查阅,如若转载,请注明出处*/

/*QQ:382750150*/

写于篇头:

终于又开始接着学习了,只是不知道为什么JTAG又连不上目标板了,如果谁不小心看到了此文章,又凑巧知道了是什么原因,请留言赐教,不胜感激。

关于NAND FLASH很详细的内容,肯定无需在此多做说明,只要有电脑,baidu,google一天不垮台,都可以查阅到很多相关的资料。最最最权威的还是官方的手册,比如说我用的就是S3C2440这个板子,而这个板子上配的NAND是K9F1208,三星公司的,可以去它的官网下载即可。

下图为手册上的管脚图和管脚功能表,可能一开始搬这些东西出来觉得很枯涩,我也觉得这样,不过我是总结之用,无所谓了

各位看客的英语肯定比俺好,几个类似于power这样的E文,随便啃肯定没问题!

下面这个图是NAND FLASH的功能图,有点吓人的功能图

 

下面我先来剖析NAND FLASH的物理结构:

 

上图就是NAND FLASH的物理层结构,其实上图画的比较形象,比较生动

大致意思是这样的:

一个NAND FLASH存储器是由很多快组成的,很多是多少?4096块(就本人所用而言,K9F1208)

4096块中的1块又由很多页组成,多少页?32页

32页中的1页又由什么组成呢?就是由512+16字节组成(为什么要写成512+16

其实说白了就是528字节,但是是由512的主数据区和16的额外数据区组成的,所以如是。

那我掰开手指算算容量有多大?

1个NAND FLASH容量=4096(块)*32(页)*528(字节)*8(位)=528Mbit(以位为单位算的)

既然是FLASH肯定要与外界交流,如何交流,看上图,发现有IO 0~IO7,不错,就是用这8位来交流的。

刚才算的容量是528Mbit,也就是有64M的空间了,也就是说需要26位地址传送了,可是只有8根IO怎么办啊

这样就形成了NAND FLASH交流的独特性,不管你要干什么,首先发送命令,当然命令也是通过IO传送的,命令传送完毕了,再发送4个地址序列(为什么是4个?,26位要IO来传,分4次才行啊),最后才是必要的校验。

看到上面图是不是有2个方块,下面那个,用E文写着:page regsiter,这又是干什么的啊?

其实NAND访问并非直接通过里面的存储物理层,而是有一个专门的页寄存器来管理,不管你是读,是写,都要首先通过page regsiter,这回我晕晕的脑袋稍微好些了。

上面讲到过需要26位才能寻址到64M啊,我的妈亚,我的家家亚,这么多,叫IO0~IO7怎么吃得消啊,所以说才有地址序列的说法啊,但是地址序列又是如何对应的呢?由于NAND FLASH的结构分的很细,又有什么块啊,页啊,字节啊,所以说这个26位地址的本质就是如何区分这个的!

因此就有了A0~A7是页内寻址,也叫列寻址,也就是528字节寻址,我寻啊寻啊,不对劲啊,A0~A7才8位,匝地就能寻528啊,不是只能寻256吗?貌似有道理,请往下看.....

A9~A25是用来进行页寻址的,也叫行寻址,刚不是算了,4096块*32页=131072页,用A9~A25就可以搞定这么多页了,不信你算算。

客官看出来了没?发现A8怎么溜了?难道生气不干了?没这回事,它在偷偷的工作,默默无为的那种,象俺

A8是由里面的某个硬件电路根据相关的命令而置为1或者0,这不用我们操心,但我们要理解

比如说我喊话了说要寻址0~255字节,敢情好啊,这样的话8位IO肯定搞定了,对头!这时候我们聪明的硬件电路就会把A8置为0,不需要它了。

又比如说我喊话了要寻址第484字节啊,这么多啊,8位抗不住啊,对,这时候硬件电路就会把A8叫上,一起协助你,完成所谓的第484个字节寻址.484的二进制是111100100,需要9为才行,其实A8此时就充当第9位,其余8位还是由IO完成的,这样就可以完成528字节内的任何寻址了!

基于以上可知,A9~A25是进行多达上万页寻址的,其实还可以细分的,A9~A13是块内的32页寻址,正好5位,2的5次方=32,一块由32页组成,多好啊。

A14~A25是用于寻块的,前面说了,4096块,自己掰开手指算算吧。

其实A14~A25还可以细分,不过必须先了解个概念才行,知道什么是plane吗?

NO!我说的不是飞机!

其实NAND FLASH还被组织成一种形式,就是把整个NAND FLASH分成四个层(plane),每层1024块,每层里还有个528字节的页寄存器,组织形式看下图:

 

 

所以说的话,A14~A15是用于plane寻址的,正好4种情况。其余的用于1024块寻址。

对于基本的物理结构就是如上的,其实是总结之用,请勿嘲笑,欲知详细,请查阅文档,OK?

以下是基于程序分析的

本次实验的思路是将一些启动代码,初始化代码放在NAND 0~4K的空间内,把主函数放在4096字节后,那些启动代码,初始化代码负责将4096后的主函数copy到0x30000000的地址空间,然后跳转执行主函数即可。

程序在此就不必写出来了,重在整理思路

在head.S里主要需要关掉watch_dog,调用sdram初始化函数,调用nand初始化函数,调用nand的复制函数(也就是读函数,复制到0x30000000),最后跳转到0x30000000处

nand在使用前,需要进行简单的配置,比如说设置时序,2440在NFCONF里面设置,ECC初始化,片选,控制器使能,在NFCONT设置,最后再复位下nand flash即可。

nand的读需要注意,只用到了低8位,而且读的时候,需要注意控制字节数,因为如果从A区或者C区读取,它会一直的紧接着从下一页的A区或者C区读取,如果是B区,就会在下一页从A区开始读取了,一定要记得判断是否准备好,检测状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】SD-WAN,到底是什么*****

作为一个热门概念,SD-WAN近年以来频繁地出现在我们的视野当中。 很多人说,它是未来最具发展潜力的通信技术之一,极具商业价值。 行业里的老牌通信设备商和运营商对它一致看好,新兴创业企业也把它视为千载难逢的风口机遇&#xff0…

ffmpeg 截图太模糊了_PPT图片模糊?导师说放大!

今日分享图片智能放大●●●●重庆大学PPT图片太模糊了,要用原图!放大,放大导师如是说,小硕表示,图片本就这样这咋办?不愁,稳住接着看在做PPT时还是做论文时想用某张图片,但是直接拉…

【转】全了!临港四镇最新对口地段小学,中学都在这里,看看你的孩子能读哪个学校

临港的家长们关于自己的孩子就读哪个学校,家长们一直都很关心和关注,每个家长对孩子的教育很是重视,有部分家长买临港的房子就冲着学区去的,临港的优质教育资源一直是被居民所称赞的,学校也没家长失望,个别…

【转】Azure Az-900认证 04——-考取AZ900所有知识点总结--获取证书!

结合最近所做的模拟题,把一些容易考的知识和概念重新回顾记录一下。标红的字要注意一下,有可能这几个简单的字,就是最能概括这个概念的关键点,个人在回顾的时候把这些点红色标出来了,会在题干中以不同的案例形式来考察…

怎么用vc采集ni卡数据_8bit,200MS/s 低成本模拟输入高速采集卡FCFR-PCI9850

FCFR-PCI98508bit,200MS/s 低成本模拟输入高速采集卡FCFR-PCI9850(简称PCI9850)是低成本高速数字化化仪,AD分辨率8bit,AD采样率200MS/s,硬件FIFO缓存32M字节,采集卡支持50MS/s的高速连续采集,触…

S3C6410启动模式介绍

目前的ARM处理器都支持多种启动模式,S3C6410和以前的Samsung的ARM处理器一样,通过外部管脚OM[4:0]的拉高拉低来决定是从哪个存储设备上启动。我认为S3C6410的User Manual并没有说的很清楚,所以我在最开始使用的时候,也对其启动模式…

如何用木板做桥_如何辨别使用的公园椅是否需要保养

如何辨别使用的公园椅存在哪些问题新城市公园椅小编与您分享,每一项事物都会有它的使用寿命,公园椅也不例外。公园椅使用有几年后后,我们通过公园椅的哪些表现来发现公园椅存在哪些隐患呢?通过观察、触摸、按压这三种方式来发现公…

c语言删除文件remove_Python中的文件和目录操作

对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数。重要的是,这些函数无论是在Unix、Windows还是Macintosh平台上,…

漏洞:Client ReDos From Regex Injection

漏洞描述: 扫描漏洞如下:代码: // In IE6, the hash fragment and search params are incorrect if the // fragment contains ?. getSearch: function() { var match this.location.href.replace(/#.*/, ).match(/\?./); …

WinCE Boot方式及 Bootloader架构概述

Bootloader的概念就是一个用于引导的loader,在系统上电的时候最先被运行,然后对硬件平台做最基本的初始化,最后把操作系统加载起来。不同的嵌入式操作系统都有自己的Bootloader,但是本质功能都是一样的。 在WinCE中用的最多的就是…

静物摄影用光技巧_摄影技巧:摄影如何用光?摄影大师总结的10点,非常受用!...

点击上方蓝字关注「摄影技巧入门教程」ID:sheying116找到右上角点击?... 设为星标/置顶 丨摄影技巧丨丨摄影入门丨丨摄影教程丨丨摄影图片丨摄影技巧:光线的运用在摄影中至关重要,但很多摄影新手却不知道该如何用光,今天我们就来…

Python如何创建相同值的数组/列表

题目要求 现在有这样的一个需求:创建一个数组或列表,列表中的所有值是相同的。 解决方法 找到两种解决方法,第一种是使用Python的基础语法,第二种是借助numpy包提供的函数实现。分别为大家进行介绍。 方法一:使用P…

【转】肺小结节就诊指南:4种CT的区别及如何选择?

又到医院体检的季节,胸外科医师又要忙着给本院同事看片子了。目前体检查出的早期肺癌越来越多,主要归功于CT检查的普及,相较于X-ray胸片,CT对肺内小结节,特别是小于1cm的结节诊断率更高。因此,要提高早期肺…

CTL_CODE说明

我们在说DeviceIoControl函数时其第二个参数dwIoControlCode就是由CTL_CODE宏定义的,下边我们可以了解一下CTL_CODE的内容。CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成:DeviceType(设…

修改Linux主机名和IP

问题描述 又到了例行的系统安全测试时间,公司部署的一套系统需要做安全测试了,首先要做主机渗透,显然不可能在正式环境直接测,于是就把几台服务器做了个镜像,作为测试环境。 现在问题是,测试环境的ip要修…

可以获得索引值码_搜索引擎优化最适合什么样子的工作?

有些人一直在学习搜索引擎优化,并一直想学习搜索引擎优化。这里是一个关于搜索引擎优化职位的简要介绍。1、 搜索引擎优化的位置是什么?随着电子商务产业的发展,搜索引擎优化的地位越来越重要。它主要负责优化网页的自然排名,这与…

【转】医学图像之DICOM格式解析

最近导师给安排了新任务,由于刚进入实验室,对于医学图像这一块还一知半解,所以就想分享一下有关医学常见影像的学习资料(尤其是dicom后缀的图像文件),欢迎大家一起交流。 目录 1.医学影像学的介绍 2.DICOM信息的简介 3.DICOM内…

多元有序logistic回归分析_一文详述:观察性研究中的logistic回归分析思路

本文内容来自《中华流行病学杂志》2019年第40卷第8期,作者为冯国双教授,原题目为《观察性研究中的logistic回归分析思路》。将这篇文章分享给医咖会的伙伴们,希望大家能从领域大咖的见解中有所收获,指导医学研究之路。&#xff08…

【转】禁用Chrome和Firefox中自动播放的动画GIF

动画GIF已经腐臭,并且在浏览时自动播放时可能会非常烦人。以下是如何阻止他们在Chrome和Firefox中自动播放。 禁用动画GIF Firefox 在地址栏中输入: about:config,然后按Enter。如果“这可能会使您的保修信息失效,请点击&#…

Python:Sklearn概述

文章来源:https://blog.csdn.net/algorithmPro/article/details/103045824 Sklearn (全称 Scikit-Learn) 是基于 Python 语言的机器学习工具。它建立在 NumPy, SciPy, Pandas 和 Matplotlib 之上,里面的 API 的设计非常好,所有对象的接口简单…