1: 目前比较常见NAND Flash每一页大小为(2048+64)字节(还有其他格式的NANDFlash,比如每页大小为(256+8)、(512+16)、(2048+128)等),其中的2048字节就是一般存储数据的区域,64字节称为OOB(Out OfBand)区。通常在OOB区存放坏块标记、ECC较验码、文件系统信息(yaffs)等。 而cramfs、jffs2文件系统映像文件中并没有OOB区的内容,如果将它们烧入NORFlash中,则是简单的“平铺”关系;如果将它们烧入NAND Flash中,则NANDFlash的驱动程序首先根据OOB的标记略过坏块,然后将一页数据(2048字节)写入后,还会计算这2048字节的ECC较验码,最后将它写入OOB区,如此循环。cramfs、jffs2文件系统映像文件的大小通常是512的整数倍。 而yaffs文件系统映像文件的格式则跟它们不同,文件本身就包含了OOB区的数据(里面有坏块标记、ECC较验码、其他yaffs相关的信息)。所以烧写时,不需要再计算ECC值,首先检查是否坏块(是则跳过),然后写入2048字节的数据,最后写入64字节的OOB数据,如此循环。yaffs文件系统映像文件的大小是(2048+64)的整数倍

2:  1)烧写yaffs文件系统映像时,分区上第一个可用的(不是坏块)块也要跳过。2)如果写入的数据是oxff,代表不写入数据

3:  yaffs文件系统格式详细见https://yaffs.net/yaffs-2-specification

Comment

Size for 1kb chunks

Size for 2kB chunks

blockState

Block state. non-0xFF for bad block

1 byte

1 byte

chunkId

32-bit chunk Id

4 bytes

4 bytes

objectId

32-bit object Id

4 bytes

4 bytes

nBytes

Number of data bytes in this chunk

2 bytes

2 bytes

blockSequence

sequence number for this block

4 bytes

4 bytes

tagsEcc

ECC on tags area

3 bytes

3 bytes

ecc

ECC, 3 bytes/256 bytes of data

12 bytes

24 bytes

Total

30 bytes

42 bytes

4: 如果使用8位HWECC时,会生成52字节的ECC校验数据并写入oob,而yaffs2自身也有28字节的数据写日oob,也就是说,至少需要28+52=80字节的oob空间,而对于我们的nand flash,页大小为2048字节,oob空间为64字节,明显空间不足,进而导致了我们前面看到的问题,所以,采用8位HWECC时应该选用不使用oob空间的文件系统,如jffs2,但是jffs2文件系统在挂载时比较慢,感觉上不如yaffs2轻巧。

nandflash oob解析相关推荐

  1. NandFlash OOB及UBI文件系统分析

    Nand Flash,每一个页,对应一个空闲区域(OOB),这个区域是基于Nand Flash的硬件特性,数据在读写的时候容易出错,为了保证数据的正确性,就产生了这样一个检测和纠错的区域,用来放置数据 ...

  2. yaffs2文件系统结构及应用

    文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及其它存储设备)或分区中的目录结构:一个可应用的磁盘设备可以包含一个或多个文件系统:如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统:为 ...

  3. nandflash yaffs2 oob

    一般NAND Flash每一页大小为(512+16)字节(还有其他格式的NANDFlash,比如每页大小为(256+8).(2048+64)等),其中的512字节就是一般存储数据的区域,16字节称为O ...

  4. nandflash与文件系统,oob区数据扫盲。后面还会补充实际生产烧录的心得体验,依据不同的文件系统

  5. NandFlash详述【转】

    NandFlash详述 转自:http://wenku.baidu.com/view/04d9330bb52acfc789ebc92f.html?re=view 1. 硬件特性: [Flash的硬件实 ...

  6. S5PV210体系结构与接口11:NandFlash SD卡编程

    目录 1. Flash ROM简介 1.1 概述 1.2 Nor & Nand Flash比较 1.2.1 接口对比 1.2.2 容量和成本对比 1.2.3 可靠性对比 1.2.4 使用寿命对 ...

  7. 驱动专题:第五章MTD及Flash驱动 2.Nandflash驱动

    一.MTD体系结构:Linux内核提供MTD子系统来建立FLASH针对Linux的统一.抽象接口.MTD将文件系统与底层的FLASH存储器进行隔离. 引入MTD后Linux系统中对FLASH的设备驱动 ...

  8. 嵌入式 linux nand flash 容量查看,Linux MTD下获取Nand flash 各个参数的过程的详细解析...

    下面是Linux MTD中,获取nand flash型号,各个参数,以及硬件特性的函数,其实也就是nand_get_flash_type,下面对其详细解析:1.1. Program(编程)此处的编程, ...

  9. 20150311 NandFlash驱动分析

    20150311 NandFlash驱动分析 2015-03-11 李海沿 一.结构体详解 MTD体系结构: 在linux中提供了MTD(Memory Technology Device,内存技术设备 ...

  10. MTD NANDFLASH驱动相关知识介绍

    转:http://blog.csdn.net/zhouzhuan2008/article/details/11053877 目录 MTD总概述 MTD数据结构 MTD相关层实现 MTD,Memory ...

最新文章

  1. 不是我吹,这个idea插件你真没用过!
  2. 前端书签归纳(持续更新)
  3. ContestHunter暑假欢乐赛 SRM 08
  4. 【问链财经-区块链基础知识系列】 第二十七课 区块链与分布式账本的异同
  5. SAP UI5 datajs.js response handling
  6. 六元均匀直线阵的各元间距为_给棉花地选购滴灌带时记住这几点,不再为棉花滴水时发愁...
  7. 算法练习一:求最小公倍数
  8. linux安装selenium+chrome+phantomjs
  9. 如何在Ubuntu 18.04上安装Django
  10. java算法题走楼梯,程序员必学算法「动态规划」:爬楼梯(完全背包解法)
  11. Android ListView反复调用getView和getCount
  12. HDU2009 求数列的和【迭代】
  13. 【架构解密】第六章 深入解析分布式存储
  14. VC6.0下载和安装教程
  15. 提问:AdventNetSnmp.jar这个包是做什么用的和snmp有什么关系
  16. 【君思智慧园区】智慧能源综合管理平台,智慧能源管理云平台建设方案!
  17. 使用WindowsBuilder进行可视化设计时不能预览界面
  18. mcgscom口针脚定义_【各种接口针脚定义]
  19. 支持ipv6路由器有什么优点?路由器应用了哪些技术?
  20. 计算机专业英语复习第四天

热门文章

  1. Derek Sivers:我是一个慢思考者(译)
  2. zip_longest
  3. android连麦功能,Android IOS WebRTC 音视频开发总结(七六)-- 探讨直播低延迟低流量的粉丝连麦技术...
  4. 【柒穆雨】什么是平面设计,学习平面设计需要具备什么条件?
  5. ps证件照白底换蓝底_【插件】PS插件证件照V2.0一键裁剪排版磨皮换装换底色软件2020Mac/Win完整版...
  6. 闪付卡(QuickPass)隐私泄露原理
  7. c语言tap位置什么意思,CTAP是什么意思
  8. # 数值计算:三角形积分
  9. 深度学习常用算子(一)
  10. checkio Evenly Spaced Trees