【技术实现步骤摘要】
引导程序更新方法、装置、设备及计算机可读介质
本申请涉及嵌入式
,尤其涉及一种引导程序更新方法、装置、设备及计算机可读介质。
技术介绍
嵌入式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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。