引导程序更新方法、装置、设备及计算机可读介质制造方法及图纸

技术编号:29672180 阅读:17 留言:0更新日期:2021-08-13 21:53
本申请涉及一种引导程序更新方法、装置、设备及计算机可读介质。该方法包括:在第一引导程序检测到引导程序更新标识的情况下,启动第二引导程序;在第二引导程序中,接收第三引导程序的程序数据,并将第三引导程序的程序数据作为更新文件更新目标应用程序,第三引导程序中携带有引导程序更新文件,引导程序更新文件包括第一引导程序和/或第二引导程序的更新文件,第三引导程序用于更新第一引导程序和/或第二引导程序;执行更新后的目标应用程序,以使用第一引导程序的更新文件对第一引导程序进行更新,和/或使用第二引导程序的更新文件对第二引导程序进行更新。本申请解决了bootloader升级流程复杂、安全性低的技术问题。

【技术实现步骤摘要】
引导程序更新方法、装置、设备及计算机可读介质
本申请涉及嵌入式
,尤其涉及一种引导程序更新方法、装置、设备及计算机可读介质。
技术介绍
嵌入式MCU(MicrocontrollerUnit,微控制单元)booloader作为MCU启动运行的引导程序,同时负责为应用程序固件进行升级,但是bootloader程序存在的漏洞会严重影响MCU的正常运行,因此bootloader程序同样面临升级更新的需求。目前,相关技术中,升级bootloader的方案比较繁琐,配置参数和系统运行数据容易丢失,导致容易宕机。针对bootloader升级流程复杂、安全性低的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请提供了一种引导程序更新方法、装置、设备及计算机可读介质,以解决bootloader升级流程复杂、安全性低的技术问题。根据本申请实施例的一个方面,本申请提供了一种引导程序更新方法,包括:在第一引导程序检测到引导程序更新标识的情况下,启动第二引导程序,第一引导程序用于引导微控制器启动,并确定所要跳转的执行程序,第二引导程序用于更新所述微控制器的应用程序,应用程序用于记录微控制器提供的控制服务;在第二引导程序中,接收第三引导程序的程序数据,并将第三引导程序的程序数据作为更新文件更新目标应用程序,第三引导程序中携带有引导程序更新文件,引导程序更新文件包括第一引导程序和/或第二引导程序的更新文件,第三引导程序用于更新第一引导程序和/或第二引导程序;执行更新后的目标应用程序,以使用第一引导程序的更新文件对第一引导程序进行更新,和/或使用第二引导程序的更新文件对第二引导程序进行更新。可选地,第一引导程序的程序数据存储在第一分区,第二引导程序的程序数据存储在第二分区,第一分区和第二分区为引导程序区;在第一引导程序检测到引导程序更新标识的情况下,启动第二引导程序包括:从第二分区提取第二引导程序的程序数据,并获取第二引导程序的程序数据的第一原始校验码,第一原始校验码为第二引导程序编码完成后生成的,第一原始校验码存储于第二分区中的校验码存储扇区;确定第二引导程序的程序数据的第一当前校验码;在第一当前校验码与第一原始校验码一致的情况下,启动第二引导程序。可选地,目标应用程序的程序数据存储在第三分区,第三分区为应用程序区,引导程序区和应用程序区均为第一缓存器中的扇区;在第二引导程序中,接收第三引导程序的程序数据,并将第三引导程序的程序数据作为更新文件更新目标应用程序包括:接收第三引导程序的程序数据,并将第三引导程序的程序数据转存至第一备份区,第一备份区为第二缓存器中的扇区;在第三引导程序的程序数据转存完成后,擦除第三分区中存储的目标应用程序的原始数据;将第一备份区中第三引导程序的程序数据复制到第三分区,以对目标应用程序进行更新。可选地,对目标应用程序进行更新之后,所述方法还包括:从第三分区提取更新后的目标应用程序的程序数据,并获取第三引导程序的程序数据的第二原始校验码,第二原始校验码为第三引导程序编码完成后生成的,第二原始校验码存储于第三分区中的校验码存储扇区;确定更新后目标应用程序的程序数据的第二当前校验码;在第二当前校验码与第二原始校验码一致的情况下,向第一引导程序传递正常启动标识,并重新启动第一引导程序。可选地,执行更新后的目标应用程序,以使用第一引导程序的更新文件对第一引导程序进行更新,和/或使用第二引导程序的更新文件对第二引导程序进行更新包括:在第一引导程序检测到正常启动标识的情况下,启动更新后的目标应用程序,其中,更新后的目标应用程序用于实现第三引导程序的预设功能;在更新后的目标应用程序中,将第一分区中存储的第一引导程序的原始数据复制到第二备份区,第二备份区为第二缓存器中的扇区;备份完成后,擦除第一分区中存储的原始数据;将第一引导程序的更新文件复制到第一分区,以对第一引导程序进行更新;和/或,在第一引导程序检测到正常启动标识的情况下,启动更新后的目标应用程序,其中,更新后的目标应用程序用于实现第三引导程序的预设功能;在更新后的目标应用程序中,将第二分区中存储的第二引导程序的原始数据复制到第三备份区,第三备份区为第二缓存器中的扇区;备份完成后,擦除第二分区中存储的原始数据;将第二引导程序的更新文件复制到第二分区,以对第二引导程序进行更新。可选地,对第一引导程序进行更新和/或对第二引导程序进行更新之后,所述方法还包括:从第一分区提取更新后的第一引导程序的程序数据,并获取第一引导程序的更新文件的第三原始校验码,第三原始校验码为第一引导程序的更新文件编码完成后生成的,第三原始校验码存储于第一分区中的校验码存储扇区;确定更新后第一引导程序的程序数据的第三当前校验码;在第三当前校验码与第三原始校验码一致的情况下,确定第一引导程序更新成功;和/或,从第二分区提取更新后的第二引导程序的程序数据,并获取第二引导程序的更新文件的第四原始校验码,第四原始校验码为第二引导程序的更新文件编码完成后生成的,第四原始校验码存储于第二分区中的校验码存储扇区;确定更新后第二引导程序的程序数据的第四当前校验码;在第四当前校验码与第四原始校验码一致的情况下,确定第二引导程序更新成功。可选地,在接收第三引导程序的程序数据的进程中断的情况下,向第一引导程序发送传输失败标识,以使得第一引导程序检测到传输失败标识时,启动第二引导程序重新更新目标应用程序;在将第一备份区中第三引导程序的程序数据复制到第三分区的进程中断,和/或更新后的目标应用程序校验未通过的情况下,向第一引导程序发送第一更新失败标识,以使得第一引导程序检测到第一更新失败标识时,启动第二引导程序重新更新目标应用程序;在将第一分区中存储的第一引导程序的原始数据复制到第二备份区的进程中断,和/或更新后的第一引导程序校验未通过的情况下,从第二备份区恢复第一引导程序的原始数据,并向第一引导程序发送第二更新失败标识,以执行原始的第一引导程序并重新引导目标应用程序更新第一引导程序;在将第二分区中存储的第二引导程序的原始数据复制到第三备份区的进程中断,和/或更新后的第二引导程序校验未通过的情况下,向第一引导程序发送第三更新失败标识,以执行第一引导程序并重新引导目标应用程序更新第二引导程序。根据本申请实施例的另一方面,本申请提供了一种引导程序更新装置,包括:启动模块,用于在第一引导程序检测到引导程序更新标识的情况下,启动第二引导程序,第一引导程序用于引导微控制器启动,并确定所要跳转的执行程序,第二引导程序用于更新微控制器的应用程序,应用程序用于记录微控制器提供的控制服务;应用程序更新模块,用于在第二引导程序中,接收第三引导程序的程序数据,并将第三引导程序的程序数据作为更新文件更新目标应用程序,第本文档来自技高网...

