掌桥专利:专业的专利平台
掌桥专利
首页

一种eMMC升级方法、芯片、设备及存储介质

文献发布时间:2024-04-18 20:01:55


一种eMMC升级方法、芯片、设备及存储介质

技术领域

本发明涉及计算机存储器技术领域,尤其涉及一种eMMC升级方法、芯片、设备及存储介质。

背景技术

在一般的eMMC芯片中,芯片内部可用的缓存有限,在进行芯片固件升级时,常规的设计方案是一边收取固件升级数据的同时,一边完成固件升级动作;但是此方案严重依赖芯片能提供足够的缓存资源,且在固件升级过程中存在资源抢占现象,还可能存在掉电丢失固件的风险。

发明内容

有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种eMMC升级方法、芯片、设备及存储介质。

本发明提供如下技术方案:

第一方面,本申请提供了一种eMMC升级方法,包括:

获取eMMC固件数据容量,将所述eMMC固件数据容量与第一存储阈值进行对比,所述第一存储阈值为第一缓存区间的容量阈值;若所述eMMC固件数据容量小于所述第一存储阈值,则通过所述第一缓存区间接收所述eMMC固件数据;

确定第二存储区间中是否存在已缓存数据,若存在,则将所述已缓存数据转移到第二缓存区间;

获取所述第二缓存区间的剩余容量,判断所述剩余容量是否小于所述eMMC固件数据容量;

若小于,则将所述eMMC固件数据划分为第一固件数据和第二固件数据,将所述第一固件数据存储到所述第二存储区间,所述第一固件数据容量等于所述剩余容量,再将所述第一固件数据转移到所述第二缓存区间;

将所述已缓存数据和所述第一固件数据打包存储到所述第一存储区间,再将所述第二固件数据通过所述第二缓存区间存储到所述第一存储区间;

根据所述第一存储区间接收的所述已缓存数据、所述第一固件数据和所述第二固件数据进行eMMC升级。

一种实施方式中,所述将所述eMMC固件数据容量与第一存储阈值进行对比,包括:

若所述eMMC固件数据容量大于等于所述第一存储阈值,则将所述eMMC固件数据存储到所述第一存储区间;

或,将所述eMMC固件数据分片下发到所述第一存储区间,所述第一存储区间接收所述eMMC固件数据后进行分片存储。

一种实施方式中,所述将所述第二固件数据通过所述第二缓存区间存储到所述第一存储区间,包括:

判断所述第二固件数据是否为所述eMMC固件数据的尾部数据;

若是,则确定所述eMMC固件数据已接收完毕,则将所述第二固件数据转移到所述第二缓存区间,再通过所述第二缓存区间存储到所述第一存储区间。

一种实施方式中,所述判断所述第二固件数据是否为所述eMMC固件数据的尾部数据,还包括:

若不是,则确定所述eMMC固件数据未接收完毕,则将所述第二固件数据缓存到所述第二存储区间中,等待接收下一波所述eMMC固件数据。

一种实施方式中,所述将所述第二固件数据通过所述第二缓存区间存储到所述第一存储区间后,包括:

释放所述第二存储区间的存储容量。

一种实施方式中,所述确定第二存储区间中是否存在已缓存数据,包括:

对所述第二存储区间进行数据回读,若回读到所述已缓存数据,则确定所述第二存储区间中存在已缓存数据。

一种实施方式中,所述确定第二存储区间中是否存在已缓存数据之后,还包括:

获取所述已缓存数据容量,若所述已缓存数据容量大于所述第一存储阈值,则将所述已缓存数据划分为整存数据和剩余数据;

将所述整存数据通过所述第二缓存区间依次存储到所述第一存储区间,将所述剩余数据缓存在所述第二存储区间;所述整存数据为等于所述第一存储阈值整数倍的所述已缓存数据,所述剩余数据为除所述整存数据之外的所述已缓存数据。

第二方面,本申请提供了一种eMMC芯片,包括:

获取模块,用于获取eMMC固件数据容量,将所述eMMC固件数据容量与第一存储阈值进行对比,所述第一存储阈值为第一缓存区间的容量阈值;若所述eMMC固件数据容量小于所述第一存储阈值,则通过所述第一缓存区间接收所述eMMC固件数据;

