nand flash 的编程细节

TQ2440开发板nand flash升级为512M的方法 详细的介绍了TQ2440开发板nand flash升级为512M的方法和步骤,讲解了升级时的硬件修改和注意事项以及测试方法。 立即下载

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=823970&bbs_id=1000

 

我写三星K9G4G08U0A 4G   NAND FLASH 存储器驱动时,发现读写(以page为单位),擦除(以block为单位)地址不好确定呀..

网上有528byte/page    NAND Flash的地址可表示为:
“Block Address|Page Address in block|halfpage pointer|Column Address
地址传送顺序是Column Address,Page Address,Block Address。
由于地址只能在I/O[7:0]上传递,因此,必须采用移位的方式进行。
例如,对于512Mbit x8的NAND flash,地址范围是0~0x3FF_FFFF,只要是这个范围内的数值表示的地址都是有效的。
以NAND_ADDR为例:
第1步是传递column address,就是NAND_ADDR[7:0],不需移位即可传递到I/O[7:0]上
而halfpage pointer即bit8是由操作指令决定的,即指令决定在哪个halfpage上进行读写,
而真正的bit8的值是don't care的。
第2步就是将NAND_ADDR右移9位,将NAND_ADDR[16:9]传到I/O[7:0]上
第3步将NAND_ADDR[24:17]放到I/O上
第4步需要将NAND_ADDR[25]放到I/O上
因此,整个地址传递过程需要4步才能完成,即4-step addressing。
如果NAND Flash的容量是256Mbit以下,那么,block adress最高位只到bit24,因此寻址
只需要3步。


那么对2k大页面K9G4G08U0A 怎么确定任意一个page,block地址呢, 数据手册里说明用五个字节表示,前两个字节为Column Address,
后三个字节是Row Address,可是没有说明地址具体怎么分配?
请高手指点

------------------------------------

搜到这的这里。觉得之前对我有点帮助,所以才回来回复的。
现在我基本明白了nand flash是如何读写的。
回答你的问题:
拿我这个是 samsung的nand flash
型号是K9K8G08U0A,大小是1G的,8bit的
来说明。
具体其datasheet你可以到网上下载。
按照其说明,一共有

8,448Mbit(8,858,370,048 bit)=524,288 rows(pages) X 2,112x8 columns
其中x8是因为这个是8bit的nand flash
也就是一共524288行,2112列。

具体参数

1 Block = 64 Pages
(128K + 4k) Byte

1 Page = (2K + 64)Bytes
1 Block = (2K + 64)B x 64 Pages
= (128K + 4K) Bytes
1 Device = (2K+64)B x 64Pages x 8,192 Blocks
= 8,448 Mbits

一个chip共512K Pages
(=8,192 Blocks)

具体访问时的顺序:

      I/O 0   1   2   3    4   5   6   7
1st Cycle A0 A1 A2 A3   A4 A5 A6 A7                Column Address
2nd Cycle A8 A9 A10 A11 *L *L *L *L                Column Address
3rd Cycle A12 A13 A14 A15 A16 A17 A18 A19                Row Address
4th Cycle A20 A21 A22 A23 A24 A25 A26 A27                Row Address
5th Cycle A28 A29 A30 *L *L *L *L *L                Row Address

所以,

对于page,和block的地址,就很好确定了。
只需要在函数中将传入的参数要读/写的地址,函数中用page表示,除以页的大小pagesize,就是要访问的真正的页数了
将地址除以block的大小,也就是要访问的block数了。

对于读写需要的是行和列的地址,也就是:
行=page数
列=0x00
就可以找到对应的page,然后进行编程了。

每次送进去行和列之后,按照上面描述的,前两次传列地址,后三次传行地址就可以了。

说得很乱,没看懂的话,有空一起讨论 green-waste@163.com

---------------------------------------

上面的列写错了
列地址=传入地址 & (pagesize-1)

代码中的例子,如
col = from & (mtd->oobblock - 1);
其中col是列地址
from是传入的地址,从哪里开始读的地址
mtd->oobblock 等于pagesize,比如我这个nand flash的页大小是2KB,
2KB = 0x800
0x800-1=0x7FF

