烧录器烧录NAND Flash注意事项
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
烧录器烧录NAND Flash注意事项
摘要:母片的数据读取出来,然后再把数据原原本本拷贝到其他芯片上,却无法正常运行呢?因为客户忽略了NAND flash里面是有坏块!芯片里面的坏块,就好像埋在芯片的“地雷”。有效的“排雷”方法有哪些呢?
日常工作场景:
技术支持电话叮铃铃响了,客户在电话用非常紧急的语气说:“使用SmartPRO系列编程器,烧录某款NAND Flash,烧录成功之后,贴板却跑不起来,请紧急帮忙分析原因!”
然后呢?…..然后就没有了…………
耐心寻找疑点:
通常遇到这种情况下,我们都会首先详细询问:“请将您的操作流程详细描述一下。”发现问题的来源:
客户的一五一十的说,他使用了最原始的办法:使用一颗能正常运行的NAND芯片作为母片,连接编程器之后,点击烧录软件上的“读取”按钮,把数据从芯片里面拷贝出来,然后再找几颗空白芯片,把数据拷贝进去。
从客户的描述当中,我们初步找到了原因:原来客户把NAND Flash当作普通Nor Flash 使用了!
为了让读者更加愉快地阅读下文,先请本文的主角NAND Flash
自我介绍一下
1、Nand Flash有自我的存储结构:
Nand Flash存储器由多个Block组成,每一个Block又由多个Page组成,每个Page 又包含主区(Main Area)和备用区(Spare Area)两个域;
2、NAND Flash是有坏块的:
由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此在NAND的生产中及使用过程中会产生坏块的。
3、NAND Flash有专用的ECC算法:
由于NAND Flash本身工艺的特性,在读取或者校验的时候,会出现一个或者多个bit 的
出错;为了应对这种情况,NAND Flash引用一种比较专用的校验方法----ECC(Error Correcting Code);
4、NAND Flash容易出现位翻转:
由于NAND Flash本身硬件的内在特性,在对Flash操作过程中,会偶尔地出现位反转的现象;所谓的位反转(bit flip)指的是原先NAND Flash中的某个位(bit),发生了变化,要么从1变成0了,要么从0变成1了;
基于Nand Flash上述1、2、3、4点特性,我们还继续把它当作普通Nor Flash使用吗?
NO!
重新追溯问题的源头:
为什么客户把母片的数据读取出来,然后再把数据原原本本拷贝到其他芯片上,却无法正常运行呢?因为客户忽略了NAND flash里面是有坏块!芯片里面的坏块,就好像埋在芯片的“地雷”,那么我们在读取数据的时候,会把母片里面的“地雷”当成数据!
给出排除、解决方案:
既然芯片里的“地雷”这么危险,那我们就想办法去躲开它吧,最简单最有效的方法就是:跳过!
跳过“地雷”就真的能彻底解决问题了吗?
NO!
“地雷”是给被我们绕开了,原本写到“地雷”位置的数据,我们也安全转移到下一个块里,但是细心的人也会发现,数据存放的地址也发生了变化!用一个图来描述更清楚一点:
很多客户使用NAND Flash来存储大量数据,而这些数据又是由多个文件分别组成,比如uboot、uImage、Logo、rootfs等烧录文件,每个文件在NAND Flash又给分配一定的存
储区域,并且指定了每个文件存储的起始物理地址块;如果“地雷”出现在数据区域,为了避开它,势必需要把数据安全往下转移,引起的后果是后续烧录文件的起始物理地址也随着发生偏移了,这将会导致主控MCU无法准确完整地获取每个文件的数据,最终造成的结果是芯片无法跑起来!
这样的话,就真的是没办法解决了吗?
按分区烧录,完美解决问题
按分区烧录,无论“地雷”出现在哪个地方,分区文件都是按照规则,来安排数据的存放的,很好的避开了“地雷”,也将根据客户预设方案存放在NAND Flash存储区内了。
这样NAND Flash就愉快的奔跑起来了。
题图用如下:
最后面的广告,放SmartPRO 6000F-PLUS。
20年的编程器行业经验,积累了丰富的母片分析解决方案,你只需简单的轻点几次鼠标,就可以自动生成烧录工程。有效数据、分区配置、烧录算法等所有一切繁杂的烧录细节,
母片分析都可帮你轻松搞定。。