我的nand flash 32M,kernel 2.6.18, rootfs is emb  linux , cramfs.

nand flash分区如下:
static struct mtd_partition nand_partitions[] = {
        /* bootloader (UBL, U-Boot, BBT) in sectors: 0 - 14 */
        {
                .name = "bootloader",
                .offset = 0,
                .size = 32 * NAND_BLOCK_SIZE,  //32x16 = 512k
                .mask_flags = MTD_WRITEABLE,        /* force read-only */
        },
        /* bootloader params in the next sector 15 */
        {
                .name = "params",
                .offset = MTDPART_OFS_APPEND,
                .size = 96 * NAND_BLOCK_SIZE, //96x16 = 1536k = 1.5M
                .mask_flags = MTD_WRITEABLE,        /* force read-only */
        },
        /* kernel in sectors: 16 */
        {
                .name = "kernel", 
                .offset = MTDPART_OFS_APPEND,
                .size = SZ_2M, //2M
                .mask_flags = 0
        },
        /* rootfs */
        {
                .name = "filesystem1", 
                .offset = MTDPART_OFS_APPEND,
                .size = SZ_16M + SZ_8M, //24M
                .mask_flags = 0
        },
        /*parameter*/
        {
                .name = "filesystem2", 
                .offset = MTDPART_OFS_APPEND,
                .size = MTDPART_SIZ_FULL, //4M, /mnt/nand, save log,sysenv, 
                .mask_flags = 0
        }
};

// 系统 启动后
# cat /proc/partitions                                                          
major minor  #blocks  name                                                      
                                                                                
  31     0        512 mtdblock0                                                 
  31     1       1536 mtdblock1                                                 
  31     2       2048 mtdblock2                                                 
  31     3      24576 mtdblock3                                                 
  31     4       4096 mtdblock4                                                 
254     0        512 sbulla                                                    

# cat /proc/mtd                                                                  
dev:    size   erasesize  name                                                  
mtd0: 00080000 00004000 "bootloader"                                            
mtd1: 00180000 00004000 "params"                                                
mtd2: 00200000 00004000 "kernel"                                                
mtd3: 01800000 00004000 "filesystem1"                                           
mtd4: 00400000 00004000 "filesystem2"                                           
#

loadb 20000000                  //(1)
nand erase 0x100000   0x200000           //(2)
nand write 0x20000000 0x100000 0x200000 -//(3)
nand read  0x20000000 0x100000 0x200000 -//(4)

tftp 0x80200000(内存地址) uImage 
过程  从服务器 到内存 从内存在到Nand flash 
为什么呢 因为 nandflash 的擦出 读写不独立 万一一边擦好了 可网络断了 那就麻烦了 呵呵 通过内存中转 好主意阿 速度起码快把 呵呵

(1) 从串口下载到SDRAM的0x20000000处
(2) 从1M处开始擦写Nand Flash,擦写2M大小的空间

(3) 将SDRAM中的0x20000000处开始的内容,烧写到Nand Flash的0x100000处开始的2M空间内
(4) 将Nand Flash的0x100000处开始的2M空间内容,拷贝到SDRAM中0x20000000处开始的地方
Nand flash芯片工作原理
------------------------------------
    Nand flash芯片型号为Samsung K9F1208U0B,数据存储容量为64MB,采用块页式存储管理。8个I/O
引脚充当数据、地址、命令的复用端口。

芯片内部存储布局及存储操作特点:
    一片Nand flash为一个设备(device), 其数据存储分层为:
    1 (Device) = 4096 (Blocks)
    1 (Block) -= 32   (Pages/Rows) 页与行是相同的意思,叫法不一样
    1 (Page)   = 528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes)
     在每一页中,最后16个字节(又称OOB)用于Nand Flash命令执行完后设置状态用,剩余512个字节又
分为前半部分和后半部分。可以通过Nand Flash命令00h/01h/50h分别对前半部、后半部、OOB进行定位通过
Nand Flash内置的指针指向各自的首地址。

存储操作特点:
    1. 擦除操作的最小单位是块。
    2. Nand Flash芯片每一位(bit)只能从1变为0,而不能从0变为1,所以在对其进行写入操作之前要一定将相应块擦除(擦除即是将相应块得位全部变为1).
    3. OOB部分的第六字节(即517字节)标志是否是坏块,如果不是坏块该值为FF,否则为坏块。