详见:uboot源码中的 /drivers/nand/nand_base.c 中的nand_read_ecc()

其实列地址页就是页内的偏移量,页内地址

有空可以看看这个帖子:
MTD原始设备与FLASH硬件驱动的对话
http://www.cnitblog.com/luofuchong/archive/2007/09/04/32939.html
http://www.cnitblog.com/luofuchong/archive/2007/08/31/32682.html

 

NAND_Flash中文版资料.pdf 一. 简介 ----------------------------------------------------------------------------------- 1 二. NAND Flash与NOR Flash的区别 -------------------------------------------- 1 三. NAND Flash存储器结构描叙 --------------------------------------------------- 4 四. 备用单元结构描叙 ---------------------------------------------------------------- 6 五. Skip Block method(跳过坏块方式) ------------------------------------------ 8 六. Reserved Block Area method(保留块区域方式)----------------------------- 9 七. Error Checking and Correction(错误检测和纠正)-------------------------- 10 八. 文件系统 ------------------------------------------------------------------------------10 九. 使用ELNEC系列编程器烧录NAND Flash -------------------------------- 10 十. Invalid Block Management drop-down menu -------------------------------- 12 十一. User Area Settings3 -------------------------------------------------------- 13 十二. Solid Area Settings --------------------------------------------------------- 15 十三. Quick Program Check-box ---------------------------------------------- 16 十四. Reserved Block Area Options --------------------------------------------17 十五. Spare Area Usage drop-down menu ------------------------------------18 立即下载

相关推荐

auto.js梦幻西游游戏脚本,梦幻西游脚本开发思路

本篇文章给大家谈谈梦幻西游脚本用什么语言写,以及auto.js梦幻西游游戏脚本,希望对各位有所帮助,不要忘了收藏本站喔。

npy199331的博客 1939

关于nand flash的地址 A8,寻址,忽略。

<br />    在NAND Flash中有8个I/O引脚(IO0—IO7)、5个全能信号(nWE ALE CLE nCE nRE)、一个引脚,1个写保护引脚。操作NAND Flash时,先传输命令,然后传输地址,最后读写数据。对于64MB的NAND Flash,需要一个26位的地址。只能8个I/O引脚充当地址、数据、命令的复用端口,所以每次传地址只能传8位。这样就需要4个地址序列。因此读写一次nand flash需要传送4次(A[7:0] A[16:9] A[24:17] A[25])。64M的NAND

LYJ个人博客,记录技术、八卦、生活,分享各种心得,期待与朋友们一同进步 1859

《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]文件上传

[第二章 web进阶]文件上传开始行动绕过第1个限制绕过第2个限制 介绍:记录一下笔记,方便以后迅速回忆使用。 《从0到1:CTFer成长之路》书籍配套题目,来源网站:《从0到1:CTFer成长之路》 先看一下题目源码: <?php header("Content-Type:text/html; charset=utf-8"); // 每5分钟会清除一次目录下上传的文件 require_once('pclzip.lib.php'); if(!$_FILES){ echo '

weixin_46703850的博客 3411

