[发明专利]基于Nand闪存的动态分区搜索装置及其方法有效
| 申请号: | 201310720438.2 | 申请日: | 2013-12-24 |
| 公开(公告)号: | CN103744694B | 公开(公告)日: | 2017-08-11 |
| 发明(设计)人: | 曹木莲 | 申请(专利权)人: | 武汉烽火众智数字技术有限责任公司 |
| 主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F12/02;G06F11/10 |
| 代理公司: | 北京汇泽知识产权代理有限公司11228 | 代理人: | 刘淑敏 |
| 地址: | 430074 湖*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 nand 闪存 动态 分区 搜索 装置 及其 方法 | ||
技术领域
本发明涉及数据存储技术,尤其涉及一种基于Nand闪存(Flash)的动态分区搜索装置及其方法,属于将Nand Flash作为存储介质的Unix/Linux终端产品使用烧录器烧录二进制版本文件时,在出现坏块(Bad Block)的情况下系统无法正常运行的防护机制。
背景技术
随着用户对终端产品所具备的功能需求越来越多,其对应的软件版本也成递增的趋势。作为大多数基于Linux操作系统的终端设备 ,传统的存储方式都是以Nor Flash作为存储介质。但由于Nor Flash容量较小,或者成本太高等原因已经慢慢变得不适用起来。与此相反,以Nand Flash作为存贮介质由于容量大、读写速度快、成本低等优势开始成为家庭网关,机顶盒,监控前端产品等终端设备的首选存贮介质。
在大规模产品批量出厂的过程中,为了提高效率,一般使用专门的烧录器将需要烧录的数据写入Nand Flash中,因此需要为烧录器提供专门的烧录文件,烧录文件的好块直接影响着产品量产的效率和良率。
现有技术中,一般有两种方法生成烧录文件。一种简单的方法是先通过常规的方式,借助网络,串口或USB等方式完成一台产品的升级,再从升级好的产品中将Nand Flash中的所有数据读出来,生成烧录版本文件。另一种方法是将编译生成的各二进制文件按照他们在Nand Flash上实际存储的分区位置进行组装合并,未达到实际分区大小的进行0xFF填充,最后生成烧录版本文件。
Nand Flash 的特性决定了在出厂时或者在使用过程中都有可能产生坏块。如果烧录器在烧录之前Nand Flash已产生了坏块,或者在烧录过程中产生了坏块,烧录器将二进制烧录版本文件全部烧录到Flash上后,Nand Flash上实际存储的分区内容将和原始规划的分区内容将产生相应的偏移,如图1所示。而Linux终端设备的系统启动和文件系统的挂载都是按照分区的方式进行的,那么内核或文件系统可能就面临无法正常启动的问题。
目前,很多厂家为了避免由于坏块原因导致系统无法启动问题,比较普遍使用的一种方法是将uboot引导程序通过烧录器或其他方法先烧录到Nand Flash中,然后通过uboot引导程序以软件的方式下载烧录其他的部分,如内核,文件系统等。这种方法虽然能够避免由于坏块的原因导致系统起不来的问题,但生产效率低下。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于Nand Flash的动态分区搜索装置及其方法,用以解决现有技术不能实现简单、高效的烧录Nand Flash版本文件,烧录的版本文件可启动概率低的问题。以及用于解决为规避由于Nand Flash存储介质存在坏块的特性必须为每个分区预留一定数量的多余的冗余块而引起的存储空间浪费的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于Nand闪存的动态分区搜索装置,该装置包括版本升级模块、可烧录版本模块、烧录模块以及动态分区解析模块;其中:
版本升级模块,用于将预存储在动态分区的各分区的二进制执行部件按序组装合并成一个文件,并加入版本头信息部件;
可烧录版本模块,用于将Nand闪存中实际存储的N个分区的顺序依次进行烧录版本组装;由N-M个静态分区预存储的二进制执行部件和版本升级模块进行组装合并;
烧录模块:用于当需要烧录版本文件到Nand闪存中时,将所述带ECC算法的可烧录版本提供给烧录器,由所述烧录器将所述可烧录版本文件烧录到Nand闪存中;
动态分区解析模块:用于在引导程序启动时搜索版本头,根据版本头记录的信息和Nand闪存依次搜索到的块状态构造出动态分区表,内核通过引导程序传递环境变量的方式或者通过将动态分区表共享到同一段未使用的内存的方式获取来构造内核分区表。
其中,所述的版本升级模块,用于按照块对齐的方式记录各动态分区存储文件的实际大小。
还用于在Nand闪存中的引导程序能正常启动的情况下,将该版本升级文件用于通过软件的方式进行版本的在线升级更新。
在所述可烧录版本模块中,如果N-M个静态分区预存储的二进制执行部件未达到该分区大小,则所述未达到的部分需要按0xFF进行填充。
在所述可烧录版本模块中,各部件组装合并完毕,再根据具体的硬件电路加入相应ECC算法进行填充。
一种基于Nand闪存的动态分区搜索方法,该方法包括:
A、获取原始分区信息,所述原始分区信息包括N个分区及每个所述分区的空间大小,其中N为正整数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉烽火众智数字技术有限责任公司,未经武汉烽火众智数字技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310720438.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能电器设备软件升级的方法及其装置
- 下一篇:管桩泵送布料设备





