机顶盒分区更改升级方法及系统与流程

文档序号:11176912阅读:10807来源:国知局
机顶盒分区更改升级方法及系统与流程

本发明涉及数字电视领域,尤其涉及一种机顶盒分区更改升级方法及系统。



背景技术:

与其它数字设备一样,机顶盒系统及所有数据都存储在flash中。根据不同的用途,机顶盒又将flash划分为不同的区域,即分区,不同分区对应的数据是以镜像的方式被写入。

loader升级主要分两类:usb升级和ota升级。usb升级是将升级镜像打包成一个压缩升级包,放在u盘某个指定目录下,通过手动操作进行升级。ota升级是将制作出来的升级包转换成升级流,通过信号线或者网线进行远程升级。升级,一般会将新的系统完全替换老的系统,即根据分区表中的信息将升级包或者升级流中的镜像数据替换掉flash中对应分区的数据。

flash中分区的划分一般在开发前期确定,一旦分区确定后很难更改。因为更改分区会影响到其他分区数据的存储,容易导致系统问题。特别对于已经出货的机顶盒,更改分区需要将机顶盒分区信息及受到影响的其他所有分区数据都要重新更新,可能会导致一些设备信息或者授权信息等重要数据丢失,从而导致严重损失。

对于已经划分好的分区通常不应再重新划分,尤其对于已经量产的。但是,实际上会出现一些已经量产的机顶盒必须重新划分分区的情况。比如由于更换flash型号或者厂家导致原先划分好的分区总大小超出新flash的容量,致使超出部分的分区镜像挂不上,从而出现系统问题;又如系统备份分区的大小划分为400m,设计的升级包大小为150m,一般系统备份分区需要至少存储一个备份升级包及一个ota升级过程中的临时升级包,所以400m的分区可以满足原始设计需要。但是由于随着客户需求越来越多,经过多次版本更新后,升级包由原来的150m变为200m,这样就导致400m的系统备份分区已经无法满足需求。这就必须对已经划分好的分区进行重新划分,进行更改,这就很有可能造成其他分区数据受到影响,导致一些设备信息或者授权信息等重要数据丢失,造成严重损失。



技术实现要素:

有鉴于此,有必要针对上述机顶盒flash重新进行分区导致重要数据丢失,造成严重损失的问题,提供一种机顶盒分区更改升级方法及系统。

本发明提供的一种机顶盒分区更改升级方法,包括如下步骤:

s10:在机顶盒升级时,判断机顶盒flash的分区是否改变;

s20:若分区未发生改变,则采用直接镜像替换的方式进行升级,将升级数据镜像直接替换对应原始分区中的镜像数据;

s30:若分区发生改变,则判断升级数据镜像是否是最后一个分区的镜像,若是则将升级数据镜像直接写入到flash中;

s40:若不是最后一个分区的镜像,则获取升级数据镜像对应分区的分区名、分区首地址及分区大小,计算出升级数据镜像对应分区在原始分区中覆盖的地址范围,计算出覆盖地址范围内涉及到的所有镜像的个数及总大小;

s50:获得机顶盒内存所剩空间大小,若涉及到的所有镜像的总大小小于机顶盒内存所剩空间,则将所涉及的所有镜像存储到机顶盒内存空间中;若大于机顶盒内存所剩空间,则将所涉及的所有镜像部分存储到外部存储设备。

在其中的一个实施方式中,所述步骤s10具体为:预先在升级数据中设置分区改变标志,若分区改变标志为0则flash的分区不发生改变,若分区改变标志为1则flash的分区发生改变,通过检测升级数据中的分区改变标志进行判断。

在其中的一个实施方式中,所述步骤s50具体为:在借助外部存储设备进行存储时,按照镜像数据的顺序,由倒数第一的镜像开始存储,直至剩余镜像数据总大小小于机顶盒的内存所剩空间,将剩余镜像数据存储到机顶盒内存中。

在其中的一个实施方式中,所述步骤s50具体为:优先将重要的镜像数据存储到机顶盒内存中,且在借助外部存储设备存储时,若有多个外部存储设备则优先选择存储空间大的外部存储设备进行存储。