版主你好,最近被vivi里的bon 和 part 这两个命令搞得有点晕。这是我在网上找到的关于它们的用当

  版主你好,最近被vivi里的bon 和 part 这两个命令搞得有点晕。这是我在网上找到的关于它们的用当:                    part add 命令用于添加一个MTD 分区。命令的详细格式如下:part add name offset size flag参数name 是要添加的分区的分区名称;参数offset 是要添加的分区的偏移(相对于整个MTD 设备的起始地址的偏移

2967

18、深入解析航空飞行数据中的秘密:从数据清理到高级分析

本文详细解析了如何使用R语言处理和分析航空飞行数据,从基础的数据清理到复杂的回归分析和机器学习模型构建。文章涵盖了探索性数据分析、天气数据的整合、地理信息可视化、时间序列预测以及航班延误的优化策略等内容,展示了如何通过数据挖掘技术提高航空运营效率和乘客满意度,并探讨了数据质量评估与隐私保护的重要性。

convnet3designer的博客 107

模型可解释性分析:基于SHAP的深度探索

SHAP模型可解释性分析摘要 本文系统性地介绍了SHAP(SHapley Additive exPlanations)方法在机器学习模型可解释性分析中的应用。SHAP基于博弈论的Shapley值理论,为特征重要性评估提供了统一框架。文章详细阐述了四种核心算法:Kernel SHAP(模型无关方法)、Tree SHAP(针对树模型的高效算法)、Deep SHAP(适用于深度学习)和Linear SHAP(线性模型专用)。通过Python实现展示了从数据准备到SHAP分析的全流程,包括摘要图、依赖图等可视化技术

huanghm88的专栏 611

NAND FLAASH基础

NAND FLASH 基础 https://baike.baidu.com/item/Nand%20flash/4883033?fr=aladdin 物理构成 NAND Flash 的数据是以bit的方式保存在memory cell,一个cell 中只能存储一个bit。这些cell 以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device的位宽。这些Line会再组成Page,(NAND Flash 有多种结构,我使用的NAND Fla

XYJ_Tiger的博客 2277

把 ABAP 经验装进 GitHub Copilot 的按需大脑,Agent Skills 如何改变 ABAP 开发

2026 年 8 月,SAP Community 上出现了一次很有代表性的 ABAP 实验。开发者把标准 Flight Model 里的复制成自己的测试类,删除原有 ABAP Unit Test,再让 GitHub Copilot Agent 为方法重新生成测试代码。真正有意思的地方并不是 Copilot 会不会写,而是开发者给 Copilot 准备了两个专门的 Agent Skills,一个负责 ABAP Unit Test 的通用规则,一个负责 ABAP Test Double Framework。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 156

51单片机控制K9K8G08U0C NAND Flash读写程序

网上看到这个源代码,虽然感觉51用到nandflash的情况不多,但是可以借鉴理解nandflash的读写流程 #include #include #include /********************************************/ sbit NF_CLE=P0^3;               //命令锁存使能(输出)      CLE    D3 sbi

wang0901的专栏 3483

在RStudio中使用GitHub Copilot:代码自动生成,从此告别手敲!

可以通过自定义提示词来引导Copilot生成符合自己需求的代码。再看一个做统计分析的。

Codewar的博客 331

【YOLOv13多模态融合改进】| CFT:跨模态融合Transformer | 利用Transformer的自注意力机制,解决跨模态融合中的长距离依赖和全局信息整合问题

本文记录的是利用 CFT 模块改进 YOLOv13 的多模态目标检测网络模型。的设计出发点在于解决传统多模态检测中跨模态特征融合不充分的问题,即当不同模态数据需协同检测时,基于CNN的方法因局部卷积的局限性,难以捕捉长距离依赖和全局模态间的互补信息,导致复杂光照、遮挡等场景下检测精度不足。本文利用模块,将多模态特征序列拼接后自动学习模态内与模态间的交互权重,在特征提取阶段整合全局上下文信息,增强对不同模态互补特征的利用能力,从而提升模型在多模态场景下的检测鲁棒性与准确性。Cross-Modality Fus

Limiiiing的博客 540

NAND FLASH MT29F4G08

1 简介 我们通过stm32f429的fmc接口实现对MT29F4G08的访问,实现读写数据功能 NAND FLASH信号线 NAND FLASH 框图 NAND FLASH 存储阵列 以上可以得知:(MT29F4G08) 每个这样的芯片有两个plane 每个plane有2048个block,一个包含偶数块,一个包含奇数块 每个block有64个pege 每个page有2K+6...

AIoT技术栈的博客 9376

请尽可能地详细说明一个VLA项目的立项训练到落地的全流程

一个机器人VLA项目的全流程是一个复杂的系统工程,它深度融合了机器人学 (Robotics)计算机视觉 (CV)和自然语言处理 (NLP)。其核心挑战在于高质量数据的获取和从仿真到现实的有效迁移。与纯粹的软件AI项目相比,它增加了硬件、物理交互和安全性的维度,但其最终能让AI走出虚拟世界、在物理世界中产生实际价值,这也是其巨大的魅力所在。

具身机器人和通用AI 303

Linux MTD下获取Nand flash各个参数的过程的详细解析

下面是Linux MTD中,获取nand flash型号,各个参数,以及硬件特性的函数,其实也就是 nand_get_flash_type,下面对其详细解析:   【看此文之前,一些有必要先解释的术语】 1.       Program(编程):此处的编程,不是写软件,写代码,而是对于硬件来说的,可以理解为对硬件编程,只不过其工具是硬件内部的逻辑,而不是你用的软件。对Nand Fl

houjinwen的专栏 677

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NAND Flash存储结构

Nand Flash原理分析与编程 NAND Flash 在嵌入式系统中的地位与PC机上的硬盘是类似的。用于保存系统运行所必需的操作系统,应用程序,用户数据,运行过程中产生的各类数据,系统掉电后数据不会护丢失.本文主要介绍关于NAND Flash的组织结构和编写程序的方法。        在三星的NAND Flash 中,当CPU从NAND Flash开始启动时,CPU会通过内部

wwwtovvv的专栏 1564

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NAND FLASH驱动注意事项

1.NAND FLASH写入只能由1写为0,所以写入前必须先擦除,擦除后所有数据为1.2.2K大页面的64字节冗余数据按照飞凌的定义为:第0位为坏块标记,第1-4位为2K页面的ECC校验,其他为0xff。3.K9F1G08U0B的地址线有28根,对应空间应该是256MB,而实际空间为128MB,我的理解为A11是选择是数据区域还是扩展数据区域。高的16位正好是页面的地址。4.bootl

443

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NAND Flash

转自https://blog.youkuaiyun.com/shanghaiqianlun/article/details/6992915   NAND Flash          以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。 1. 概述         MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来传输数据、地址、指令。5个命令脚(CLE...

3364

NAND FLASH

NAND Flash 以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。 1. 概述 MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来传输数据、地址、指令。5个命令脚(CLE、ALE、CE#、WE#)实现NAND命令总线接口规程。3个附加的脚用作: 控制硬件写保护(WP#)、监视芯片状态(R/B#),和发起上电自动读特征(PRE-仅3V...

byebyegov5qq 711

nand一些主要特点

Nand Flash原理分析与编程 NAND Flash 在嵌入式系统中的地位与PC机上的硬盘是类似的。用于保存系统运行所必需的操作系统,应用程序,用户数据,运行过程中产生的各类数据,系统掉电后数据不会护丢失.本文主要介绍关于NAND Flash的组织结构和编写程序的方法。        在三星的NAND Flash 中,当CPU从NAND Flash开始启动时,CPU会通过内部的硬件

ryder001的专栏 647

如何编写linux下nand flash驱动-1

1.       硬件特性:【Flash的硬件实现机制】Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非易失性/易失性,从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备, 除了Flash,还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内

tanxs001的专栏 928

NAND Flash【转】

转自:http://www.cnblogs.com/lifan3a/articles/4958224.html 以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。 1. 概述         MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来传输数据、地址、指令。5个命令脚(CLE、ALE、CE#、WE#)实现NAND命令总线接口规程。3个附...

weixin_34372728的博客 125

NAND flash学习所获----(Zac)

Nand Falsh外围电路:peripheral circuit 1.Nand flash里至少有2个state Machine(controller),即2个主控。 一个主控:负责处理前端事情。 一个主控:负责后端任务处理。 2.DDC:Dynamic Data cache(包括SDC,PDC,TDC,DDC1,DDC2),有的解析为Page buffer,或者sense A...

dengaoxin0873的博客 860

MTD原始设备与FLASH硬件驱动的对话

MTD原始设备与FLASH硬件驱动的对话 看了>后对以MTD的分层结构以及各层的分工情况有了大致的了解,然而各层之间是如何进行对话的呢,对于这个问题,>上没有详细的去说明。 小弟抽空研究了一下,打算从下到上,在从上到下,分两条主线来研究一下MTD原始设备与FLASH硬件驱动的对话(MTD原始设备与更上层的对话留待以后再研究)。 以下是第一部分,从下到上的介绍FLASH硬件驱动与MTD原始设备是如何建立联系的。 1、首先从入口函数开始: static int s3c24xx_nand_probe

SdustLiYang的专栏 1388
上一篇: Windows CE下开发控制面板应用程序
下一篇: WinCE系统字体的设置
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值