如何计算Nand Flash要传入的行地址和列地址
来源:互联网 发布:腾讯算法工程师待遇 编辑:程序博客网 时间:2024/06/05 12:46
转载自:http://www.cnblogs.com/geneil/archive/2011/12/17/2291441.html
在介绍具体读取数据的详细流程之前,还要做一件事,那就是,先要搞懂我们要访问的地址,以及这些地址,如何分解后,一点点传入进去,使得硬件能识别才行。 此处还是以 K9F8G08U0A 为例,此 Nand Flash,一共有 8192 个块,每个块内有 64 页,每个页是 2K+64 Bytes,假设,我们要访问其中的第 7000个块中的第 64 页中的 1208 字节处的地址,此时,我们就要先把具体的地址算出来: 物理地址 = 块大小×块号+页大小×页号+页内地址 =7000×128K+64×2K+1208 =0x36B204B8 接下来,我们就看看,怎么才能把这个实际的物理地址,转化为 Nand Flash 所要求的格式。在解释地址组成之前,先要来看看其datasheet 中关于地址周期的介绍:
结合图,我们可以看出,此 Nand Flash 地址周期共有 5 个,2 个列(Column),3个行(Row)周期,而对于对应地,我们可以看出,实际上,列地址 A0~A10,就是页内地址,地址范围是从0 到2047,而对出的 A11,理论上可以表示 2048~4095,但是实际上,我们最多也只用到了2048~2011, 用于表示页内的oob区域,其大小是 64 字节。对应地,A12~A30,称作页号,页的号码,可以定位到具体是哪一个页。而其中,A18~A30,表示对应的块号,即属于哪个块。 简单解释完了地址组成,那么就很容易分析上面例子中的地址了: 0x36B204B8 = 0011 0110 1011 0010 0000 0100 1011 1000,分别分配到5个地址周期就是: 1st周期,A7~A0: 1011 1000 = 0xB8 2nd周期,A11~A8: 0000 0100 = 0x04 3rd周期,A19~A12: 0010 0000 = 0x20 4th 周期,A27~A20: 0110 1011 = 0x6B 5th 周期,A30~A28: 0000 0011 = 0x03 注意,与图中对应的*L,意思是地电平,由于未用到那些位,datasheet中强制要求设为0,所以,才有上面的2nd周期中的高4位是0000.其他的A30之后的位也是类似原理,都是 0。 因此,接下来要介绍的,我们要访问第 7000 个块中的第 64 页中的 1208 字节处的话,所要传入的地址就是分 5 个周期,分别传入两个列地址:0xB8,0x04,然后再传3个行地址:0x20,0x6B,0x03,这样硬件才能识别。
- 如何计算Nand Flash要传入的行地址和列地址
- 如何计算Nand Flash要传入的行地址和列地址
- 关于Nand Flash行地址和列地址的计算
- 计算NandFlash要传入的行地址和列地址
- NAND FLASH 型号:(补充)地址计算
- Nand Flash 地址周期
- nand flash地址机制
- nand flash地址机制
- 关于nand flash的地址 A8寻址
- K9F2G08U0C NAND FLASH 的地址分析
- 内核kernel以及根文件系统rootfs是如何映射到对应的nand FLASH地址的
- 关于单片机XBYTE和NAND FLASH地址问题综述
- 数组的行地址、列地址和指针的应用
- 关于nand flash的地址 A8,寻址,忽略。
- NAND的行列地址
- 内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的地址的
- 内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的地址的
- Nand Flash 地址数据的确定
- 学习笔记-服务器虚拟化
- CentOS6 安装 CodeBlocks
- 【D3.js数据可视化系列教程】--(一)简介
- java访问SQLServer2008数据库方式一:jdbc-odbc桥连接
- linux启用触摸板功能
- 如何计算Nand Flash要传入的行地址和列地址
- NSLog的格式
- 问题10:还是单链表的一些问题(如单链表,怎样只遍历一次就可以求出中间结点)
- CUDA编程札记
- webService
- hdu 1151 Air Raid 最小路径覆盖(最大匹配)
- 动态规划--UVa10891
- gui 打字游戏
- ImageView