CN102650949A - 一种存储设备的固件升级的方法及装置 - Google Patents
一种存储设备的固件升级的方法及装置 Download PDFInfo
- Publication number
- CN102650949A CN102650949A CN2012101211072A CN201210121107A CN102650949A CN 102650949 A CN102650949 A CN 102650949A CN 2012101211072 A CN2012101211072 A CN 2012101211072A CN 201210121107 A CN201210121107 A CN 201210121107A CN 102650949 A CN102650949 A CN 102650949A
- Authority
- CN
- China
- Prior art keywords
- image file
- file data
- ecc
- memory page
- data blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种存储设备的固件升级的方法,该方法包括:读取所述存储设备中一个存储页的升级镜像文件数据块,所述升级镜像文件数据块包含基础数据和使用带外数据OOB区数据;根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行错误检查和纠正ECC校验,得到ECC校验值;根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备。利用升级固件自带的ECC数据与校验数据进行比较,不用等所有数据下载完即可判断升级是否成功,同时每下载一页数据就会写入一页数据,只需分配很少的内存空间就可完成升级。
Description
技术领域
本发明涉及一种电子设备的软件升级领域,尤其涉及一种存储设备的固件升级的方法及装置。
背景技术
与非型闪存Nand-flash是flash内存的一种,具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。
对于采取与非型闪存Nand-flash存储固件的电子设备而言,如何对固件进行升级达到提升硬件性能的目的是非常关键的,目前现有的技术可分为以下几种:1、直接读取完整升级固件,校验固件,更新固件;2、边下边更新固件;3、边读边写边更新固件,专利文献20101028963.7公开了基于与非型闪存存储设备的系统软件升级边下边写更新固件方案。该方法虽然可以实现一边在线下载固件一边对与非型闪存中的系统数据进行升级,但现有技术至少具有如下缺点:软件升级很关键的一个步骤之一就是读取升级固件,但是由于种种原因,读取的固件可能不完整,特别从网络上下载的固件,出现这种现象的概率更大,用不完整的数据去更新系统极有可能导致系统崩溃,所以需要一个校验过程,保证读取的数据完整,而且直到下载到最后才能判断数据下载是否完整,浪费不必要的时间,实际实现算法比较复杂。
发明内容
本发明实施例所要解决的技术问题在于,提供一种存储设备的固件的升级的方法及装置,可利用升级固件自带的ECC数据,将校验数据和固件自带的ECC数据进行比较,不用等到所有数据下载完成即可判断升级是否成功。
为了解决上述技术问题,本发明实施例提供了一种与非型闪存存储设备的系统软件升级的方法,包括:
读取所述存储设备中一个存储页的升级镜像文件数据块,所述升级镜像文件数据块包含基础数据和使用带外数据OOB区数据;
根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行错误检查和纠正ECC校验,得到ECC校验值;
根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备。
其中,所述OOB区数据是在做升级所述存储设备固件时预先写入每页存储页中。
其中,所述读取所述存储设备中一个存储页的升级镜像文件数据块之后包括:
判断所述读取一个存储页的升级镜像文件数据块是否成功;
若判断结果为成功时,执行所述根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行ECC校验,得到ECC校验值;
若判断结果为失败时,则提示升级失败;
其中,所述当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备之后包括:
判断所述存储页的升级镜像文件数据块是否成功写入存储设备,若判断结果是失败时,确定升级失败;
若判断结果是成功时,进一步判断所述升级镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则继续读取下一个存储页的升级镜像文件数据块。
其中,所述根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,判断二者是否一致的步骤还包括:
当二者不一致时,提示升级失败。
其中,所述存储设备包括与非型闪存Flash。
相应地,本发明实施例还提供了一种存储设备的固件升级装置,包括:
读取单元,用于从网络或者其他存储设备中读取一个存储页的升级镜像文件数据块,所述升级镜像文件数据块包含基础数据和使用带外数据OOB区数据;
校验单元,用于根据所述读取单元读取到的升级镜像文件数据块,对所述读取单元读取到的升级镜像文件数据块中的基础数据进行ECC校验;
判断单元,用于根据所述校验单元的ECC校验值,将所述ECC校验值与所述OOB取的ECC和进行比较,判断二者是否一致;
写入单元,用于根据所述判断单元的判断结果为二者一致时,将所述的存储页的镜像文件数据块写入存储设备。
其中,包括:
第一判断单元,用于判断所述读取单元读取一个存储页的镜像文件数据块是否读取成功,在判断结果为成功时,通知所述校验单元对所述读取单元读取到的升级镜像文件数据块中的基础数据进行ECC校验,在判断结果为失败时,则提示升级固件失败。
其中,包括:
第二判断单元,用于判断所述写入单元将所述存储页的镜像文件数据块写入存储设备是否成功;
第三判断单元,用于根据所述第二判断单元判断所述存储页的镜像文件数据块成功写入存储设备时,进一步判断所述镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则,通知所述读取单元继续读取下一个存储页的镜像文件数据块。
其中,包括:
提示单元,用于根据所述第一判断单元判断所述读取单元读取一个存储页的镜像文件数据块为失败或所述第二判断单元判断所述写入单元将所述存储页的镜像文件数据块写入存储设备为失败时,提示升级固件失败。
实施本发明实施例,具有如下有益效果:
本发明不需要把升级固件一次性下载至内存中,可以每次下载一个页大小数据,校验一个页大小数据,最后烧入一个页大小数据至与非型nand flash中,重复以上过程,直到所有数据烧入完成,这样分页下载,校验,写入,可以大大节省升级需要的内存空间,并不用等到所有数据下载完成即可判断升级是否成功,节约升级时间,同时利用了固件自带的ECC数据,优化了校验流程,大大提高了升级效率,而且简化了实现算法。
附图说明
图1为本发明的一种存储设备的固件升级的方法的第一实施例的流程图;
图2为本发明的一种存储设备的固件升级的方法的第二实施例的流程图;
图3为本发明的一种存储设备的固件升级的方法的第三实施例的流程图;
图4为本发明的一种存储设备的固件升级装置的第一实施例的结构示意图;
图5为本发明的一种存储设备的固件升级装置的第二实施例的结构示意图;
图6为本发明的一种存储设备的固件升级装置的第三实施例的结构示意图;
图7为本发明的一种存储设备的固件升级装置的第四实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,为本发明的一种存储设备的固件升级的方法的第一实施例的流程图。所述方法包括:
S101,读取所述存储设备中一个存储页的升级镜像文件数据块,所述升级镜像文件数据块包含基础数据和使用带外数据OOB区数据;
具体的,本发明实施例中的固件升级在信息时代中已经成为常态,随着信息的来临,厂商的设计很难全面的满足客户需求,更多的厂商通过固件升级,从而为用户提供更多更新的功能,这里所述的固件升级,也称固件刷新,刷写,重写,烧录或刷机,是指把新的固件写入芯片中,代替原有的固件的过程。
本发明实施例中的存储设备包括与非型闪存Flash,由于与非型闪存Flash的规格不一样,存储页的大小也是不一样的,当需要对固件升级时,从网络或者其他存储设备读取用于更新与非型闪存存储设备中的一个存储页的升级镜像文件数据块是与所述与非型闪存存储设备中的一个存储页大小相适应的升级镜像文件数据块,并将所述升级镜像文件数据块写入与非型闪存存储设备相对应的一个存储页中,所述升级镜像文件数据块包括基础数据和OOB(out-of-band)区数据,其中,所述读取一个存储页的镜像文件数据块包括从网络服务器或者USB等介质中读取,所述升级固件可存储在U盘,远程网络等介质上,如果是通过网络升级,所述读取数据实际上就是从网络下载升级固件数据,如果是通过USB等介质升级,所述读取数据就是读取USB存储介质里面的升级固件。
需要说明的是,与非型闪存存储设备的每页存储页的升级镜像文件数据块包括基础数据和OOB区数据,其中,所述OOB区数据是在做升级所述存储设备固件时,可以预先所述OOB区数据写入每页存储页中,,这样读取一页存储页的数据后,可以对其基础数据进行ECC校验,得到所述ECC校验值,然后将所述ECC校验值与所述OOB区的ECC和比较,若二者一致的,则说明数据下载完整。
S102,根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行错误检查和纠正ECC校验,得到ECC校验值;
具体的,本发明实施例中所述读取到的一页存储页的升级镜像文件数据块包括基础数据和OOB区数据,其中,所述OOB区数据包含对页的ECC校验和,所述基础数据是指实际的升级镜像数据,本发明实施例中,当往所述与非型闪存 Flash中每一个存储页中写入数据的时候,会生成一个ECC校验和,称之为原ECC校验和,并将所述ECC校验和保存到每页存储页的OOB区数据中,当从所述与非型 Flash中读取数据的时候,每256字节我们生成一个ECC校验和,称之为新ECC校验和,本发明就是利用了ECC校验和来判断升级时读取的数据是否完整,在读取完1page数据后,采用ECC校验算法对基础数据进行校验,得出一个ECC校验值,根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,判断二者是否一致,当二者一致时将所述存储页的升级镜像文件数据块写入存储设备,当二者不一致时,提示升级固件失败。
S103,根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备。
具体的,与非型闪存nand flash中每一页存储页最后有一块区域,用于存放校验的ECC和及其他一下信息,如上层文件系统的相关的数据和自己文件系统相关的数据,这个区域在Linux MTD相关系统中,被称为OOB(Out of Band)。
升级固件每页后面都会有一个OOB区数据,OOB区数据包含一个ECC校验和,所述OOB区数据是在做升级所述存储设备固件时预先写入每页存储页中,在读取、校验1页存储页数据后就会对基础数据也就是实际的数据部分做一次ECC校验,得出一个ECC校验和,并所述得到的ECC校验值与读取的OOB区数据中的ECC校验进行比较,判断当前读取的1页存储页的数据是否完整,若所述ECC校验校验值和OOB数据区的ECC校验和一致,说明数据读取完整。
本发明提供的一种存储设备的固件升级的方法不需要把升级固件一次性下载至与非型闪存存储设备中,而是每次下载一个存储页大小数据,校验一个存储页大小数据,最后烧入一个存储页大小数据至与非型闪存nand flash中,重复以上过程,直到所有数据烧入完成,这样分页下载,校验,写入,可以大大节省升级需要的内存空间,并不用等到所有数据下载完成即可判断升级是否成功,节约升级时间,同时在固件升级时,将新固件自带的ECC校验和与读取校验基础数据得出的ECC校验和进行比较,可以判断数据是否读取正确。
请参见图2,为本发明的一种存储设备的固件升级的方法的第二实施例的流程图。所述方法包括:
S201,读取所述存储设备中一个存储页的升级镜像文件数据块,所述升级镜像文件数据块包含基础数据和使用带外数据OOB区数据;
S202,判断所述读取一个存储页的升级镜像文件数据块是否成功;
具体的,在本发明实施例中根据S201步骤中读取所述存储设备中一个存储页的升级镜像文件数据块后,并判断所述读取一个存储页的升级镜像文件数据块是否成功,所述读取所述存储设备中一个存储页的升级镜像文件数据块包括基础数据和OOB区数据,当判断所述读取一个存储页的升级镜像文件数据块是否成功,若判断结果为成功时,执行所述根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行ECC校验,得到ECC校验值,若判断结果为失败时,则提示升级固件失败。
S203,若判断结果为成功时,执行所述根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行ECC校验,得到ECC校验值;
具体的,本发明实施例S202步骤中判断所述读取一个存储页的升级镜像文件数据块成功时,执行所述根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行ECC校验,得到ECC校验值,所述读取到的一页存储页的升级镜像文件数据块包括基础数据和OOB区数据,其中,所述OOB区数据包含对页的ECC校验和,所述基础数据是指实际的升级镜像数据,本发明实施例中,当往所述与非型闪存 Flash中每一个存储页中写入数据的时候,会生成一个ECC校验和,称之为原ECC校验和,并将所述ECC校验和保存到每页存储页的OOB区数据中,当从所述与非型 Flash中读取数据的时候,每256字节我们生成一个ECC校验和,称之为新ECC校验和,本发明就是利用了ECC校验和来判断升级时读取的数据是否完整,在读取完1page数据后,采用ECC校验算法对基础数据进行校验,得出一个ECC校验值,根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,判断二者是否一致,当二者一致时将所述存储页的升级镜像文件数据块写入存储设备,当二者不一致时,提示升级固件失败。
S204,若判断结果为失败时,则提示升级固件失败;
具体的,本发明实施例中S202步骤中判断所述读取一个存储页的升级镜像文件数据块失败时,即无法从网络服务器、U盘、USB等介质中读取一个存储页的镜像文件数据块,也就是说无法通过网络进行固件升级或者无法通过USB等介质进行固件升级,此时则提示升级固件失败。
S205,根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行错误检查和纠正ECC校验,得到ECC校验值;
S206,根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备。
本发明实施例中在所述读取所述存储设备中一个存储页的升级镜像文件数据块之后,判断所述读取一个存储页的升级镜像文件数据块是否成功, 若判断结果为成功时,执行所述根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行ECC校验,得到ECC校验值,若判断结果为失败时,则提示升级固件失败。
请参见图3,为本发明的一种存储设备的固件升级的方法的第三实施例的流程图。所述方法包括:
S301,读取所述存储设备中一个存储页的升级镜像文件数据块,所述升级镜像文件数据块包含基础数据和使用带外数据OOB区数据;
S302,根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行错误检查和纠正ECC校验,得到ECC校验值;
S303,根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备;
S304,判断所述存储页的升级镜像文件数据块是否成功写入存储设备,若判断结果是失败时,确定升级失败;
具体的,在本发明实施例中S303步骤中,根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备之后,需要判断所述存储页的升级镜像文件数据块是否成功写入存储设备,本发明实施例中的存储设备包括与非型闪存Flash,由于与非型闪存Flash的规格不一样,存储页的大小也是不一样的,当需要对固件升级时,从网络或者其他存储设备读取用于更新与非型闪存存储设备中的一个存储页的升级镜像文件数据块是与所述与非型闪存存储设备中的一个存储页大小相适应的升级镜像文件数据块,需要判断所述存储页的升级镜像文件数据块是否成功写入存储设备需要判断所述存储页的升级镜像文件数据块是否成功写入存储设备并将所述升级镜像文件数据块写入与非型闪存存储设备相对应的一个存储页中,需要判断所述存储页的升级镜像文件数据块是否成功写入存储设备,若判断结果是失败时,确定固件升级失败。
S305,若判断结果是成功时,进一步判断所述升级镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则继续读取下一个存储页的升级镜像文件数据块。
具体的,在本发明实施例中S303步骤中,根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备之后,需要判断所述存储页的升级镜像文件数据块是否成功写入存储设备,若判断结果是成功时,需要进一步判断所述升级镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则继续读取下一个存储页的升级镜像文件数据块,本发明提供的一种存储设备的固件升级的方法不需要把升级固件一次性下载至与非型闪存存储设备中,而是每次下载一个存储页大小数据,校验一个存储页大小数据,最后烧入一个存储页大小数据至与非型闪存nand flash中,因此在将所述存储页的升级镜像文件数据块写入存储设备之后,需要判断所述存储页的升级镜像文件数据块是否成功写入存储设备,若判断结果是成功时,需要进一步判断所述升级镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则继续读取下一个存储页的升级镜像文件数据块,重复以上过程,直到所有数据烧入完成。
本发明实施例中,在所述ECC校验值与所述OOB区数据中的ECC和二者一致时,将所述存储页的升级镜像文件数据块写入存储设备之后判断所述存储页的升级镜像文件数据块是否成功写入存储设备,若判断结果是失败时,确定升级失败,若判断结果是成功时,进一步判断所述升级镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则继续读取下一个存储页的升级镜像文件数据块。这样分页下载,校验,写入,可以大大节省升级需要的内存空间,并不用等到所有数据下载完成即可判断升级是否成功,节约升级时间。
请参见图4,为本发明的一种存储设备的固件升级装置的第一实施例的结构示意图。如图4所示,所述固件升级装置包括:
读取单元10,用于从网络或者其他存储设备中读取一个存储页的升级镜像文件数据块,所述升级镜像文件数据块包含基础数据和使用带外数据OOB区数据;
具体的,本发明实施例中的存储设备包括与非型闪存Flash,由于与非型闪存Flash的规格不一样,存储页的大小也是不一样的,当需要对固件升级时,从网络或者其他存储设备读取用于更新与非型闪存存储设备中的一个存储页的升级镜像文件数据块是与所述与非型闪存存储设备中的一个存储页大小相适应的升级镜像文件数据块,并将所述升级镜像文件数据块写入与非型闪存存储设备相对应的一个存储页中,所述升级镜像文件数据块包括基础数据和OOB(out-of-band)区数据,其中,所述读取一个存储页的镜像文件数据块包括从网络服务器或者USB等介质中读取,所述升级固件可存储在U盘,远程网络等介质上,如果是通过网络升级,所述读取数据实际上就是从网络下载升级固件数据,如果是通过USB等介质升级,所述读取数据就是读取USB存储介质里面的升级固件。
需要说明的是,与非型闪存存储设备的每页存储页的升级镜像文件数据块包括基础数据和OOB区数据,其中,所述OOB区数据是在做升级所述存储设备固件时,可以预先所述OOB区数据写入每页存储页中,这样读取一页存储页的数据后,可以对其基础数据进行ECC校验,得到所述ECC校验值,然后将所述ECC校验值与所述OOB区的ECC和比较,若二者一致的,则说明数据下载完整。
校验单元30,用于根据所述读取单元10读取到的升级镜像文件数据块,对所述读取单元10读取到的升级镜像文件数据块中的基础数据进行ECC校验;
具体的,本发明实施例中根据所述读取单元10读取到的升级镜像文件数据块,对所述读取单元10读取到的升级镜像文件数据块中的基础数据进行ECC校验,所述读取单元10读取到的一页存储页的升级镜像文件数据块包括基础数据和OOB区数据,其中,所述OOB区数据包含对页的ECC校验和,所述基础数据是指实际的升级镜像数据,
本发明实施例中,当往所述与非型闪存 Flash中每一个存储页中写入数据的时候,会生成一个ECC校验和,称之为原ECC校验和,并将所述ECC校验和保存到每页存储页的OOB区数据中,当所述读取单元10从所述与非型 Flash中读取数据的时候,每256字节我们生成一个ECC校验和,称之为新ECC校验和,本发明就是利用了ECC校验和来判断升级时读取的数据是否完整,在读取完1page数据后,采用ECC校验算法对基础数据进行校验,得出一个ECC校验值,根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,判断二者是否一致,当二者一致时将所述存储页的升级镜像文件数据块写入存储设备,当二者不一致时,提示升级固件失败。
判断单元40,用于根据所述校验单元30的ECC校验值,将所述ECC校验值与所述OOB取的ECC和进行比较,判断二者是否一致;
具体的,本发明实施例如中所述判断单元40根据所述校验单元30的ECC校验值,将所述ECC校验值与所述OOB取的ECC和进行比较,判断二者是否一致,当二者一致时将所述存储页的升级镜像文件数据块写入存储设备,当二者不一致时,提示升级固件失败,升级固件每页后面都会有一个OOB区数据,OOB区数据包含一个ECC校验和,所述OOB区数据是在做升级所述存储设备固件时预先写入每页存储页中,在读取校验1页存储页数据后就会对基础数据也就是实际的数据部分做一次ECC校验,得出一个ECC校验和,并所述得到的ECC校验值与读取的OOB区数据中的ECC校验进行比较,判断当前读取的1页存储页的数据是否完整,若所述ECC校验校验值和OOB数据区的ECC校验和一致,说明数据读取完整。
写入单元50,用于根据所述判断单元40的判断结果为二者一致时,将所述的存储页的镜像文件数据块写入存储设备。
具体的,本发明实施例中所述写入单元50根据所述判断单元40的判断结果为二者一致时,将所述的存储页的镜像文件数据块写入存储设备。
本发明实施例中通过读取单元10从网络或者其他存储设备中读取所述存储设备中一个存储页的升级镜像文件数据块,所述校验单元30根据所述读取单元10读取到的升级镜像文件数据块,对所述读取单元10读取到的升级镜像文件数据块中的基础数据进行ECC校验,所述判断单元40根据所述校验单元30的ECC校验值,将所述ECC校验值与所述OOB取的ECC和进行比较,判断二者是否一致,所述写入单元50根据所述判断单元40的判断结果为二者一致时,将所述的存储页的镜像文件数据块写入存储设备。
本发明实施例提供的一种存储设备的固件升级的装置不需要把升级固件一次性下载至与非型闪存存储设备中,而是每次下载一个存储页大小数据,校验一个存储页大小数据,最后烧入一个存储页大小数据至与非型闪存nand flash中,重复以上过程,直到所有数据烧入完成,这样分页下载,校验,写入,可以大大节省升级需要的内存空间,并不用等到所有数据下载完成即可判断升级是否成功,节约升级时间,同时在固件升级时,将新固件自带的ECC校验和与读取校验基础数据得出的ECC校验和进行比较,可以判断数据是否读取正确。
请参见图5,为本发明的一种存储设备的固件升级装置的第二实施例的结构示意图。所述固件升级装置除包括上述图4中的:读取单元10、校验单元30、判断单元40、写入单元50外,本实施例中,所述固件升级装置还包括:
第一判断单元20,用于判断所述读取单元10读取一个存储页的镜像文件数据块是否读取成功,在判断结果为成功时,通知所述校验单元30对所述读取单元10读取到的升级镜像文件数据块中的基础数据进行ECC校验,在判断结果为失败时,则提示升级固件失败。
具体的,在本发明实施例中步骤中所述读取单元10用于读取一个存储页的镜像文件数据块,并需要判断所述读取单元10读取一个存储页的镜像文件数据块是否成功,本发明实施例通过第一判断单元20判断所述读取单元10读取一个存储页的镜像文件数据块是否读取成功,所述读取所述存储设备中一个存储页的升级镜像文件数据块包括基础数据和OOB区数据,当所述第一判断单元20判断所述读取单元10读取一个存储页的升级镜像文件数据块为成功时,执行所述校验单元30对所述读取到的升级镜像文件数据块中的基础数据进行ECC校验,所述校验单元30根据所述读取单元10读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行ECC校验,得到ECC校验值,若判断结果为失败时,则提示升级固件失败,即当所述第一判断单元20判断所述读取单元10读取一个存储页的镜像文件数据块为失败时,所述读取单元10无法从网络服务器、U盘、USB等介质中读取一个存储页的镜像文件数据块,也就是说无法通过网络进行固件升级或者无法通过USB等介质进行固件升级,此时则提示升级固件失败。
本发明实施例通过第一判断单元20判断所述读取单元10读取一个存储页的镜像文件数据块是否读取成功,在判断结果为成功时,通知所述校验单元30对所述读取单元10读取到的升级镜像文件数据块中的基础数据进行ECC校验,在判断结果为失败时,则提示升级固件失败。
请参见图6,为本发明的一种存储设备的固件升级装置的第三实施例的结构示意图。所述固件升级装置除包括上述图4中的:读取单元10、校验单元30、判断单元40、写入单元50外,本实施例中,所述固件升级装置还包括:
第二判断单元60,用于判断所述写入单元50将所述存储页的镜像文件数据块写入存储设备是否成功;
具体的,在本发明实施例中所述校验单元30对所述读取单元10读取到的升级镜像文件数据块中的基础数据进行ECC校验,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,当二者一致时,通过写入单元50将所述存储页的升级镜像文件数据块写入存储设备之后,需要判断所述存储页的升级镜像文件数据块是否成功写入存储设备,本发明实施例通过第二判断单元60判断所述写入单元50将所述存储页的镜像文件数据块写入存储设备是否成功,若所述第二判断单元60判断结果是失败时,确定固件升级失败。
第三判断单元70,用于根据所述第二判断单元60判断所述存储页的镜像文件数据块成功写入存储设备时,进一步判断所述镜像文件数据块是否下载完毕。
具体的,在本发明实施例中所述第三判断单元70根据所述第二判断单元60判断所述存储页的镜像文件数据块成功写入存储设备时,进一步判断所述镜像文件数据块是否下载完毕,若所述第三判断单元70判断所述镜像文件数据块下载完毕,则确定升级成功,否则,通知所述读取单元10继续读取下一个存储页的镜像文件数据块。
本发明实施例中当所述第二判断单元60判断所述写入单元50将所述存储页的镜像文件数据块成功写入存储设备时,需要进一步判断所述升级镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则继续读取下一个存储页的升级镜像文件数据块,本发明实施例在所述第二判断单元60判断所述存储页的镜像文件数据块成功写入存储设备时,通过所述第三判断单元70进一步判断所述镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则,通知所述读取单元10继续读取下一个存储页的镜像文件数据块。
本发明实施例所提供的一种存储设备的固件升级的装置不需要把升级固件一次性下载至与非型闪存存储设备中,而是每次下载一个存储页大小数据,校验一个存储页大小数据,最后烧入一个存储页大小数据至与非型闪存nand flash中,因此,通过写入单元10将所述存储页的升级镜像文件数据块写入存储设备之后,需要第二判断单元60判断所述存储页的升级镜像文件数据块是否成功写入存储设备,若所述第二判断单元60判断结果是成功时,需要通过所述第三判断单元70进一步判断所述升级镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则继续读取下一个存储页的升级镜像文件数据块,重复以上过程,直到所有数据烧入完成,这样分页下载,校验,写入,可以节省升级需要的内存空间,并不用等到所有数据下载完成即可判断升级是否成功,节约升级时间。
请参见图7,为本发明的一种存储设备的固件升级装置的第四实施例的结构示意图。所述固件升级装置除包括上述图6中的:读取单元10、校验单元30、判断单元40、写入单元50、第二判断单元60和上述图5中的第一判断单元20外,本实施例中,所述固件升级装置还包括:
提示单元80,用于根据所述第一判断单元20判断所述读取单元10读取一个存储页的镜像文件数据块为失败或所述第二判断单元60判断所述写入单元50将所述存储页的镜像文件数据块写入存储设备为失败时,提示升级固件失败。
具体的,本发明实施例中在所述读取单元10读取一个存储页的镜像文件数据块时,需要通过第一判断单元20判断所述读取单元10读取一个存储页的镜像文件数据块是否读取成功,在所述第一判断单元20判断结果为成功时,通知所述校验单元30对所述读取单元10读取到的升级镜像文件数据块中的基础数据进行ECC校验,在判断结果为失败时,则通过提示单元80提示升级固件失败,同时,所述第二判断单元60在判断所述写入单元50将所述存储页的镜像文件数据块写入存储设备为失败时,通过提示单元80提示升级固件失败。
本发明实施例根据所述第一判断单元20判断所述读取单元10读取一个存储页的镜像文件数据块为失败或所述第二判断单元60判断所述写入单元50将所述存储页的镜像文件数据块写入存储设备为失败时,通过提示单元80提示升级固件失败。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种存储设备的固件升级的方法,其特征在于,包括:
读取所述存储设备中一个存储页的升级镜像文件数据块,所述升级镜像文件数据块包含基础数据和使用带外数据OOB区数据;
根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行错误检查和纠正ECC校验,得到ECC校验值;
根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备。
2.如权利要求1所述的方法,其特征在于,所述OOB区数据是在做升级所述存储设备固件时预先写入每页存储页中。
3.如权利要求1所述的方法,其特征在于,所述读取所述存储设备中一个存储页的升级镜像文件数据块之后包括:
判断所述读取一个存储页的升级镜像文件数据块是否成功;
若判断结果为成功时,执行所述根据所述读取到的升级镜像文件数据块,对所述读取到的升级镜像文件数据块中的基础数据进行ECC校验,得到ECC校验值;
若判断结果为失败时,则提示升级固件失败。
4.如权利要求1所述的方法,其特征在于,所述当二者一致时,将所述存储页的升级镜像文件数据块写入存储设备之后包括:
判断所述存储页的升级镜像文件数据块是否成功写入存储设备,若判断结果是失败时,确定升级失败;
若判断结果是成功时,进一步判断所述升级镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则继续读取下一个存储页的升级镜像文件数据块。
5.如权利要求1所述的方法,其特征在于,所述根据所述ECC校验值,将所述ECC校验值与所述OOB区数据中的ECC和进行比较,判断二者是否一致的步骤还包括:
当二者不一致时,提示升级固件失败。
6.如权利要求1所述的方法,其特征在于,所述存储设备包括与非型闪存Flash。
7.一种存储设备的固件升级装置,其特征在于,包括:
读取单元,用于从网络或者其他存储设备中读取一个存储页的升级镜像文件数据块,所述升级镜像文件数据块包含基础数据和使用带外数据OOB区数据;
校验单元,用于根据所述读取单元读取到的升级镜像文件数据块,对所述读取单元读取到的升级镜像文件数据块中的基础数据进行ECC校验;
判断单元,用于根据所述校验单元的ECC校验值,将所述ECC校验值与所述OOB取的ECC和进行比较,判断二者是否一致;
写入单元,用于根据所述判断单元的判断结果为二者一致时,将所述的存储页的镜像文件数据块写入存储设备。
8.如权利要求7所述的装置,其特征在于,包括:
第一判断单元,用于判断所述读取单元读取一个存储页的镜像文件数据块是否读取成功,在判断结果为成功时,通知所述校验单元对所述读取单元读取到的升级镜像文件数据块中的基础数据进行ECC校验,在判断结果为失败时,则提示升级固件失败。
9.如权利要求7所述的装置,其特征在于,包括:
第二判断单元,用于判断所述写入单元将所述存储页的镜像文件数据块写入存储设备是否成功;
第三判断单元,用于根据所述第二判断单元判断所述存储页的镜像文件数据块成功写入存储设备时,进一步判断所述镜像文件数据块是否下载完毕,若判断下载完毕,则确定升级成功,否则,通知所述读取单元继续读取下一个存储页的镜像文件数据块。
10.如权利要求7所述的装置,其特征在于,包括:
提示单元,用于根据所述第一判断单元判断所述读取单元读取一个存储页的镜像文件数据块为失败或所述第二判断单元判断所述写入单元将所述存储页的镜像文件数据块写入存储设备为失败时,提示升级固件失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101211072A CN102650949A (zh) | 2012-04-24 | 2012-04-24 | 一种存储设备的固件升级的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101211072A CN102650949A (zh) | 2012-04-24 | 2012-04-24 | 一种存储设备的固件升级的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102650949A true CN102650949A (zh) | 2012-08-29 |
Family
ID=46692957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101211072A Pending CN102650949A (zh) | 2012-04-24 | 2012-04-24 | 一种存储设备的固件升级的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102650949A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981969A (zh) * | 2012-11-21 | 2013-03-20 | 记忆科技(深圳)有限公司 | 重复数据删除的方法及其固态硬盘 |
CN103513999A (zh) * | 2012-06-25 | 2014-01-15 | 联想(北京)有限公司 | 一种更新系统固件的方法及电子设备 |
WO2014107940A1 (zh) * | 2013-01-11 | 2014-07-17 | 深圳市江波龙电子有限公司 | 嵌入式存储器的管理方法、嵌入式存储器及电子设备 |
CN104216791A (zh) * | 2013-05-30 | 2014-12-17 | 上海斐讯数据通信技术有限公司 | 一种校验Flash存储数据的方法 |
CN104484185A (zh) * | 2014-12-30 | 2015-04-01 | 深圳市大疆创新科技有限公司 | 固件生成系统及方法 |
CN104636156A (zh) * | 2013-11-12 | 2015-05-20 | 沈阳新松机器人自动化股份有限公司 | 一种固件升级方法及系统 |
CN110874225A (zh) * | 2018-08-29 | 2020-03-10 | 杭州海康威视数字技术股份有限公司 | 一种数据校验方法、装置、嵌入式设备及存储介质 |
CN113571121A (zh) * | 2021-07-26 | 2021-10-29 | 杭州国芯科技股份有限公司 | 嵌入式设备NAND Flash的ECC码存储方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030156454A1 (en) * | 2002-02-21 | 2003-08-21 | Jian Wei | Direct memory swapping between NAND flash and SRAM with error correction coding |
CN102360569A (zh) * | 2011-08-24 | 2012-02-22 | 中兴通讯股份有限公司 | 非易失闪存芯片烧录方法、系统及装置 |
-
2012
- 2012-04-24 CN CN2012101211072A patent/CN102650949A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030156454A1 (en) * | 2002-02-21 | 2003-08-21 | Jian Wei | Direct memory swapping between NAND flash and SRAM with error correction coding |
CN102360569A (zh) * | 2011-08-24 | 2012-02-22 | 中兴通讯股份有限公司 | 非易失闪存芯片烧录方法、系统及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103513999B (zh) * | 2012-06-25 | 2018-04-27 | 联想(北京)有限公司 | 一种更新系统固件的方法及电子设备 |
CN103513999A (zh) * | 2012-06-25 | 2014-01-15 | 联想(北京)有限公司 | 一种更新系统固件的方法及电子设备 |
WO2014079201A1 (zh) * | 2012-11-21 | 2014-05-30 | 记忆科技(深圳)有限公司 | 重复数据删除的方法及其固态硬盘 |
CN102981969A (zh) * | 2012-11-21 | 2013-03-20 | 记忆科技(深圳)有限公司 | 重复数据删除的方法及其固态硬盘 |
WO2014107940A1 (zh) * | 2013-01-11 | 2014-07-17 | 深圳市江波龙电子有限公司 | 嵌入式存储器的管理方法、嵌入式存储器及电子设备 |
CN104216791B (zh) * | 2013-05-30 | 2018-05-01 | 上海斐讯数据通信技术有限公司 | 一种校验Flash存储数据的方法 |
CN104216791A (zh) * | 2013-05-30 | 2014-12-17 | 上海斐讯数据通信技术有限公司 | 一种校验Flash存储数据的方法 |
CN104636156A (zh) * | 2013-11-12 | 2015-05-20 | 沈阳新松机器人自动化股份有限公司 | 一种固件升级方法及系统 |
CN104484185B (zh) * | 2014-12-30 | 2018-03-20 | 深圳市大疆创新科技有限公司 | 固件生成系统及方法 |
CN104484185A (zh) * | 2014-12-30 | 2015-04-01 | 深圳市大疆创新科技有限公司 | 固件生成系统及方法 |
CN110874225A (zh) * | 2018-08-29 | 2020-03-10 | 杭州海康威视数字技术股份有限公司 | 一种数据校验方法、装置、嵌入式设备及存储介质 |
CN110874225B (zh) * | 2018-08-29 | 2023-05-02 | 杭州海康威视数字技术股份有限公司 | 一种数据校验方法、装置、嵌入式设备及存储介质 |
CN113571121A (zh) * | 2021-07-26 | 2021-10-29 | 杭州国芯科技股份有限公司 | 嵌入式设备NAND Flash的ECC码存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102650949A (zh) | 一种存储设备的固件升级的方法及装置 | |
CN105740157B (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN111309364B (zh) | 芯片程序的升级方法、装置及存储介质 | |
US9645894B2 (en) | Data storage device and flash memory control method | |
US9164756B2 (en) | Software updating process for an embedded device | |
US20110004871A1 (en) | Embedded electronic device and firmware updating method thereof | |
WO2018016199A1 (ja) | データ書き換え装置、データ書き換えプログラム | |
CN101923473B (zh) | 嵌入式电子装置及更新其固件的方法 | |
CN109086078B (zh) | 安卓系统升级方法、装置、服务器及移动终端 | |
US9235534B2 (en) | Data protecting method, memory controller and memory storage apparatus | |
CN102819442B (zh) | 一种嵌入式设备程序烧写的方法及系统 | |
CN104123153A (zh) | 用于使用usb升级固件的装置与方法 | |
WO2016078263A1 (zh) | 升级控制设备、终端、终端升级方法及系统、存储介质 | |
TWI633428B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
US8601464B2 (en) | Memory online update system and method | |
CN102163155A (zh) | 存储设备的升级方法及升级控制装置 | |
WO2018145392A1 (zh) | 差分升级方法及装置、终端、存储介质、处理器 | |
KR20160075792A (ko) | Nand 메모리 디바이스에 저장되는 데이터의 페일 세이프 리프레시 | |
CN102654839A (zh) | 一种实现现场可编程门阵列可靠升级的方法及装置 | |
US9032135B2 (en) | Data protecting method, memory controller and memory storage device using the same | |
CN102799497A (zh) | Nvram数据恢复系统及方法 | |
US20090259796A1 (en) | Data writing method for non-volatile memory and storage system and controller using the same | |
CN103984506A (zh) | 闪存存储设备数据写的方法和系统 | |
CN102279757A (zh) | 一种系统程序启动的方法及装置 | |
CN102662688A (zh) | 一种Nor flash更新方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120829 |
|
RJ01 | Rejection of invention patent application after publication |