嵌入式软件的校验方法技术

技术编号:39731376 阅读:9 留言:0更新日期:2023-12-17 23:34
本发明专利技术公开了一种嵌入式软件的校验方法

【技术实现步骤摘要】
嵌入式软件的校验方法、装置、设备及存储介质


[0001]本专利技术实施例涉及计算机
,尤其涉及一种嵌入式软件的校验方法

装置

设备及存储介质


技术介绍

[0002]目前,嵌入式电子产品应用越来越广泛,产品需求尤其是软件需求的更新迭代速度越来越快,产品软件设计的复杂度逐渐提升也导致更容易出现维护的需要

具备多次稳定可靠的软件在线升级能力已经成为对绝大多数嵌入式电子系统的软硬件系统设计的基础性要求

嵌入式系统的开发者在设计之初就要全面的考虑到软件升级的各种可能情况,保证软件升级过程的安全性

在软件升级前,软件升级传输过程中,数据传输完成后都应当有可靠的校验保证措施,在最坏的情况下也需要保证软件能以正常方式更新升级,避免返厂拆机重注这种成本极高的操作

[0003]业界对于软件升级的设计思路基本上是将软件划分为升级引导程序
(Bootloader)
和应用程序
(Application

APP)
两部分

其中
Bootloader
程序负责在软件启动之初检查
APP
程序的有效性,若
APP
程序有效,则引导程序指针跳转到
APP
段的起始地址运行,除非复位或有程序更新需要主动跳回,否则不再回到
Bootloader
运行
/>若有升级需要,则
Bootloader
负责从上一级主设备或者外接上位机主设备获取到要更新的二进制文件,写入子设备对应的存储地址空间

现有技术的软件升级方案为:上一级设备发送升级控制指令,被升级设备进入升级模式;上一级设备将目标版本的程序文件拆分成多个连续的包发送给被升级设备,被升级设备接收到完整的数据,需要经过正确性
(Cyclic Redundancy Check

CRC)
校验确保数据传输链路中没有丢帧或者被干扰出错;匹配性校验确保本次收到的软件文件是本设备的,而非错误的传入了其他设备的非法软件文件

被升级设备确认文件传输无误且匹配后,主动复位或者由上一级控制复位,重新运行一遍
Bootloader
程序,跳转到
APP
执行升级后的程序

[0004]存在如下缺陷:
1、
误将升级指令识别等部分删除,最后生成的二进制文件,刷新后不能正常的支持功能,或者由于无法识别升级指令,将不能再次更新
。2、
误将
APP
内的波特率错配,与
Bootloader
或上级主设备不一致

从而导致无法响应升级指令,失去正常通信功能

若要恢复,甚至需要修改上级升级软件,跳转前后分别采用不同的通信波特率


APP
错误的波特率极其异常,甚至不能通过改上级代码修复,设备“成砖”。3、
软件更新后,由于从
Bootloader

APP
跳转过程需要重新配置中断

看门狗

其他外设,若配合出问题,可能导致
APP
功能异常,程序很快复位且一直频繁复位,每次从
Bootloader
启动,都认为是正确的程序

若复位频次过多,则导致即便有上层设备请求重新升级,设备仍然可能“成砖”。4、
刷新完成后长期运行过程中存储地址空间被错误改写,导致程序运行异常,无法响应更新指令


技术实现思路

[0005]本专利技术实施例提供一种嵌入式软件的校验方法

装置

设备及存储介质,保证嵌入
式软件在各种异常情况下的可持续更新,极大程度的减少了设备拆机重新烧录注入的情况,提高嵌入式软件的可靠性

[0006]第一方面,本专利技术实施例提供了一种嵌入式软件的校验方法,所述方法由从设备执行,包括:
[0007]接收主设备发送的软件升级文件,并将所述软件升级文件更新至代码存储空间中;其中,所述软件升级文件中包括升级关键代码;
[0008]对所述升级关键代码进行校验,若校验通过,则控制所述嵌入式软件由升级引导程序跳转至应用程序进行试运行,并向所述主设备发送校验通过信息,使得主设备根据所述校验通过信息向所述从设备发送升级跳转请求;
[0009]在所述嵌入式软件试运行过程中,对所述升级跳转请求进行响应,生成响应信息;
[0010]将所述响应信息发送至所述主设备,使得所述主设备根据所述响应信息先所述从设备发送升级有效指令;
[0011]根据所述升级有效指令将有效标志写入第一设定存储地址中,并控制所述嵌入式软件由应用程序跳转回升级引导程序