在其中的一个实施方式中,所述方法还包括:获取下一个升级数据镜像进行升级;优先在从升级包或升级流中寻找升级数据镜像,若升级数据镜像不存在,再从机顶盒内存中寻找升级数据镜像,若机顶盒内存中也不存在升级数据镜像,再到外部存储设备中寻找升级数据镜像;如果下一升级数据镜像既存在升级流中,同时也存在机顶盒内存或者外部存储设备中,则删除机顶盒内存或者外部存储设备中的镜像。

本发明提供的一种机顶盒分区更改升级系统,包括:

分区改变判断单元,在机顶盒升级时,判断机顶盒flash的分区是否改变;

直接替换升级单元,若分区未发生改变,则采用直接镜像替换的方式进行升级,将升级数据镜像直接替换对应原始分区中的镜像数据;

镜像保存升级单元,若分区发生改变,则判断升级数据镜像是否是最后一个分区的镜像,若是则将升级数据镜像直接写入到flash中;

若不是最后一个分区的镜像,所述镜像保存升级单元则获取升级数据镜像对应分区的分区名、分区首地址及分区大小,计算出升级数据镜像对应分区在原始分区中覆盖的地址范围,计算出覆盖地址范围内涉及到的所有镜像的个数及总大小;

所述镜像保存升级单元获得机顶盒内存所剩空间大小,若涉及到的所有镜像的总大小小于机顶盒内存所剩空间,则将所涉及的所有镜像存储到机顶盒内存空间中;若大于机顶盒内存所剩空间,则将所涉及的所有镜像部分存储到外部存储设备。

在其中的一个实施方式中,预先在升级数据中设置分区改变标志,若分区改变标志为0则flash的分区不发生改变,若分区改变标志为1则flash的分区发生改变,所述分区改变判断单元通过检测升级数据中的分区改变标志进行判断。

在其中的一个实施方式中,在借助外部存储设备进行存储时,所述镜像保存升级单元按照镜像数据的顺序,由倒数第一的镜像开始存储,直至剩余镜像数据总大小小于机顶盒的内存所剩空间,将剩余镜像数据存储到机顶盒内存中。

在其中的一个实施方式中,所述镜像保存升级单元优先将重要的镜像数据存储到机顶盒内存中,且在借助外部存储设备存储时,若有多个外部存储设备则优先选择存储空间大的外部存储设备进行存储。

在其中的一个实施方式中,所述系统还包括镜像寻找单元,获取下一个升级数据镜像进行升级;

所述镜像寻找单元优先在从升级包或升级流中寻找升级数据镜像,若升级数据镜像不存在,再从机顶盒内存中寻找升级数据镜像,若机顶盒内存中也不存在升级数据镜像,再到外部存储设备中寻找升级数据镜像;如果下一升级数据镜像既存在升级流中,同时也存在机顶盒内存或者外部存储设备中,则删除机顶盒内存或者外部存储设备中的镜像。

本发明机顶盒分区更改升级方法及系统,在进行升级时首先确定是否分区发生改变,若不发生改变则直接进行替换完成升级,若发生改变则获取发生改变的分区并将发生改变分区中的数据存储到机顶盒内存或者外部存储设备中,保证被改变分区中的重要数据不被覆盖替换,从而避免重要数据丢失造成严重损失。

附图说明

图1是一个实施例中的机顶盒分区更改升级方法的流程图;

图2是一个实施例中的机顶盒分区更改升级系统的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

图1是一个实施例中的机顶盒分区更改升级方法的流程图,如图1所示,该方法包括如下步骤:

步骤s10:在机顶盒升级时,判断机顶盒flash的分区是否改变。

在机顶盒进行loader升级时,可能存在会改变机顶盒flash分区的情况,故在每次升级之前都要首先判断机顶盒的flash分区是否发生改变。该步骤预先在升级数据中设置分区改变标志,若分区改变标志为0则flash的分区不发生改变,若分区改变标志为1则flash的分区发生改变,通过检测升级数据中的分区改变标志进行判断。

步骤s20:若分区未发生改变,则采用直接镜像替换的方式进行升级,将升级数据镜像直接替换对应原始分区中的镜像数据。