转移模块,用于确定第二存储区间中是否存在已缓存数据,若存在,则将所述已缓存数据转移到所述第二缓存区间;

判断模块,用于获取所述第二缓存区间的剩余容量,判断所述剩余容量是否小于所述eMMC固件数据容量;

划分模块,用于若小于,则将所述eMMC固件数据划分为第一固件数据和第二固件数据,将所述第一固件数据存储到所述第二存储区间,所述第一固件数据容量等于所述剩余容量,再将所述第一固件数据转移到第二缓存区间;

存储模块,用于将所述已缓存数据和所述第一固件数据打包存储到所述第一存储区间,再将所述第二固件数据通过所述第二缓存区间存储到所述第一存储区间;

升级模块,用于根据所述第一存储区间接收的所述已缓存数据、所述第一固件数据和所述第二固件数据进行eMMC升级。

第三方面,本申请提供了一种电子设备,包括eMMC芯片,所述eMMC芯片还包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施如第一方面所述的eMMC升级方法。

第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时,实现如第一方面所述的eMMC升级方法。

本发明的实施例具有如下有益效果:

本发明提供的eMMC升级方法,通过两个缓存区间和两个存储区间,可以实现eMMC设备固件升级掉电不丢失的效果,而且,还可以实现固件升级断电续传,减少eMMC升级对于存储空间的依赖。

为使本发明的上述目的、特征和优点能更明显和易懂,下文特举较佳实施例,并配合所附附图,做详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍, 应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了一种eMMC升级方法流程示意图;

图2示出了eMMC芯片存储空间分布示意图;

图3示出了一种已缓存数据存储方法流程示意图;

图4示出了一种eMMC固件数据接收完成度判断方法流程示意图;

图5示出了一种eMMC芯片框架结构示意图。

主要元件符号说明:

500、eMMC芯片;501、获取模块;502、转移模块;503、判断模块;504、划分模块;505、存储模块;506、升级模块。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。相反,当元件被称作“直接在”另一元件“上”时,不存在中间元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在模板的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。本文所使用的术语“及/ 或”包括一个或多个相关的所列项目的任意的和所有的组合。

实施例1

参见图1,图1为本实施例提供的eMMC升级方法流程示意图,该方法可以用于eMMC升级,也可以适用于其他与eMMC升级流程相似的场景,该方法包括:

S101、获取eMMC固件数据容量,将所述eMMC固件数据容量与第一存储阈值进行对比,所述第一存储阈值为第一缓存区间的容量阈值;若所述eMMC固件数据容量小于所述第一存储阈值,则通过所述第一缓存区间接收所述eMMC固件数据。

在进行eMMC升级时,首先需要接收服务器下发的eMMC固件数据,然后根据eMMC固件数据进行eMMC升级,但是,由于eMMC芯片的存储空间有限,因此,为了提高升级效率,首先需要获取eMMC固件数据的容量。

由于服务器在进行eMMC固件数据下发时,可以是一次性下发所有固件数据,也可以是分成多次下发,因此,获取的eMMC固件数据可以是所有的固件数据,也可以是每一次下发的固件数据。

由于SSD硬盘的读写机制特性,写入数据时,以8个扇区(4096字节)即4K区块为一基本存储单元,或者16K区块为一个基本存储单元。写满后继续下ー个4K区块或者16K写入操作,若SSD硬盘没有4K或者16K对齐处理,数据写入会导致4K或者16K“超界”,读取数据时会在超界处,造成二次往复读取,读取数据时间增加,读写效率降低。

参见图2,图2为本实施例提供的eMMC芯片存储空间分布示意图。

获取eMMC固件数据容量之后,将获取的eMMC固件数据容量与预先设置的第一存储阈值进行对比,其中,第一存储阈值可以为第一缓存区间的容量阈值,为了实现固件数据存储的便利性,一般在存储时采用4K对齐或者16K对齐的方式进行存储。因此,可以将第一缓存区间的容量设置为16K,即第一存储阈值设置为16K。然后判断eMMC固件数据是否超过16K,如果小于16K,则通过第一缓存区间接收eMMC固件数据。

