一种芯片软件升级方法与流程

文档序号:31704003发布日期:2022-10-01 09:57阅读:244来源:国知局
一种芯片软件升级方法与流程

1.本发明涉及软件升级技术领域,具体涉及一种芯片软件升级方法。


背景技术:

2.随着技术的进步,芯片逐渐支持软件的自升级功能,通过某些途径,包括但不限于使用串口通信、tcp/ip、usb接口、sd卡等方式,将烧录代码传给芯片,芯片自己将烧录代码的数据写入到芯片的flash中,以完成软件的升级。虽然,该方式能够将软件升级变得极为便利,但是,传输过程中往往存在着传输对象被破坏或篡改的情况,这一情况的发生将导致软件升级失败甚至影响系统的正常运行,存在可靠性差的问题。


技术实现要素:

3.为了解决上述问题,本发明提供了一种芯片软件升级方法,具体技术方案如下:一种芯片软件升级方法,包括以下步骤:s1、主控芯片在接收到服务终端传输的新版软件数据时,基于所述新版软件数据中携带的配置信息,进行数据完整性以及数据准确性校验;s2、主控芯片在确定数据校验成功时,根据数据所属类型以及待写入的数据量,选择相应的写入方式将所述新版软件数据写入到备份程序区的目标位置处,并在确定写入完成时,进入重启模式;s3、主控芯片在确定重启完成时,采用所述备份程序区中的目标位置处写入的新版软件数据,替换原先的旧版本软件数据,以实现旧版本的软件升级。
4.优选地,所述步骤s1中的所述配置信息包括关键数据字段、各关键数据字段之间的关联信息以及签名认证信息。
5.优选地,所述步骤s1具体包括以下步骤:s11、主控芯片对各个关键数据字段进行完整性检验,得到相应的检验结果;s12、主控芯片基于所述检验结果,在确定通过完整性检验的关键数据字段的数量大于预设的数量阈值时,匹配各关键数据字段之间的关联性;s13、主控芯片在确定关联性匹配成功的情况下,基于所述签名认证信息进行签名认证,以进行数据准确性校验。
6.优选地,所述步骤s2中所述备份程序区中划分有若干个存储区域,且各存储区域分别用于存储不同类型的写入数据。
7.优选地,所述步骤s2具体包括以下步骤:s21、主控芯片根据数据所属类型从所述备份程序区中的多个存储区域中,筛选出相应的目标存储区域;s22、针对待写入的目标数据,确定所述目标数据的目标数据量,并在确定所述目标数据量小于目标存储区域的可读存储容量时,将所述目标数据写入到备份程序区的目标存储区域中,以及,在确定所述目标数据量大于或等于目标存储区域的可读存储容量时,通
过释放目标存储区域的存储空间和/或进行无损耗数据压缩,以保证目标数据的顺利写入。
8.优选地,所述步骤s22还包括:主控芯片根据目标存储区域的可读存储容量、内部运行性能数据调整目标数据的写入速度,以及按照调整后的写入速度,将所述目标数据写入到备份程序区的目标存储区域中。
9.优选地,所述步骤s3具体包括以下步骤: s31、主控芯片在确定新版软件数据写入完成时,进行有效升级标志位的设定,并将所述有效升级标志位绑定缓存到与对应新版软件数据相关联的存储区域中; s32、在重启的过程中,主控芯片基于预设的检测规则,进行有效升级标志位的检测; s33、主控芯片在确定成功检测到对应有效升级标志位的时候,进行对应新版软件数据的关联,并基于关联到的新版软件数据,替换应用程序区的旧版本软件数据,以实现旧版本的软件升级;s34、主控芯片在完成旧版本软件升级之后,进行无效升级标志位的设定和/或进行对应有效升级标志位的清除,以避免下次重启时产生误升级的情况。
10.优选地,还包括:s4、针对待确认升级状态的目标软件,主控芯片将读取所述目标软件的升级信息,并将所述升级信息与预设的升级规则进行匹配,以及基于得到的匹配结果,判断是否实现旧版本的软件升级,其中,所述升级信息包括升级后的软件版本号、软件运行状态、软件历史运行参数与软件实时运行参数之间的对比情况、以及升级后软件发生异常事件的频率中的至少一种。
11.优选地,还包括:s5、主控芯片在确定旧版本软件升级失败时,将软件重新恢复到升级之前的版本,以及向服务终端发送升级异常指令,以触发所述服务终端重新发送新版本软件数据或在确定存在数据异常篡改的情况时,停止发送新版本软件数据。
12.优选地,还包括:步骤s1中,服务终端将在预设的检测周期内,检查软件数据是否存在更新,和/或基于版本更新信息,判断软件数据更新情况,若是,则进行最新软件数据的获取,并将获取到的最新软件数据发送给主控芯片,以由主控芯片基于接收到的最新软件数据进行旧版本软件的升级。
13.本发明的有益效果为: 本发明提供了一种芯片软件升级方法,主控芯片根据配置信息对新版软件数据,进行数据完整性以及数据准确性校验,解决了由于缺乏数据完整性防护机制,导致升级过程中存在数据不完整的问题,从而提高升级效率。另外,在将新版软件数据写入到备份程序区时,根据数据所属类型以及待写入的数据量进行写入速度的调整,以此来缓解存储压力以及保证设备的正常运行,提高了设备运行的稳定性。最后,在升级过程中,将需要升级的新版软件下载到主芯片内的程序备份区内,使得在下载过程中如果出错或丢包的情况下,仍然能够同步运行旧版本软件数据,保障设备的稳定运行,其中,主控芯片在接收到新版软件数据的所有数据之后,再利用写入的新版软件数据替换应用程序区的旧版本软件数据,从而进一步保证了升级过程的稳定可靠性。
附图说明
14.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
15.图1为本发明的流程示意图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和
ꢀ“
包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
18.还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
19.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
20.如图1所示,本发明的具体实施方式提供了一种芯片软件升级方法,包括以下步骤:s1、主控芯片在接收到服务终端传输的新版软件数据时,基于所述新版软件数据中携带的配置信息,进行数据完整性以及数据准确性校验; 所述配置信息包括关键数据字段、各关键数据字段之间的关联信息以及签名认证信息。
21.主控芯片基于新版软件数据中携带的配置信息,进行数据完整性以及数据准确性校验,包括步骤:s11、主控芯片对各个关键数据字段进行完整性检验,得到相应的检验结果;具体的,为避免传输过程中数据丢包而不自知的情况的发生,在进行数据完整性校验的时候,通过将各个关键数据字段作为检测对象,主控芯片可以使用哈希算法和密钥,分别对各个检测对象进行哈希计算,得到相应的第一哈希值。之后,再将该第一哈希值和相应检测对象一块发送给数据发送方(即服务终端)。随后,服务终端在收到主控芯片发送的数据之后,再使用相同的哈希算法和密钥进行哈希计算,得到相应的第二哈希值,其中,如果认为所得的第一、二哈希值相同,则认为数据完整,此时服务终端将反馈相应的应答信息给主控芯片,以使得主控芯片及时得到相应的检验结果。
22.s12、主控芯片基于所述检验结果,在确定通过完整性检验的关键数据字段的数量大于预设的数量阈值时,匹配各关键数据字段之间的关联性;具体的,主控芯片可以对关键数据字段执行与数据结构相关的关键字段匹配算法,以匹配各关键数据字段之间的关联性,从而进一步保证数据完整性以及准确性,避免无效数据的写入所导致升级失败情况的发生。
23.s13、主控芯片在确定关联性匹配成功的情况下,基于所述签名认证信息进行签名认证,以进行数据准确性校验;具体的,签名认证的流程包括:首先,主控芯片接收签名认证信息,其中,该签名认证信息包括数字签名、电子原文以及发方公钥。之后,主控芯片再基于该签名认证信息进行签名验证,其中,验证过程包括:主控芯片先用发方公钥解密数字签名,导出数字摘要;之后,再对电子文件原文作同样哈希算法,并得一个新的数字摘要;最后,通过将上述得到的两个摘要的哈希值进行比较,若结果相同,则认为签名得到验证,否则,可以认为签名无效。
24.主控芯片根据配置信息对新版软件数据,进行数据完整性以及数据准确性校验,解决了由于缺乏数据完整性防护机制,导致升级过程中存在数据不完整的问题,提高了升级效率。
25.s2、主控芯片在确定数据校验成功时,根据数据所属类型以及待写入的数据量,选择相应的写入方式将所述新版软件数据写入到备份程序区的目标位置处,并在确定写入完成时,进入重启模式。
26.所述备份程序区中划分有若干个存储区域,且各存储区域分别用于存储不同类型的写入数据。具体的,主控芯片可以基于备份程序区的整体可用存储空间,采用均等划分方式,将备份程序区划分为若干个相同大小的存储区域。其中,每个存储区域中对应存储数据的所属类型均不一致,以此便于数据的分类管理。
27.需要说明的是,程序存储器、数据存储器、寄存器和i\o端排列在同一顺序的4gb地址空间内,被控总线连接的部分。存储器本身不具有地址信息,它的地址是芯片厂商或用户分配的,给存储器分配地址的过程称为存储器映射。在一个实施例中,存储器区域划分,是arm处理器将这4gb的存储空间,平均分成了8块区域,其中,一方面,每块区域大小是512mb(这个容量是非常大的)。另一方面,arm处理器在对这4gb容量分块的时候是按照其功能进行划分,因此划分得到的每个区域块都有其特殊的用途。
28.主控芯片根据数据所属类型以及待写入的数据量,选择相应的写入方式将新版软件数据写入到备份程序区的目标位置处,包括步骤:s21、主控芯片根据数据所属类型从所述备份程序区中的多个存储区域中,筛选出相应的目标存储区域;具体的,主控芯片可以为每个存储区域附上相应的索引标识,用以指引存储的数据类型。
29.主控芯片可以基于数据所属类型构建索引条件,并基于该索引条件进行索引标识的关联匹配,并在匹配成功时,反馈相应目标存储区域所在的位置。
30.s22、针对待写入的目标数据,确定所述目标数据的目标数据量,并在确定所述目标数据量小于目标存储区域的可读存储容量时,将所述目标数据写入到备份程序区的目标存储区域中,以及,在确定所述目标数据量大于或等于目标存储区域的可读存储容量时,通过释放目标存储区域的存储空间和/或进行无损耗数据压缩,以保证目标数据的顺利写入。
31.具体的,针对需要释放目标存储区域这一情况,主控芯片可以在确定设备处于空闲状态的时候、或在保证设备主模块正常运行的情况下,控制其他从模块(其中,从模块可以理解为:在不运行的情况下,不会影响设备运行的功能模块)进入非工作状态模式的时候,采用相应的释放模式(例如:碎片整理操作、垃圾文件回收操作等,本技术实施例对此不作限定)进行存储空间的释放,以保证目标数据的顺利写入。
32.具体的,针对进行无损耗数据压缩这一情况,主控芯片可以按照:先切分再压缩的原则进行数据压缩。
33.在其中一个实施例中,主控芯片可以基于预设的切分规则,例如基于语义或数据特征等关联性,进行数据字段的切分。后续,在进行数据压缩之前,主控芯片通过预设的数据特征提取方式进行特征提取,之后,再针对具备不同的数据特征的字段,分别采用相应的压缩方式进行数据压缩。例如,对于属于枚举型字符串特征的第一字段可以使用二进制进行压缩,对于属于字符串数值特征的第二字段,可以通过整数转换或浮点转换进行压缩。
34.上述实施例,可以在保证数据无损耗的情况下,得到所需的压缩数据,并进一步保证软件升级的顺利执行。
35.步骤s22中,主控芯片将目标数据写入到备份程序区的目标存储区域中,包括:步骤s221,主控芯片根据目标存储区域的可读存储容量、内部运行性能数据调整目标数据的写入速度,以及按照调整后的写入速度,将目标数据写入到备份程序区的目标存储区域中。
36.具体的,内部运行性能数据可以包括性能指标信息以及其所对应的指标取值,其中,性能指标信息包括运行温度、内存数、进程时间、内存中的至少一种。在其中一个实施例中,主控芯片可以根据对设备运行性能的影响程度,为各项性能指标信息分配相应的权重值,并基于性能指标信息的权重以及对应取到的指标取值进行加权求和计算,得到内部运行性能的评分。其中,在评分取值小于评分阈值且目标存储区域的可读存储容量小(但其仍能够保证对目标数据的存储)时,可以适当放慢目标数据的写入速度。
37.在其中一个实施例中,主控芯片还也可以在目标数据写入的同时,进行内部运行性能的评分或进行运行速率趋势分析,若在确定当前写入速度会对设备运行效果(例如造成设备运行卡顿)带来较大的影响时,将同步进行降速调整。反之,可以逐步增大写入速度,以此,来缓解存储压力以及保证设备的正常运行。
38.s3、主控芯片在确定重启完成时,采用所述备份程序区中的目标位置处写入的新版软件数据,替换原先的旧版本软件数据,以实现旧版本的软件升级。主控芯片基于写入的新版软件数据实现旧版本的软件升级,包括步骤:s31、主控芯片在确定新版软件数据写入完成时,进行有效升级标志位的设定,并将所述有效升级标志位绑定缓存到与对应新版软件数据相关联的存储区域中;具体的,有效升级标志位可以设为0、t等,本技术实施例对此不作限定,对应的无效升级标志位可以设备1、f等,不同实施例中,可以基于具体的需求进行灵活设定。
39.s32、在重启的过程中,主控芯片基于预设的检测规则,进行有效升级标志位的检测;s33、主控芯片在确定成功检测到对应有效升级标志位的时候,进行对应新版软件数据的关联,并基于关联到的新版软件数据,替换应用程序区的旧版本软件数据,以实现旧版本的软件升级;具体的,主控芯片可以预先将有效升级标志位于对应的新版软件数据进行关联,并在检测到有效标志位的时候,基于关联到的新版软件数据进行旧版本软件的升级。通过标志位的设定,可以及时明确当前是否存在升级需求,以此提高软件升级效率。
40.s34、主控芯片在完成旧版本软件升级之后,进行无效升级标志位的设定和/或进
行对应有效升级标志位的清除,以避免下次重启时产生误升级的情况。
41.具体的,主控芯片在确定软件成功升级的情况下,将进行有效升级标志位的擦除,如此,一方面可以释放存储空间,另一方面也可以避免误升级情况的发生。
42.在其中一个实施例中,主控芯片还可以判断有效升级标志位的真假,并在确定该有效升级标志位为真时,基于写入的新软件数据进行软件升级。
43.上述实施例,通过进行无效升级标志位的设定和/或进行对应有效升级标志位的清除,避免了误升级情况的发生,提高了软件升级效率。
44.在其中一个实施例中,步骤s3之后,该方法还包括:s4、针对待确认升级状态的目标软件,主控芯片将读取所述目标软件的升级信息,并将所述升级信息与预设的升级规则进行匹配,以及基于得到的匹配结果,判断是否实现旧版本的软件升级,其中,所述升级信息包括升级后的软件版本号、软件运行状态、软件历史运行参数与软件实时运行参数之间的对比情况、以及升级后软件发生异常事件的频率中的至少一种。
45.具体的,主控芯片可以综合当前软件版本号与历史版本号之间的对比情况、在初步确定软件升级之后,软件运行状态以及性能相较以前随之带来的性能提升情况、以及升级后软件发生异常事件的频率中的至少一种情况,以此来判断软件是否升级成功。
46.上述实施例,综合多种升级判断方法判断是否实现旧版本的软件升级,更加全面的保证了对软件升级情况的准确判断,进一步保证了设备的稳定运行。
47.在其中一个实施例中,该方法还包括:步骤s5,主控芯片在确定旧版本软件升级失败时,将软件重新恢复到升级之前的版本,以及向服务终端发送升级异常指令,以触发服务终端重新发送新版本软件数据或在确定存在数据异常篡改的情况时,停止发送新版本软件数据。
48.具体的,主控芯片在重新接收到服务终端发送的新版本软件数据之前,还需要擦除备份程序区中先前存储的、且对于软件升级无用的无效数据,以释放存储空间。
49.在其中一个实施例中,服务终端在确定当前存在数据异常篡改的情况时,可以先获取篡改数据对应的运行日志信息,其中,该运行日志信息中包含有篡改程序对应的目标标识信息(该目标标识信息例如可以为:接入端口信息、以及接入地址等,本技术实施例对此不作限定)。之后,服务终端再根据该目标标识信息确定篡改路径,并停止发送新版本数据。
50.上述实施例,提供了对发生篡改的数据进行分析的机制,并在确定存在数据异常篡改的情况时,停止发送新版本软件数据,实现了对数据的安全防护。
51.在其中一个实施例中,步骤s1中,服务终端将在预设的检测周期内,检查软件数据是否存在更新,和/或基于版本更新信息,判断软件数据更新情况,若是,则进行最新软件数据的获取,并将获取到的最新软件数据发送给主控芯片,以由主控芯片基于接收到的最新软件数据进行旧版本软件的升级。
52.具体的,服务终端可以将新发布的第一程序包与当前运行的第二程序包进行对比,以判断软件数据是否更新,例如,在确定第一程序包与第二程序包相匹配时,则认为软件数据更新成功。
53.在其中一个实施例中,主控芯片在确定多次成功升级的情况下,将计算软件升级
所需的平均时间以及软件升级的成功率。之后,若该平均升级时间在规定时间范围内,且软件升级的成功率高于一定比例时,则认为通过升级效率测试,反之,可以根据设备实时运行信息以及性能参数,进行升级成功效率低下的原因查询。
54.本发明的主控芯片根据配置信息对新版软件数据,进行数据完整性以及数据准确性校验,解决了由于缺乏数据完整性防护机制,导致升级过程中存在数据不完整的问题,从而提高升级效率。另外,在将新版软件数据写入到备份程序区时,根据数据所属类型以及待写入的数据量进行写入速度的调整,以此来缓解存储压力以及保证设备的正常运行,提高了设备运行的稳定性。最后,在升级过程中,将需要升级的新版软件下载到主芯片内的程序备份区内,使得在下载过程中如果出错或丢包的情况下,仍然能够同步运行旧版本软件数据,保障设备的稳定运行,其中,主控芯片在接收到新版软件数据的所有数据之后,再利用写入的新版软件数据替换应用程序区的旧版本软件数据,从而进一步保证了升级过程的稳定可靠性。
55.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
56.在本技术所提供的实施例中,应该理解到,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元可结合为一个单元,一个单元可拆分为多个单元,或一些特征可以忽略等。
57.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1