一种终端产品版本存储的方法与系统的制作方法

文档序号:6581228阅读:199来源:国知局
专利名称:一种终端产品版本存储的方法与系统的制作方法
技术领域
本发明涉及通讯技术产品领域,尤其涉及产品版本的存储。
背景技术
目前各种嵌入式设备、通信设备其软件版本通常保存在非易失性闪存存储器 Flash中, 一般都是采用或非闪存Norflash或者与非闪存Nandf lash来作为其存储介质。 但,Norflash和Nandf lash技术上各有优势 在读写性能上,Norflash的读速度比Nandf lash快,而Nandf lash的写入/擦除 速度则比Norflash快; 在容量成本上,Nandf lash的单元尺寸几乎是Norflash的一半,即Nandf lash比 Norflash具有更高的容量与更低的成本; 在接口上,Norflash的寻址更加简单,可以实现在芯片内执行; 在可靠性方面,Norflash没有坏块处理问题,而Nandf lash的坏块是随机分布的,
需要对其进行处理; 在软件支持上,Norflash器件不需要任何的软件支持,而Nandf lash器件则通常 需要驱动程序。 随着消费者对于终端产品的功能要求越来越高,需求越来越多,终端产品的版本 在不断地增大,这样势必需要扩大版本存储介质的存储容量,从而提高产品的成本。而 Nandf lash无疑是降低成本的最佳对象,但其必须要处理的坏块成为一大瓶颈,且并非所有 的CPU都具有Nandf lash控制器。

发明内容
本发明的目的在于提出一种终端产品版本存储的方法和系统。
本发明采用了如下的技术方案
—种终端产品版本存储的方法,包括 步骤A、设置产品版本为Boot程序和版本程序,所述Boot程序用于引导版本程 序; 步骤B、选择产品CPU支持启动的非易失性存储介质,利用烧写器将所述Boot程序 烧写到该存储介质; 步骤C、烧写所述版本程序到与非闪存器Nandf lash中。 在一种实施例中,本方法还包括对产品版本的升级处理过程将所述Boot程序的 升级程序烧写到所述存储介质和/或将所述版本程序的升级程序烧写到Nandf lash。
上述方法还包括 步骤D、产品CPU上电时,从烧写到所述存储介质的Boot程序启动,由该Boot程序 去引导所述Nandf lash中的版本程序。
所述步骤D具体包括
步骤Dl、启动后,由Boot程序搜索Nandflash上的版本程序;
步骤D2、由Boot程序引导Nandflash上的版本程序。 —种实施例中,所述步骤C在烧写所述版本程序到Nandflash时是逐块进行并绕过坏块的。 —种实施例中,所述步骤C还包括利用错误更正算法ECC对烧写到Nandflash的版本程序进行ECC校验,存放校验结果到Nandf lash。 —种实施例中,所述步骤D1还包括利用所述ECC校验算法对搜索到的版本程序进行ECC校验,将其校验结果与Nandflash存有的校验结果进行比较,通过判断是否发生了位反转现象来检查所述ECC校验是否通过
如果ECC校验通过,则继续步骤D2 ; 如果ECC校验不通过,则利用所述ECC校验算法对搜索到的版本程序进行位纠正,然后继续步骤D2。 本发明还提供一种终端产品版本存储的系统,包括烧写单元,用于烧写产品的Boot程序到非易失性存储介质,烧写版本程序到Nandflash。 —种实施例中,所述烧写单元还包括升级烧写单元,用于烧写Boot程序的升级程序和/或版本程序的升级程序;如果Boot程序有升级程序,则烧写其升级程序到所述存储介质;如果版本程序有升级程序,则烧写其升级程序到所述Nandf lash。
上述系统还包括启动加载单元,用于产品的CPU加电时启动已烧写到存储介质的Boot程序来引导Nandflash中的版本程序。 —种实施例中,所述烧写单元还包括原始校验单元,用于用于在对版本程序逐块并绕过坏块烧写时进行ECC校验,并将校验结果存放到Nandflash 在一种实施例中,所述启动加载单元还包括版本校验单元和对比纠正单元;版本校验单元,用于对启动后搜索到的已烧写到Nandflash的版本程序进行ECC校验;对比纠正单元,用于将原始校验单元的校验结果和版本校验单元的校验结果进行ECC比较,若ECC比较不通过,则利用所述ECC校验算法进行位纠正。 本发明的有益效果在于本发明支持CPU不具有Nandflash控制器的产品,不限制CPU的选型;使用适合Boot程序启动的存储介质来存储Boot程序,而使用Nandflash存储介质来存储版本,可以在不影响用户的正常使用的同时降低产品成本;另外,本发明还通过ECC算法对Nandflash的坏块进行了处理,保证了系统运行的可靠性。


