当前位置:首页 > 实用技巧 >

flash设置是否允许存储(flash本地储存点不动怎么办)

来源:原点资讯(www.yd166.com)时间:2023-11-13 13:52:57作者:YD166手机阅读>>

图 Nand Flash的地址周期组成


结合时序图的2,3阶段,我们可以看出,此nand flash地址周期共有4个,2个列(Column)周期,2个行(Row)周期。


而对于对应的,我们可以看出,实际上,列地址CA0~CA10,就是页内地址,11位地址范围是从0到2047,即2K,而多出的A11,理论上可以表示2048~4095,但是实际上,上述规格书中说明当CA11为1时,CA【10:6】都必须为0,所以我们最多也只用到了2048~2112,用于表示页内的oob区域,其大小是64字节。


PA0~PA5,称作页号,页的号码,可以定位到具体是哪一个页。由6个位控制,最多寻址64页,符合规格书中的一块有64页。


而其中,BA6~BA15,表示对应的块号,即属于哪个块,有10个位控制,寻址范围为1024个块。


// 可见:地址的传输顺序是是 页内地址,页号,块号。从小到大。

简单解释完了地址组成,那么就很容易分析上面例子中的地址了:

0x7D0CCB8 = 0111 1101 0000 1100 0000 1100 1011 1000,分别分配到4个地址周期就是:

1st 周期,CA7~CA0 :1011 1000 = 0x B8

2nd周期,CA11~CA8 :0000 1100 = 0x 0C

3rd周期,BA7~PA0 :0000 1100 = 0x 0C

4th周期,A27~A20 :0111 1101 = 0x 7D


注意,上图图中对应的,*L,意思是低电平,由于未用到那些位,datasheet中强制要求设为0,所以,才有上面的2nd周期中的高4位是0000.。因此,接下来要介绍的,我们要访问第1000个块中的第25页中的1208字节处的话,所要传入的地址就是分4个周期,分别传入2个列地址的:0xB8,0x0C,然后再传2个行地址的:0x0C,0x7D,这样硬件才能识别。


4.读操作过程的解释

flash设置是否允许存储,flash本地储存点不动怎么办(13)

准备工作终于完了,下面就可以开始解释说明,对于读操作的,上面图中标出来的,1-6个阶段,具体是什么含义。

(1) 操作准备阶段:此处是读(Read)操作,所以,先发一个图5中读命令的第一个阶段的0x00,表示,让硬件先准备一下,接下来的操作是读。


(2) 发送两个周期的列地址。也就是页内地址,表示,我要从一个页的什么位置开始读取数据。


(3) 接下来再传入三个行地址。对应的也就是页号。


(4) 然后再发一个读操作的第二个周期的命令0x30。接下来,就是硬件内部自己的事情了。


(5)Nand Flash内部硬件逻辑,负责去按照你的要求,根据传入的地址,找到哪个块中的哪个页,然后把整个这一页的数据,都一点点搬运到页缓存中去。而在此期间,你所能做的事,也就只需要去读取状态寄存器,看看对应的位的值,也就是R/B#那一位,是1还是0,0的话,就表示,系统是busy,仍在”忙“(着读取数据),如果是1,就说系统活干完了,忙清了,已经把整个页的数据都搬运到页缓存里去了,你可以接下来读取你要的数据了。


对于这里。估计有人会问了,这一个页一共2048 64字节,如果我传入的页内地址,就像上面给的1028一类的值,只是想读取1028到2011这部分数据,而不是页开始的0地址整个页的数据,那么内部硬件却读取整个页的数据出来,岂不是很浪费吗?答案是,的确很浪费,效率看起来不高,但是实际就是这么做的,而且本身读取整个页的数据,相对时间并不长,而且读出来之后,内部数据指针会定位到你刚才所制定的1208的那个位置。


(6) 接下来,就是“窃取“系统忙了半天之后的劳动成果的时候了,呵呵。通过先去Nand Flash的控制器中的数据寄存器中写入你要读取多少个字节(byte)/字(word),然后就可以去Nand Flash的控制器的FIFO中,一点点读取你要的数据了。


至此,整个Nand Flash的读操作就完成了。

对于其他操作,可以根据上面的分析,一点点自己去看datasheet,根据里面的时序图去分析具体的操作过程,然后对照代码,会更加清楚具体是如何实现的。


flash设置是否允许存储,flash本地储存点不动怎么办(14)