4. 除OOB第六字节外,通常至少把OOB的前3个字节存放Nand Flash硬件ECC码

转自: http://blog.csdn.net/maopig/article/details/17554429

Nand分区及nand erase简解相关推荐

  1. nand ubi -1 nand基础

    micro2440有一个配置是三星K9F2G08U0B--256MB SLC tiny6410有一个配置是三星K9F2G086U0B--256MB SLC,有一个配置是三星K9K8G08U0B--1G ...

  2. 最新版freetextbox(版本3.1.6)在asp.net 2.0中使用简解

    最新版freetextbox(版本3.1.6)在asp.net 2.0中使用简解 2008-10-14 12:21 简介:对于FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用,只 ...

  3. 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解(提供博客园本地下载)

    来源:cleocn.com 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解(提供博客园本地下载) 简介:对于FreeTextBox(版本3.1.6)在ASP.Net ...

  4. 爬虫5-BeautifulSoup模块简解2

    1.BeautifulSoup简解2 from bs4 import BeautifulSoup import re file = open("./baidu.html",'rb' ...

  5. github-markdown-css 使用简解,markdown文案格式优化(笔记)

    github-markdown-css 使用简解,markdown文案格式优化 1.npm 安装 $ npm install github-markdown-css 2.使用 导入github-mar ...

  6. mysql数据库表分区_MySQL数据库之MySQL的分区和分表详解

    本文主要向大家介绍了MySQL数据库之MySQL的分区和分表详解 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1. 分区 MySQL中的分区是指将一个数据表按照某种规则(如时 ...

  7. Cisco AP1240多SSID配置简解

    Cisco AP1240多SSID配置简解 AP1#show run <?xml:namespace prefix = o ns = "urn:schemas-microsoft-co ...

  8. linux parted分区教程,分区工具parted的详解及常用分区使用方法

    分区工具parted的详解及常用分区使用方法 一. parted的用途及说明 概括使用说明: parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区 ...

  9. linux sfdisk命令,Linux运维知识之Linux sfdisk硬盘分区工具程序命令详解

    本文主要向大家介绍了Linux运维知识之Linux sfdisk硬盘分区工具程序命令详解,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 功能说明:硬盘分区工具程序. 语 法:s ...

最新文章

  1. angular例子笔记
  2. java e7 e9格式怎么转_java�?e7?a8??e9?a8�ӿ�
  3. Git 初次学习笔记
  4. EventBus In eShop -- 解析微软微服务架构eShopOnContainers(四)
  5. A*算法(三)算法实现
  6. 【华为云技术分享】MongoDB经典故障系列六:CPU利用率太高怎么办?
  7. Android方法的概括,Android_Android中startService基本使用方法概述,Android中有两种主要方式使用Ser - phpStudy...
  8. 利用Adorner制作用于图像裁切的选择框
  9. VB 全局Hook鼠标消息
  10. mysql source超时_mysql数据库连接超时
  11. 60套漂亮的的免费 PSD 界面设计元素包资源(系列二)
  12. 零知识证明 一文看懂 zkSNARK
  13. python与mongodb更新_Python对MongoDB增删改查
  14. 微型计算机内存储容量的基本单位是,计算机中用来表示内存储器容量大小的基本单位是()。...
  15. 射频识别系统的组成及工作原理解析
  16. WINAPI中URLDownloadToFile头文件问题
  17. android 三点参数,iqoo3参数配置详情-iqoo3参数配置手机参数详细表
  18. 微信公众号--生成带参数的二维码 {“errcode“:48001,“errmsg“:“api unauthorized rid: 60520af9-71ff2283-63d36e0d“}
  19. 爬取NBA球员生涯数据,并在Excel中可视化显示
  20. 最大似然函数、交叉熵和经验分布的关系

热门文章

  1. Django之orm补充
  2. Oracle PL SQL 精萃pdf
  3. FLP不可能性(FLP impossibility)
  4. Anywhere 随启随用的静态文件服务器
  5. 【linux】虚拟机安装centos后ping ip地址出现错误:Network is unreachable
  6. Qt第三方库QCustomPlot——认识图表的各个部分
  7. ubuntu 安装intel iofrt 和icc编译器
  8. [云炬创业基础笔记]第五章创业计划评估16
  9. 科大星云诗社动态20220102
  10. [云炬python3玩转机器学习] 5-3简单线性回归的实现