同样的,由于第一缓存区间和第二缓存区间都只要负责eMMC固件数据的缓存并下刷,无需进行其他操作,因此,可以将一缓存区间和第二缓存区间的容量都设置为16K,从而可以节约存储空间,降低对于存储空间的依赖。

为了数据下发或接收的便利性,一般都可以设置服务器下发时候的eMMC固件数据的大小,因此,eMMC固件数据一般是通过3种方式进行下发:

第一种:一次性下发所有固件数据给设备;

第二种:将固件数据按照16K对齐的方式,进行分片下发;

第三种:分多次随机下发固件数据,一般每次下发的固件数据不会超过16K。

当确定是第一种或者第二种方式进行数据下发时,若所述eMMC固件数据容量大于等于所述第一存储阈值,可以直接将eMMC固件数据存储到第一存储区间。

或者,将所述eMMC固件数据分片下发到所述第一存储区间,所述第一存储区间接收所述eMMC固件数据后进行分片存储,从而实现4K对齐或者16K对齐。

例如:eMMC固件数据容量为50K,可以选择将50K的固件数据一次性存储到第一存储区间,或者,将50K的固件数据进行分片,如第一存储区间一个扇区的存储容量为16K,则可以将50K的固件数据划分为16K、16K、16K和2K,然后分4次存储到第一存储区间中,从而使得后续读取固件数据时,不会造成二次往复读取。

当eMMC固件数据全部存储完毕后,即可通过第一存储区间中的eMMC固件数据进行升级。当确定是第三种方式进行数据下发时,则可以先通过第一缓存区间接收eMMC固件数据,以便于对固件数据进行后续的处理。

S102、确定第二存储区间中是否存在已缓存数据,若存在,则将所述已缓存数据转移到第二缓存区间。

由于第三种下发方式是多次下发的,因此,每次通过第一缓存区间接收eMMC固件数据之后,需要先确定第二存储区间中有没有前一次接收的已缓存数据,如果存在已缓存数据,则需要先将已缓存数据转移到第二缓存区间,其中,已缓存数据转移时可以按照存储或者接收固件数据时的顺序进行转移。

其中,第二存储区间可以是一个闪存块,例如Nand Flash的一个扇区,Nand Flash一般由存储块,即block块构成,而block的基本单元是扇区,即一个page,通常一个block由多个page组成,一般一个扇区的容量为16K,由于Nand Flash具有掉电不丢失数据的特性,因此,在进行固件升级时可以保证固件数据的完整性,即使掉电也不用从头开始获取固件数据。

可以通过对所述第二存储区间进行数据回读,来判断是否存储已缓存数据,若回读到所述已缓存数据,则确定所述第二存储区间中存在已缓存数据。

通过数据回读,还可以获取已缓存数据的内容,根据已缓存数据的内容,可以得知上一次接收eMMC固件数据时最后接收的数据,如果在接收过程中出现断电,当重新供电时,服务器不需要从头开始下发eMMC固件数据,可以利用数据回读获取已缓存数据的内容,以确定断电之前最后下发的数据,然后根据最后下发的数据来进行eMMC固件数据续传,从而可以节约大量的数据重传时间。

参见图3,本实施例的eMMC升级方法还包括:

S1020、获取所述已缓存数据容量,若所述已缓存数据容量大于所述第一存储阈值,则将所述已缓存数据划分为整存数据和剩余数据。

如果第二存储区间中存在已缓存数据,通常在第二存储区间接收新的eMMC固件数据之前,都会将已缓存数据转移到第二缓存区间中,但是,当已缓存数据容量大于第一阈值,即第二缓存区间的存储阈值时,则需要分批将已缓存数据转移到第二缓存区间中,再转移到第一存储空间,因此,在需要先将已缓存数据进行划分,得到整存数据和剩余数据。

S1021、将所述整存数据通过所述第二缓存区间依次存储到所述第一存储区间,将所述剩余数据缓存在所述第二存储区间;所述整存数据为等于所述第一存储阈值整数倍的所述已缓存数据,所述剩余数据为除所述整存数据之外的所述已缓存数据。