NAND FLASH 搭配NOR FLASH的优缺点


flash设置是否允许存储,flash本地储存点不动怎么办(15)


常见的应用组合就是,用小容量的Nor Flash存储启动代码,比如uboot,系统启动后,初始化对应的硬件,包括SDRAM等,然后将Nand Flash上的Linux 内核读取到内存中,做好该做的事情后,就跳转到SDRAM中去执行内核了。


这样的好处是由于NAND 本身有坏块的可能性,所以为了保障启动万无一失,很多要求高级安全的产品,标注必须从NOR Flash启动uboot,而且从NOR启动还有一个好处就是启动速度快,NAND Flash的优点是容量大,但是读取速度不快,比不上NOR Flash,比如一些对于开机速度有要求的产品应用,比如车载液晶仪表,这类产品为了快速启动一般都是NOR FLASH EMMC的配置,当然像赛普拉斯平台直接上hyperflash那就更快了。


flash设置是否允许存储,flash本地储存点不动怎么办(16)

栏目热文

flash为什么粘贴到当前位置不能用(flash中为什么不能添加形状提示)

flash为什么粘贴到当前位置不能用(flash中为什么不能添加形状提示)

  苹果、微软、谷歌等大公司都无情地抛弃了flash player,但以前flash player装机量巨大,很多用fl...

2023-11-13 13:52:16查看全文 >>

flash设置本地存储老是弹出允许(flash怎样设置自动保存)

flash设置本地存储老是弹出允许(flash怎样设置自动保存)

谷歌浏览器69之后的版本,因为flash存在安全隐患问题,对flash做了严格限制,所以每次打开都会提示是否允许使用fl...

2023-11-13 14:14:23查看全文 >>

win8.1安装哪个版本的cad(win8能下载哪个版本的cad)

win8.1安装哪个版本的cad(win8能下载哪个版本的cad)

挑选AutoCAD的基本产品逻辑:从最新版本往下看,如果一个最新版本的特性对你来说不可或缺,那这个版本就是你的底线版本。...

2023-11-13 13:58:21查看全文 >>

win10激活不了cad2013(win10cad2013注册机打不开)

win10激活不了cad2013(win10cad2013注册机打不开)

许多人CAD激活不成功,每天都在倒数的天数让人心焦急,一次次注册却总是不成功,除了常规步骤还要注意哪些要点呢,干货来了!...

2023-11-13 14:14:04查看全文 >>

win10安装cad总是重新激活(win10系统怎么激活不了cad)

win10安装cad总是重新激活(win10系统怎么激活不了cad)

问题描述如下:启动AuotCAD软件后,出现激活界面,无法选择单用户或者多用户选项,有时输入序列号会提示序列号无效。此错...

2023-11-13 14:06:14查看全文 >>

flash设置不能保存(flash中心设置为何不能保存)

flash设置不能保存(flash中心设置为何不能保存)

写在前面今天来说一说如何快速的建立起初步的个人网络安全保护问题。简单的来说,在没有“贼惦记”的情况下,通常有两件事情是第...

2023-11-13 14:06:33查看全文 >>

怎么更改flash的存储位置(flash怎么恢复初始面板)

怎么更改flash的存储位置(flash怎么恢复初始面板)

STM32 内部FLASH概述今天说一下STM32中的内部Flash。当我们把写好的代码下载MCU中,这个代码时存放在f...

2023-11-13 14:14:36查看全文 >>

flash怎么存储本地(如何改变flash储存位置)

flash怎么存储本地(如何改变flash储存位置)

  Flash2X EXE Packager是一款把Flash、FlV格式转换到EXE文件的程序。Flash2X EXE...

2023-11-13 14:04:34查看全文 >>

flash默认保存位置(flash怎么打开本地文件夹)

flash默认保存位置(flash怎么打开本地文件夹)

太长不看版2020年5月28日更新日志极为方便的CSGO跑图工具,分享给大家2020年5月28日CSGO更新日志翻译:M...

2023-11-13 14:00:50查看全文 >>

欧洲十大最强队标排名(欧洲国家队射手榜历史前十)

欧洲十大最强队标排名(欧洲国家队射手榜历史前十)

近日,知名媒体442评选出了世界足坛历史上的百大经典队徽,来自德国的慕尼黑1860排名第一,广州队排名第44位。442在...

2023-11-13 14:15:15查看全文 >>

文档排行