若升级数据中的分区改变标志为0则flash的分区不发生改变,分区不发生改变只需要直接升级对应分区中的镜像数据即可,故采用直接镜像替换的方式将升级数据镜像直接替换对应原始分区中的镜像数据即可完成升级。

步骤s30:若分区发生改变,则判断升级数据镜像是否是最后一个分区的镜像,若是则将升级数据镜像直接写入到flash中。

若升级数据中的分区改变标志为1则flash的分区发生改变,此时如果升级数据镜像不是最后一个分区的镜像,若采用直接替换的方式升级将会覆盖其他分区的数据,尤其重要数据,这就会导致升级出现重大问题,故不能采用直接替换方式升级。故该步骤首先进行判断,若是最后一个分区则直接写入升级数据镜像,不会对之前的分区造成影响。

步骤s40:若不是最后一个分区的镜像,则获取升级数据镜像对应分区的分区名、分区首地址及分区大小,计算出升级数据镜像对应分区在原始分区中覆盖的地址范围,计算出覆盖地址范围内涉及到的所有镜像的个数及总大小。

若升级数据镜像不是最后一个分区的镜像,此时需要获取升级数据镜像对应的分区更改了原始分区中的哪些分区,被更改分区中的原始镜像数据需要进行保存避免被更改后重要数据被覆盖丢失,造成损失。

步骤s50:获得机顶盒内存所剩空间大小,若涉及到的所有镜像的总大小小于机顶盒内存所剩空间,则将所涉及的所有镜像存储到机顶盒内存空间中;若大于机顶盒内存所剩空间,则将所涉及的所有镜像部分存储到外部存储设备。

若升级数据镜像不是最后一个分区的镜像,此时需要获取升级数据镜像对应的分区更改了原始分区中的哪些分区,被更改分区中的原始镜像数据需要进行保存,镜像数据进行保存首先选择保存在机顶盒的内存中,但是往往镜像数据会过大,机顶盒的内存空间不够,需要先计算机顶盒内存所剩空间大小,然后与镜像数据进行比较,若镜像的总大小小于机顶盒内存所剩空间,则镜像存储到机顶盒内存空间中;若大于机顶盒内存所剩空间,则将借助外部存储设备进行存储。

为优先使用机顶盒的内存剩余空间,在借助外部存储设备进行存储时,按照镜像数据的顺序,由倒数第一的镜像开始存储,直至剩余镜像数据总大小小于机顶盒的内存所剩空间,将剩余镜像数据存储到机顶盒内存中。

为保护重要数据以便能快速使用,优先将重要的镜像数据存储到机顶盒内存中。在借助外部存储设备存储时,若有多个外部存储设备则优先选择存储空间大的外部存储设备进行存储。

在上一个升级数据镜像写入分区之后,该方法获取下一个升级数据镜像进行升级。在获取下一升级数据镜像的过程中,下一升级数据镜像可能存在升级包或者升级流中,也有可能已经保存到内存或者外部存储设备中。该步骤优先在从升级包或升级流中寻找升级数据镜像,若升级数据镜像不存在,再从机顶盒内存中寻找升级数据镜像,若机顶盒内存中也不存在升级数据镜像,再到外部存储设备中寻找升级数据镜像。如果下一升级数据镜像既存在升级流中,同时也存在机顶盒内存或者外部存储设备中,则删除机顶盒内存或者外部存储设备中的镜像。

该机顶盒分区更改升级方法,在进行升级时首先确定是否分区发生改变,若不发生改变则直接进行替换完成升级,若发生改变则获取发生改变的分区并将发生改变分区中的数据存储到机顶盒内存或者外部存储设备中,保证被改变分区中的重要数据不被覆盖替换,从而避免重要数据丢失造成严重损失。

本发明还提供一种机顶盒分区更改升级系统,如图2所示,该系统包括:

分区改变判断单元100,在机顶盒升级时,判断机顶盒flash的分区是否发生改变。

在机顶盒进行loader升级时,可能存在会改变机顶盒flash分区的情况,故在每次升级之前分区改变判断单元100都要首先判断机顶盒的flash分区是否发生改变。预先在升级数据中设置分区改变标志,若分区改变标志为0则flash的分区不发生改变,若分区改变标志为1则flash的分区发生改变,分区改变判断单元100通过检测升级数据中的分区改变标志进行判断。