整存数据为等于所述第一存储阈值整数倍的所述已缓存数据,所述剩余数据为除所述整存数据之外的所述已缓存数据,首先将整存数据依次转移到第二缓存区间,由于第二缓存区间的容量与第一存储区间为16K对齐,因此,每一组整存数据都可以完整占据第一存储区间的一个扇区,不会造成资源浪费或者数据回读。

由于剩余数据未达到第一存储阈值,因此,可以通过第二存储区间暂时缓存,等待接收新的eMMC固件数据。

S103、获取所述第二缓存区间的剩余容量,判断所述剩余容量是否小于所述eMMC固件数据容量。

将第二缓存区间的存储容量也设置为16K,从而与Nand Flash的一个扇区16K对齐,将第一存储区间中的已缓存数据转移到第二缓存区间之后,第二缓存区间的存储容量会发生变化,可能不足16K,或者不能一次性存储所有的eMMC固件数据。因此,需要先获取第二缓存区间的剩余容量,然后判断所述剩余容量是否小于所述eMMC固件数据容量,再进行后续的存储操作,以免造成存储错误,或者存储容量不足。

S104、若小于,则将所述eMMC固件数据划分为第一固件数据和第二固件数据,将所述第一固件数据存储到所述第二存储区间,所述第一固件数据容量等于所述剩余容量,再将所述第一固件数据转移到所述第二缓存区间。

如果第二缓存区间的剩余容量小于eMMC固件数据,则需要按照剩余容量的具体数值,来划分eMMC固件数据。例如:当剩余容量为12K时,而eMMC固件数据超过12K,则将eMMC固件数据划分为第一固件数据和第二固件数据,其中,第一固件数据容量等于剩余容量,即12K,其他固件数据都为第二固件数据,然后将第一固件数据转移到第二缓存区间,如果第二固件数据仍然超过16K,则继续对第二固件数据进行划分,直到所有的eMMC固件数据都存储完毕。

参见图4,步骤S104,还包括:

S1041、判断所述第二固件数据是否为所述eMMC固件数据的尾部数据。

由于第三种下发方式为多次下发,每次下发的eMMC固件数据可能只有一部分数据,而eMMC升级需要全部的eMMC固件数据,因此,在进行eMMC升级之前,还需要确定eMMC固件数据是否接收完毕。

由于eMMC固件数据下发时,一般是按照顺序进行下发,可以通过判断第二固件数据是否为尾部数据,来判断eMMC固件数据是否接收完毕,例如:可以对尾部数据进行标记,然后通过对标记的检测来确定是否为尾部数据。

S1042、若是,则确定所述eMMC固件数据已接收完毕,则将所述第二固件数据转移到所述第二缓存区间,再通过所述第二缓存区间存储到所述第一存储区间。

如果确定第二固件数据是尾部数据,或者包含了尾部数据,则可以确定eMMC固件数据已接收完毕,服务器不会再下发新的eMMC固件数据,此时不论第二固件数据是否达到第二缓存区间的存储阈值,都可以将所述第二固件数据转移到所述第二缓存区间,再通过所述第二缓存区间存储到所述第一存储区间,从而保证接收的所有eMMC固件数据都存储到第一存储区间中,保证eMMC升级成功。

S1043、若不是,则确定所述eMMC固件数据未接收完毕,则将所述第二固件数据缓存到所述第二存储区间中,等待接收下一波所述eMMC固件数据。

如果确定第二固件数据不是尾部数据,或者没有包含尾部数据,则可以确定eMMC固件数据没有接收完毕,后续还会下发新的eMMC固件数据,此时可以将第二固件数据缓存到所述第二存储区间中,等待接收下一波所述eMMC固件数据,当接收到新的eMMC固件数据时,再通过重复执行步骤S102-步骤S104的方法来进行固件数据的存储。

本实施例可以判断接收的第二固件数据是否为eMMC固件数据的尾部数据,或者是否包含尾部数据,来判断eMMC固件数据是否接收完毕,并根据判断的结果来确定存储方式,从而可以确保eMMC固件数据的完整性,保证eMMC升级成功。