【技术保护点】
1.一种引导程序更新方法,其特征在于,包括:/n在第一引导程序检测到引导程序更新标识的情况下,启动第二引导程序,其中,所述第一引导程序用于引导微控制器启动,并确定所要跳转的执行程序,所述第二引导程序用于更新所述微控制器的应用程序,所述应用程序用于记录所述微控制器提供的控制服务;/n在所述第二引导程序中,接收第三引导程序的程序数据,并将所述第三引导程序的程序数据作为更新文件更新目标应用程序,其中,所述第三引导程序中携带有引导程序更新文件,所述引导程序更新文件包括所述第一引导程序和/或所述第二引导程序的更新文件,所述第三引导程序用于更新所述第一引导程序和/或所述第二引导程序;/n执行更新后的所述目标应用程序,以使用所述第一引导程序的更新文件对所述第一引导程序进行更新,和/或使用所述第二引导程序的更新文件对所述第二引导程序进行更新。/n

【技术特征摘要】
1.一种引导程序更新方法,其特征在于,包括:
在第一引导程序检测到引导程序更新标识的情况下,启动第二引导程序,其中,所述第一引导程序用于引导微控制器启动,并确定所要跳转的执行程序,所述第二引导程序用于更新所述微控制器的应用程序,所述应用程序用于记录所述微控制器提供的控制服务;
在所述第二引导程序中,接收第三引导程序的程序数据,并将所述第三引导程序的程序数据作为更新文件更新目标应用程序,其中,所述第三引导程序中携带有引导程序更新文件,所述引导程序更新文件包括所述第一引导程序和/或所述第二引导程序的更新文件,所述第三引导程序用于更新所述第一引导程序和/或所述第二引导程序;
执行更新后的所述目标应用程序,以使用所述第一引导程序的更新文件对所述第一引导程序进行更新,和/或使用所述第二引导程序的更新文件对所述第二引导程序进行更新。


