更多课程 选择中心

嵌入式培训
达内IT学院

400-111-8989

学习嵌入式,怎么能不清楚嵌入式 Nand 中oob、bbt、ecc含义?

  • 发布:嵌入式培训
  • 来源:嵌入式ARM
  • 时间:2018-04-25 18:04

嵌入式Nand 中oob、bbt、ecc含义小结

无论是学习python语言还是嵌入式,与它们相关的知识点是一定要学明白、掌握清楚的,所谓基础不牢,地动山摇嘛!今天去嵌入式培训班逛了一圈,带回来嵌入式Nand 中oob、bbt、ecc含义小结整理分享给大家。

由于在裸板或者在uboot存在的情况烧写kernel以及yaffs2 fs的时候 Nand 中oob、bbt、ecc很大程度上影响了烧写的成功率,所以我们下面对含义特点进行了解:

芯片内部存储布局及存储操作特点:

一片Nandflash为一个设备(device), 其数据存储分层为:

1 (Device) =4096 (Blocks)

1 (Block) -= 32 (Pages/Rows)页与行是相同的意思,叫法不一样

1(Page) = 528 (Bytes) =数据块大小(512Bytes) + OOB 块大小(16Bytes)

在每一页中,最后16个字节(又称OOB)用于NandFlash命令执行完后设置状态用,剩余512个字节又分为前半部分和后半部分。可以通过NandFlash命令00h/01h/50h分别对前半部、后半部、OOB进行定位通过

Nand Flash内置的指针指向各自的首地址。

存储操作特点:

1.擦除操作的最小单位是块。

2. NandFlash芯片每一位(bit)只能从1变为0,而不能从0变为1,所以在对其进行写入操作之前要一定将相应块擦除(擦除即是将相应块得位全部变为1).

3.OOB部分的第六字节(即517字节)标志是否是坏块,如果不是坏块该值为FF,否则为坏块。

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

BBT:bad blocktable,即坏块表。各家对nand的坏块管理方法都有差异。比如专门用nand做存储的,会把bbt放到block0,因为第0块一定是好的块。但是如果nand本身被用来boot,那么第0块就要存放程序,不能放bbt了。

有的把bbt放到最后一块,当然,这一块不能为坏块。

有的bbt中用2个bits表示1个block的状态,所以1个字节可以表示4个blocks。

bbt的大小跟nand大小有关,nand越大,需要的bbt也就越大。

所以具体代码具体分析。

ECC:

NANDFlash出错的时候一般不会造成整个Block或是Page不能读取或是全部出错,而是整个Page(例如512Bytes)中只有一个或几个bit出错。一般使用一种比较专用的校验——ECC。ECC能纠正单比特错误和检测双比特错误,而且计算速度很快,但对1比特以上的错误无法纠正,对2比特以上的错误不保证能检测。

ECC一般每256字节原始数据生成3字节ECC校验数据,这三字节共24比特分成两部分:6比特的列校验和16比特的行校验,多余的两个比特置1.

当往NANDFlash的page中写入数据的时候,每256字节我们生成一个ECC校验和,称之为原ECC校验和,保存到PAGE的OOB(out-of-band)数据区中。其位置就是eccpos[]。

校验的时候,根据上述ECC生成原理不难推断:将从OOB区中读出的原ECC校验和新ECC校验和按位异或,若结果为0,则表示不存在错(或是出现了ECC无法检测的错误);若3个字节异或结果中存在11个比特位为1,表示存在一个比特错误,且可纠正;若3个字节异或结果中只存在1个比特位为1,表示OOB区出错;其他情况均表示出现了无法纠正的错误。

恭喜大家阅读完了本文,掌握了嵌入式 Nand 中oob、bbt、ecc含义,希望大家每天多了解一点嵌入式开发的知识,每天进步一点点!如果你有关于嵌入式的疑问,欢迎你来达内嵌入式培训班获得答案!

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:从宏观到微观逐步解读嵌入式Linux整体框架
下一篇:让你知道为什么!嵌入式Linux从Bootloader到filesystem启动流程分析

嵌入式工程师都知道的嵌入式C的高级用法

入门嵌入式,看不懂电路原理图怎么办?

易操作的嵌入式系统开发技巧有哪些?

嵌入式硬件电路设计中需要注意什么?

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省