在一种实施方式中,将所述第二固件数据通过所述第二缓存区间存储到所述第一存储区间后,包括:

释放所述第二存储区间的存储容量。

将第二固件数据通过所述第二缓存区间存储到所述第一存储区间后,则说明全部的eMMC固件数据已接收完毕,不需要再利用第二存储区间进行数据存储,此时可以释放第二存储区间的容量,从而避免资源浪费或者占用。

S105、将所述已缓存数据和所述第一固件数据打包存储到所述第一存储区间,再将所述第二固件数据通过所述第二缓存区间存储到所述第一存储区间。

将第一固件数据转移到第二缓存区间之后,此时,第二缓存区间中存储的数据刚好为16K,然后将所述已缓存数据和所述第一固件数据打包存储到所述第一存储区间进行存储,则正好可以存满第一存储区间的一个扇叶,此时第二缓存区间中的存储空间又恢复到16K。

S106、根据所述第一存储区间接收的所述已缓存数据、所述第一固件数据和所述第二固件数据进行eMMC升级。

由于第二缓存区间与第一存储区间16K对齐,因此,第一存储区间接收的已缓存数据、所述第一固件数据和所述第二固件数据都是按照服务器下发时的顺序接收的,而且,通过对第二固件数据进行判断,可以确定当接收到第二固件数据时,服务器下发的所有eMMC固件数据都已接收完毕,此时第一存储区间中的数据为完整的eMMC固件数据,可以实现eMMC的升级,且不会存在数据丢失的风险。

实施例2

参见图5,本申请还提供了一种eMMC芯片500,包括:

获取模块501,用于获取eMMC固件数据容量,将所述eMMC固件数据容量与第一存储阈值进行对比,所述第一存储阈值为第一缓存区间的容量阈值;若所述eMMC固件数据容量小于所述第一存储阈值,则通过所述第一缓存区间接收所述eMMC固件数据;

转移模块502,用于确定第二存储区间中是否存在已缓存数据,若存在,则将所述已缓存数据转移到所述第二缓存区间;

判断模块503,用于获取所述第二缓存区间的剩余容量,判断所述剩余容量是否小于所述eMMC固件数据容量;

划分模块504,用于若小于,则将所述eMMC固件数据划分为第一固件数据和第二固件数据,将所述第一固件数据存储到所述第二存储区间,所述第一固件数据容量等于所述剩余容量,再将所述第一固件数据转移到第二缓存区间;

存储模块505,用于将所述已缓存数据和所述第一固件数据打包存储到所述第一存储区间,再将所述第二固件数据通过所述第二缓存区间存储到所述第一存储区间;

升级模块506,用于根据所述第一存储区间接收的所述已缓存数据、所述第一固件数据和所述第二固件数据进行eMMC升级。

本实施例提供的eMMC芯片,可以实现eMMC设备固件升级掉电不丢失的效果,而且,还可以实现固件升级断电续传,减少eMMC升级对于存储空间的依赖。

可以理解,上述实施例1所述的eMMC升级方法中的实施方式,同样适用于本实施例,故在此不再重复描述。

实施例3

本申请实施例还提供了一种计算机设备,例如,该计算机设备可以但不限于为如台式计算机、笔记本等,其存在形式不作限定,主要取决于其是否需要支持浏览器网页的界面显示功能等。示范性地,该所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施上述实施例1所述的eMMC升级方法。

其中,处理器可以是一种具有信号的处理能力的集成电路芯片。处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、图形处理器(GraphicsProcessing Unit,GPU)及网络处理器(Network Processor,NP)、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件中的至少一种。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。

其中,存储器可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器用于存储计算机程序,处理器在接收到执行指令后,可相应地执行所述计算机程序。

进一步地,存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据(比如迭代数据、版本数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

实施例4

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述实施例1中所述的eMMC升级方法。

可以理解,上述实施例1所述的eMMC升级方法中的实施方式,同样适用于本实施例,故在此不再重复描述。

所述计算机可读存储介质既可以是非易失性存储介质,也可以是易失性存储介质。例如,该计算机可读存储介质可包括但不限于为:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或多个模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

技术分类

06120116571850