[0012]第二方面,本专利技术实施例还提供了一种嵌入式软件的校验方法,所述方法由主设备执行,包括:
[0013]向从设备发送软件升级文件,使得从设备将所述软件升级文件更新至代码存储空间中,并对所述软件升级文件中的升级关键代码进行校验,若校验通过,则控制所述嵌入式软件由升级引导程序跳转至应用程序进行试运行,并向所述主设备发送校验通过信息;
[0014]接收所述从设备发送的校验通过信息,并根据所述校验通过信息向所述从设备发送升级跳转请求,使得所述从设备在嵌入式软件试运行过程中,对所述升级跳转请求进行响应,生成响应信息;
[0015]接收所述从设备发送的响应信息,并根据所述响应信息向所述从设备发送升级有效指令,使得所述从设备根据所述升级有效指令将有效标志写入第一设定存储地址中,并控制所述嵌入式软件由应用程序跳转回升级引导程序

[0016]第三方面,本专利技术实施例还提供了一种嵌入式软件的校验装置,所述装置设备于从设备中,包括:
[0017]软件升级文件接收模块,用于接收主设备发送的软件升级文件,并将所述软件升级文件更新至代码存储空间中;其中,所述软件升级文件中包括升级关键代码;
[0018]升级关键代码校验模块,用于对所述升级关键代码进行校验,若校验通过,则控制所述嵌入式软件由升级引导程序跳转至应用程序进行试运行,并向所述主设备发送校验通过信息,使得主设备根据所述校验通过信息向所述从设备发送升级跳转请求;
[0019]响应模块,用于在所述嵌入式软件试运行过程中,对所述升级跳转请求进行响应,生成响应信息;
[0020]响应信息发送模块,用于将所述响应信息发送至所述主设备,使得所述主设备根据所述响应信息向所述从设备发送升级有效指令;
[0021]有效标志写入模块,用于根据所述升级有效指令将有效标志写入第一设定存储地址中,并控制所述嵌入本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种嵌入式软件的校验方法,其特征在于,所述方法由从设备执行,包括:接收主设备发送的软件升级文件,并将所述软件升级文件更新至代码存储空间中;其中,所述软件升级文件中包括升级关键代码;对所述升级关键代码进行校验,若校验通过,则控制所述嵌入式软件由升级引导程序跳转至应用程序进行试运行,并向所述主设备发送校验通过信息,使得主设备根据所述校验通过信息向所述从设备发送升级跳转请求;在所述嵌入式软件试运行过程中,对所述升级跳转请求进行响应,生成响应信息;将所述响应信息发送至所述主设备,使得所述主设备根据所述响应信息向所述从设备发送升级有效指令;根据所述升级有效指令将有效标志写入第一设定存储地址中,并控制所述嵌入式软件由应用程序跳转回升级引导程序
。2.
根据权利要求1所述的方法,其特征在于,对所述升级关键代码进行校验,包括:从第二设定存储地址读取所述升级关键代码;确定所述升级关键代码的第一校验值;将所述第一校验值与存储于第三设定存储地址中的第二校验值进行比较;若所述第一校验值和所述第二校验值一致,则校验通过;若所述第一校验值和所述第二校验值不一致,则校验不通过
。3.
根据权利要求1所述的方法,其特征在于,在向主设备发送校验通过信息之后,还包括:若在设定时长内未接收到所述主设备发送的升级跳转请求;或者,未根据所述升级跳转指令由升级引导程序跳转至应用程序进行试运行;或者,在跳转至应用程序进行试运行过程中未生成响应信息且自动跳转回升级引导程序,则生成升级异常信息,并将所述升级异常信息发送至所述主设备
。4.
根据权利要求1所述的方法,其特征在于,在控制所述嵌入式软件由应用程序跳转回升级引导程序之后,还包括:在运行升级引导程序的过程中,若从所述第一设定存储地址读取到所述有效标志,则控制控制所述嵌入式软件由升级引导程序跳转至应用程序运行;在运行所述应用程序的过程中,从所述代码存储空间中提取所述嵌入式软件的程序代码;根据所述程序代码确定第三校验值;将所述第三校验值与存储于第四设定存储地址中的第四校验值进行比较;若所述第三校验值和所述第四校验值不一致,则控制所述嵌入式软件由应用程序跳转回升级引导程序,并将异常统计值累加
1。5.
根据权利要求4所述的方法,其特征在于,在将异常统计值累加1之后,还包括:若所述异常统计值达到设定阈值,则将所述第一设定存储地址中的有效标志清除,并生成异常提示信息
。6.
一种嵌入式软件的校验方法,其特征在于,所述方法由主设备执行,包括:向从设备发送软件升级文件,使得从设备将所述软件升级文件更新至代码存储空间中,并对所述软件升级文件中的升级关键代码进行校验,若校验通过,则控制所述嵌入式软
件由升级引导程序跳转至应用程序进行试运行,并向所述主设备发送校验通过信息;接收所述从设备发送的校验通过信息,并根据所述校验通过信息向所述从设备发送升级跳转请求,使得所述从设备在嵌入式软件试运行过程中,对...

【专利技术属性】
技术研发人员:董寒王悦
申请(专利权)人:北京普源精电科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1