图1是本发明方法第一种实施例的流程示意 图2是本发明方法第二种实施例的流程示意 图3是本发明方法第三种实施例的具体操作流程 图4是本发明系统实施例的逻辑结构示意图。
具体实施例方式
下面通过具体实施方式
结合附图对本发明作进一步详细说明。
本发明的方法流程图如图1所示,包括步骤
Al :分别烧写Boot程序与版本程序。 烧写Boot程序前,需要根据Boot的尺寸,选用产品的CPU在上电时可以支持直接 从其启动的非易失性存储介质来作为Boot程序的存储介质。然后将Boot程序烧写到该已 选好的干净的非易失性存储介质中;而版本则是烧写到Nandflash中。所述非易失性存储 介质可以是Nandflash,也可以是其它类型的存储介质。 产品支持Boot程序和版本程序的升级。在烧写过程中,如果Boot程序有升级程 序,则将其升级程序仍烧写在上述非易失性存储介质中;如果版本程序有升级程序,则将版 本程序从Nandflash指定地址开始烧写。
A2 :系统从Boot程序启动并加载版本程序。 烧写结束后,系统重启,产品的CPU直接从处于非易失性存储介质中的Boot程序 启动,然后由Boot程序搜索Nandflash上的版本程序。搜索到版本程序后,可以直接由Boot 程序来引导版本程序中的内核,如果内核是经过压縮的,则需要在内存中对内核进行解压 縮,并加载版本程序中的文件系统。 由上述本发明的方法流程图可以看出,本发明在产品的CPU不具有Nandflash控 制器时仍然可以使用Nandflash作为版本的存储介质,这样不限制CPU的选型,同时可以降 低产品成本。另外,终端产品可以根据自己的需要,在Nandflash上存储额外的信息,如日 志文件。 为了保证产品系统运行的可靠性,本发明还提出了另一种具体实施例,通过ECC 算法对Nandflash的坏块进行了处理,其方法流程示意图,如图2所示。
Bl、烧写Boot程序到存储介质。 同Al —样,在烧写前需要选用合适Boot程序的非易失性存储介质,且产品CPU支 持从该存储介质启动。 B2、烧写版本程序到Nandflash时对版本程序进行错误更正算法ECC校验并将校 验结果存放入Nandflash。 烧写版本程序到Nandflash是逐块进行的。Nandflash在出厂的时候就有坏块的 存在,并且都有坏块的标记,因此,在烧写过程中,对坏块的标记位进行检查,以判断是否是 坏块。如果检查发现是坏块,则不对该块进行写入操作,由于Nandflash可能会发生位反 转,在烧写版本程序的时候,利用错误更正算法(ECC)算法,对版本程序进行ECC校验,并将 校验结果存放入Nandf lash。 B3、系统从存储介质中的Boot程序启动,Boot程序搜索Nandflash上的版本。
版本烧写结束后,系统重启,CPU直接从烧写到存储介质的Boot程序启动,然后由 Boot程序去搜索Nandflash上的版本程序。 B4、对搜索到的版本程序进行ECC校验并比较,若不通过则对版本进行位纠正。
对搜索到的版本程序,利用与烧写版本程序时同样的ECC校验算法,对版本程序 进行ECC校验,并将此结果与烧写版本程序时所产生的ECC校验结果进行比较,判断是否发 生了位反转现象。如果ECC校验正确,那么就可以直接执行步骤B5 ;如果发生了位反转现 象,则就需要利用ECC校验算法进行位纠正,然后再执行步骤B5。
B5、启动内核加载文件系统。 由Boot来引导版本程序中的内核,如果内核是经过压縮的,则需要在内存对内核进行解压縮,并加载版本程序中的文件系统。 图3是本发明方法的第三种具体实施例的操作流程图,它以基于li皿x操作系统,产品的CPU不支持直接从Nandf lash启动而是支持直接从Norf lash启动为例,详细说明了该产品版本程序升级及启动方法的操作流程。该流程包括如下步骤 1. CPU支持直接从非易失性存储介质Norf lash启动,利用支持这种Norf lash的烧写器往一个完全干净的Norf lash烧写Boot程序; 2.产品支持Boot程序和版本程序的升级。如果是Boot程序有升级程序,则将其升级程序仍烧写在Norf lash上;如果是版本程序有升级程序,则将其升级程序从Nandf lash指定地址处开始烧写;在烧写版本程序的时候,利用错误更正算法(ECC)算法,对版本进行ECC校验,并将校验结果存放入Nandf lash。 3.版本程序烧写结束,系统重启,CPU直接从Norf lash启动; 4.由Norf lash上的Boot程序去搜索Nandf lash上的版本程序; 5.搜索到版本程序以后,利用与烧写版本程序时同样的ECC校验算法,对版本程
序进行ECC校验,并将此结果与烧写版本程序时所产生的ECC校验结果进行比较,判断是否
发生了位反转现象。 6.如果发生了位反转现象,则就需要利用ECC校验算法进行位纠正。 7.如果ECC校验正确或者版本经过位纠正后,直接由Boot来引导版本程序中的内
核,如果内核是经过压縮的,则需要在内存对内核进行解压縮,并加载版本程序中的文件系统。然后由Boot直接引导内核,再由内核去加载文件系统。 本发明除了提供上述方法外,还提供了一种终端产品版本存储的系统,其系统逻辑结构示意图如图4所示。系统包括烧写单元、启动加载单元 在烧写单元中,将产品的引导Boot烧写到合适Boot尺寸且CPU支持的非易失性存储介质,对烧写到所述存储介质的Boot记为存储Boot,将版本烧写到Nandf lash中;
烧写Boot和版本结束后,启动加载单元从存储Boot启动,并由存储Boot搜索Nandf lash上的版本。 在本发明系统实施例中,烧写单元包括升级烧写单元和原始校验单元,启动加载单元包括版本校验单元和对比纠正单元。 升级烧写单元,用于烧写Boot程序的升级程序和/或版本程序的升级程序;如果Boot程序有升级程序,则烧写其升级程序到所述存储介质;如果版本程序有升级程序,则烧写其升级程序到所述Nandf lash 。 原始校验单元对烧写到Nandflash的版本,利用错误更正算法ECC对版本进行ECC校验,并将校验结果存放到Nandf lash中,所述校验结果记为原始校验结果;
对搜索到的Nandf lash上的版本,版本校验单元对该版本进行同样的ECC校验,记录该校验结果为实际校验结果;对比纠正单元对原始校验结果和实际校验结果进行ECC比较,若ECC比较不通过,则利用ECC算法对版本进行位纠正。 版本位纠正后或版本ECC比较通过后,由存储Boot引导Nandflash上的版本。 以上内容是结合具体的实施方式对本发明所做的进一步详细说明,不能认定本发
明的具体实施只局限于这些说明。对于本发明所述技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护
7范围。
权利要求
一种终端产品版本存储的方法,其特征在于,包括步骤A、设置产品版本为Boot程序和版本程序,所述Boot程序用于引导版本程序;步骤B、选择产品CPU支持启动的非易失性存储介质,利用烧写器将所述Boot程序烧写到该存储介质;步骤C、烧写所述版本程序到与非闪存器Nandflash中。
2. 如权利要求1所述的方法,其特征在于,还包括对产品版本的升级处理过程将所 述Boot程序的升级程序烧写到所述存储介质和/或将所述版本程序的升级程序烧写到 Nandflash。
3. 如权利要求1或2所述的方法,其特征在于,还包括步骤D、产品CPU上电时,从烧写到所述存储介质的Boot程序启动,由该Boot程序去引 导所述Nandflash中的版本程序。
4. 如权利要求3所述的方法,其特征在于,所述步骤D具体包括 步骤Dl、启动后,由Boot程序搜索所述Nandflash上的版本程序; 步骤D2、由Boot程序引导所述Nandflash上的版本程序。
5. 如权利要求4所述的方法,其特征在于,所述步骤C在烧写所述版本程序到所述 Nandflash时是逐块进行并绕过坏块的。
6. 如权利要求5所述的方法,其特征在于,所述步骤C还包括利用错误更正算法ECC对烧写到所述Nandflash的版本程序进行ECC校验,存放校验 结果到所述Nandflash。
7. 如权利要求6所述的方法,其特征在于,所述步骤D1还包括利用所述ECC校验算法对搜索到的版本程序进行ECC校验,将其校验结果与所述 Nandflash存有的校验结果进行比较,通过判断是否发生了位反转现象来检查所述ECC校 验是否通过;如果ECC校验通过,则继续步骤D2 ;如果ECC校验不通过,则利用所述ECC校验算法对搜索到的版本程序进行位纠正,然后 继续步骤D2。
8. —种终端产品版本存储的系统,其特征在于,包括烧写单元,用于烧写产品的Boot程序到非易失性存储介质,烧写版本程序到 Nandflash。
9. 如权利要求8所述的系统,其特征在于,所述烧写单元还包括升级烧写单元,用于 烧写Boot程序的升级程序和/或版本程序的升级程序;如果Boot程序有升级程序,则 烧写其升级程序到所述存储介质;如果版本程序有升级程序,则烧写其升级程序到所述 Nandflash。
10. 如权利要求8或9所述的系统,其特征在于,还包括启动加载单元,用于产品的 CPU加电时启动已烧写到存储介质的Boot程序来引导Nandflash中的版本程序。
11. 如权利要求10所述的系统,其特征在于,所述烧写单元还包括原始校验单元,用 于在对版本程序逐块并绕过坏块烧写时进行ECC校验,并将校验结果存放到Nandf lash。
12. 如权利要求11所述的系统,其特征在于,还包括 所述启动加载单元还包括版本校验单元和对比纠正单元,版本校验单元,用于对启动后搜索到的己烧写到Nandflash的版本程序进行ECC校验 并获得校验结果;对比纠正单元,用于将原始校验单元的校验结果和版本校验单元的校验结果进行ECC 比较,若ECC比较不通过,则利用所述ECC校验算法进行位纠正。
全文摘要
本发明公开了一种通讯技术产品领域中存储产品版本的方法。该方法包括产品使用nandflash与另外一种非易失性存储介质的组合作为存储介质,根据产品的具体情况,决定boot和版本存放的位置;系统软件版本升级中,根据升级文件的类型来确定文件存放的位置。本发明使用nandflash,其单位bit的成本相对于目前常用的其他flash的单位bit的成本要低,从而降低了产品的成本。就产品的易用性而言,产品选用两种存储介质分别用于存放boot和版本,可以支持直接启动非易失性存储介质来存储boot,而使用nandflash来存储版本。另外,nandflash较快的写入和擦除速度会提高版本升级的速度。
文档编号G06F11/08GK101727361SQ20091018850
公开日2010年6月9日 申请日期2009年11月30日 优先权日2009年11月30日
发明者陆亦芬 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1