uboot1.1.4与NAND FLASH(k9f2g08u0a)

原创 2011年01月08日 23:21:00

    k9f2g08u0a(NAND FLASH)一页大小虽为2KB+64B,但却占用了4KB地址空间.(也就是 实际写入/读取NAND的地址=程序中给定地址/2,这里程序中给定地址就是写到s3c2440的nand地址寄存器的值,实际写入/读取NAND的地址是指:将NAND看作一个只有有效数据(不包括spare区)的连续存储体)
举个例子:假设内存0x32000000开始有2KB数据,要将其写入到NAND(k9f2g08u0a)的第2页(按页号从0开始):
则认为 实际写入NAND的地址=3*2048=6144=0x1800,但在程序中我们给NAND的地址应该为=2*0x1800=0x3000,这样才能将这2KB写入NAND的第2页.

    在uboot1.1.4中的NAND驱动,是按照 实际写入/读取NAND的地址=程序中给定地址,假设内核启动代码中有这样几行:
Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x00000000-0x00080000 : "u-boot"
0x00080000-0x00280000 : "kernel"
0x00280000-0x10000000 : "yaffs"
那么我用uboot的命令nand read将内核(由内核启动信息看到内核在NAND中地址为0x00080000-0x00280000)从NAND读到内存时,就应该这么读nand read 0x32000000 0x100000 0x200000
其中0x32000000是指读到内存中的首地址,0x100000是内核在NAND中首地址(这个地址可以理解为程序中给定地址)=2*0x80000,0x200000为读取数据大小.
也就是说内核启动信息中给定的0x00000000,0x00080000,0x00280000,0x10000000是指实际写入/读取NAND的地址.

    用nand write写同理.

    因为uboot1.1.4中nand在1 block中连续写/读页时换页是通过page++实现的,所以只要给定正确的起始地址,在起始地址所在的这1 block中不会产生上述错误的页起始地址.但是因为每次最多通过page++机制写/读1 block的数据,在需要写/读紧接着的下1 block时,nand_rw函数通过start  += n来改变block起始地址,如果之前读了一整块(1 block),那么这里的n指的是1 block大小,即0x20000,由上面可以看出start  += n会得到错误的下一块的起始地址,应改为start  += 2*n.

    k9f2g08u0a的spare区数据写/读和uboot1.1.4中spare区数据写/读写区别较大,就不写了.

NandFlash读写过程

一、结构分析 S3C2410处理器集成了8位NandFlash控制器。目前市场上常见的8位NandFlash有三星公司的k9f1208、k9f1g08、k9f2g08等。k9f1208、k9f1g...
  • winheroii58
  • winheroii58
  • 2011年09月20日 15:42
  • 11010

u-boot 1.1.4 终于 make 通过了饿 呵呵

 玩了几天,终于把u-boot 给make 通了一次 呵呵,总结下环境如下:VM + REDHAT9 + U-BOOT1。1。4 + ARM-LINUX-GCC 2.95.3 首先,解压交叉工具连Ta...
  • wanyeye
  • wanyeye
  • 2008年04月24日 17:06
  • 4385

uboot 1.1.4

  • 2008年10月15日 02:35
  • 8.61MB
  • 下载

回味经典——uboot1.1.6 之 第一阶段

最近打算移植一个比较新的 uboot 到开发板,回想起来上一次移植 uboot1.1.6 已经差不多是一年前了,手头保留了一些当时移植分析时的笔记,但是没有归纳梳理,在移植新版 uboot 之前,再来...
  • lizuobin2
  • lizuobin2
  • 2016年07月28日 20:52
  • 1804

K9F1208U0M(64M nand flash)手册阅读以及相关驱动程序分析

作者:wogoyixikexie@gliet      以前一直使用别人成功的FMD,早几天对一些细节以及编程方法一无所知,同时也有很多人问我flash相关问题,我好想在论坛指点江山,给养技术,可是感...
  • gooogleman
  • gooogleman
  • 2008年12月18日 14:37
  • 4793

深度分析NandFlash—物理结构及地址传送(以TQ2440开发板上的K9F2G08U0A为例)

        K9F2G08U0A是三星公司生产的总容量为256M的NandFlash,常用于手持设备等消费电子产品。还是那句话,搞底层就得会看datasheet,我们就从它的datasheet看起...
  • IT_114
  • IT_114
  • 2011年03月18日 15:17
  • 5295

uboot1.1.4编译成功

 tmd,现在终于编译成功.参考帖子  真是多谢http://blog.chinaunix.net/u2/78837/showart_1212612.html http://blog.chinauni...
  • defoecn
  • defoecn
  • 2008年10月08日 21:41
  • 426

《uboot-1.1.4 》

  • 2009年06月06日 10:14
  • 5.9MB
  • 下载

SPI NAND flash 简介

在嵌入式系统领域,做为存储设备的NOR flash和NAND flash,大家应该不陌生。早期NOR flash的接口是并行口的形式,也就是把数据线,地址线并排设置与IC的管脚中。但是由于不同容量...
  • Andrewguo17
  • Andrewguo17
  • 2017年08月07日 11:24
  • 3045

NAND与NOR FLASH的原理与异同

一、存储数据的原理 两种闪存都是用三端器件作为存储单元,分别为源极、漏极和栅极,与场效应管的工作原理相同,主要是利用电场的效应来控制源极与漏极之间的通断,栅极的 电流消耗极小,不同的是场效应管为单栅极...
  • xiaofei0859
  • xiaofei0859
  • 2015年11月11日 10:45
  • 1266
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:uboot1.1.4与NAND FLASH(k9f2g08u0a)
举报原因:
原因补充:

(最多只允许输入30个字)