直接替换升级单元200,若分区未发生改变,则采用直接镜像替换的方式进行升级,将升级数据镜像直接替换对应原始分区中的镜像数据。

若升级数据中的分区改变标志为0则flash的分区不发生改变,分区不发生改变只需要直接升级对应分区中的镜像数据即可,故直接替换升级单元200采用直接镜像替换的方式将升级数据镜像直接替换对应原始分区中的镜像数据即可完成升级。

镜像保存升级单元300,若分区发生改变,则判断升级数据镜像是否是最后一个分区的镜像,若是则将升级数据镜像直接写入到flash中。若不是最后一个分区的镜像,镜像保存升级单元300则获取升级数据镜像对应分区的分区名、分区首地址及分区大小,计算出升级数据镜像对应分区在原始分区中覆盖的地址范围,计算出覆盖地址范围内涉及到的所有镜像的个数及总大小。镜像保存升级单元300获得机顶盒内存所剩空间大小,若涉及到的所有镜像的总大小小于机顶盒内存所剩空间,则将所涉及的所有镜像存储到机顶盒内存空间中;若大于机顶盒内存所剩空间,则将所涉及的所有镜像部分存储到外部存储设备。

若升级数据中的分区改变标志为1则flash的分区发生改变,此时如果升级数据镜像不是最后一个分区的镜像,若采用直接替换的方式升级将会覆盖其他分区的数据,尤其重要数据,这就会导致升级出现重大问题,故不能采用直接替换方式升级。故镜像保存升级单元300首先进行判断,若是最后一个分区则直接写入升级数据镜像,不会对之前的分区造成影响。

若升级数据镜像不是最后一个分区的镜像,此时镜像保存升级单元300需要获取升级数据镜像对应的分区更改了原始分区中的哪些分区,被更改分区中的原始镜像数据需要进行保存避免被更改后重要数据被覆盖丢失,造成损失。

若升级数据镜像不是最后一个分区的镜像,此时镜像保存升级单元300需要获取升级数据镜像对应的分区更改了原始分区中的哪些分区,被更改分区中的原始镜像数据需要进行保存,镜像数据进行保存首先选择保存在机顶盒的内存中,但是往往镜像数据会过大,机顶盒的内存空间不够,镜像保存升级单元300需要先计算机顶盒内存所剩空间大小,然后与镜像数据进行比较,若镜像的总大小小于机顶盒内存所剩空间,则镜像存储到机顶盒内存空间中;若大于机顶盒内存所剩空间,则将借助外部存储设备进行存储。

为优先使用机顶盒的内存剩余空间,在借助外部存储设备进行存储时,镜像保存升级单元300按照镜像数据的顺序,由倒数第一的镜像开始存储,直至剩余镜像数据总大小小于机顶盒的内存所剩空间,将剩余镜像数据存储到机顶盒内存中。

为保护重要数据以便能快速使用,镜像保存升级单元300优先将重要的镜像数据存储到机顶盒内存中。

在上一个升级数据镜像写入分区之后,该系统获取下一个升级数据镜像进行升级。在获取下一升级数据镜像的过程中,下一升级数据镜像可能存在升级包或者升级流中,也有可能已经保存到内存或者外部存储设备中。该系统还包括镜像寻找单元,优先在从升级包或升级流中寻找镜像,若升级数据镜像不存在,再从机顶盒内存中寻找升级数据镜像,若机顶盒内存中也不存在升级数据镜像,再到外部存储设备中寻找升级数据镜像。如果下一升级数据镜像既存在升级流中,同时也存在机顶盒内存或者外部存储设备中,则删除机顶盒内存或者外部存储设备中的镜像。

该机顶盒分区更改升级系统,在进行升级时首先确定是否分区发生改变,若不发生改变则直接进行替换完成升级,若发生改变则获取发生改变的分区并将发生改变分区中的数据存储到机顶盒内存或者外部存储设备中,保证被改变分区中的重要数据不被覆盖替换,从而避免重要数据丢失造成严重损失。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1