2.根据权利要求1所述的方法,其特征在于,所述第一引导程序的程序数据存储在第一分区,所述第二引导程序的程序数据存储在第二分区,所述第一分区和所述第二分区为引导程序区;在第一引导程序检测到引导程序更新标识的情况下,启动第二引导程序包括:
从所述第二分区提取所述第二引导程序的程序数据,并获取所述第二引导程序的程序数据的第一原始校验码,其中,所述第一原始校验码为所述第二引导程序编码完成后生成的,所述第一原始校验码存储于所述第二分区中的校验码存储扇区;
确定所述第二引导程序的程序数据的第一当前校验码;
在所述第一当前校验码与所述第一原始校验码一致的情况下,启动所述第二引导程序。


3.根据权利要求2所述的方法,其特征在于,所述目标应用程序的程序数据存储在第三分区,所述第三分区为应用程序区,所述引导程序区和所述应用程序区均为第一缓存器中的扇区;在所述第二引导程序中,接收第三引导程序的程序数据,并将所述第三引导程序的程序数据作为更新文件更新目标应用程序包括:
接收所述第三引导程序的程序数据,并将所述第三引导程序的程序数据转存至第一备份区,其中,所述第一备份区为第二缓存器中的扇区;
在所述第三引导程序的程序数据转存完成后,擦除所述第三分区中存储的所述目标应用程序的原始数据;
将所述第一备份区中所述第三引导程序的程序数据复制到所述第三分区,以对所述目标应用程序进行更新。


4.根据权利要求3所述的方法,其特征在于,对所述目标应用程序进行更新之后,所述方法还包括:
从所述第三分区提取更新后的所述目标应用程序的程序数据,并获取所述第三引导程序的程序数据的第二原始校验码,其中,所述第二原始校验码为所述第三引导程序编码完成后生成的,所述第二原始校验码存储于所述第三分区中的校验码存储扇区;
确定更新后所述目标应用程序的程序数据的第二当前校验码;
在所述第二当前校验码与所述第二原始校验码一致的情况下,向所述第一引导程序传递正常启动标识,并重新启动所述第一引导程序。


5.根据权利要求4所述的方法,其特征在于,执行更新后的所述目标应用程序,以使用所述第一引导程序的更新文件对所述第一引导程序进行更新,和/或使用所述第二引导程序的更新文件对所述第二引导程序进行更新包括:
在所述第一引导程序检测到所述正常启动标识的情况下,启动更新后的所述目标应用程序,其中,更新后的所述目标应用程序用于实现所述第三引导程序的预设功能;
在更新后的所述目标应用程序中,将所述第一分区中存储的所述第一引导程序的原始数据复制到第二备份区,其中,所述第二备份区为所述第二缓存器中的扇区;
备份完成后,擦除所述第一分区中存储的所述原始数据;
将所述第一引导程序的更新文件复制到所述第一分区,以对所述第一引导程序进行更新;
和/或,
在所述第一引导程序检测到所述正常启动标识的情况下,启动更新后的所述目标应用程序,其中,更新后的所述目标应用程序用于实现所述第三引导程序的预设功能;
在更新后的所述目标应用程序中,将所述第二分区中存储的所述第二引导程序的原始数据复制到第三备份区,其中,...

【专利技术属性】
技术研发人员:魏建仓商春喜董焰刘东娜姚健严娓贺继阳
申请(专利权)人:深之蓝天津水下智能科技有限公司
类型:发明
国别省市:天津;12

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

1