Bootloader更新方法、装置、介质及控制器制造方法及图纸

技术编号:39318220 阅读:14 留言:0更新日期:2023-11-12 16:00
本申请公开了一种引导加载程序Bootloader更新方法、装置、介质及控制器,Bootloader包括第一程序和第二程序,包括:跳转至第一启动模块运行第一程序,跳转至第二启动模块运行第二程序;在检测到第二程序待更新的情况下,下载目标应用程序,并跳转至目标应用程序,更新第二程序;在控制器复位后,再次跳转至第一启动模块运行第一程序,并检测第二程序的更新状态;在更新状态用于表征第二程序更新完成的情况下,通过跳转至第二启动模块运行更新后的第二程序;在更新状态用于表征第二程序未更新完成的情况下,通过跳转至目标应用程序,继续更新第二启动模块中的第二程序。根据本申请实施例,能够解决控制器变砖的问题,保证BootLoader完成更新。证BootLoader完成更新。证BootLoader完成更新。

【技术实现步骤摘要】
Bootloader更新方法、装置、介质及控制器


[0001]本申请属于车辆控制
,尤其涉及一种Bootloader更新方法、装置、介质及控制器。

技术介绍

[0002]目前,车辆上的控制器大多数都存储引导加载程序(BootLoader),该BootLoader主要用于对控制器中的应用程序进行在线升级,以通过升级可以增加产品的新功能或修复潜在bug。随着车辆产品功能越来越复杂,促使Bootloader支持一些新的特性或功能,需要对BootLoader自身进行升级。然而,技术革新带来新的信息安全问题,汽车行业正在引入硬件安全启动与信任链,硬件安全启动的加入,让BootLoader的自身更新变得更加困难。
[0003]相关技术中,传统的BootLoader更新方式,一旦更新过程中出现断电或者刷写错误,在控制器复位后都会导致控制器变砖,无法正常完成更新。

技术实现思路

[0004]本申请实施例的目的是提供一种Bootloader更新方法、装置、介质及控制器,能够解决控制器变砖的问题,保证BootLoader完成更新。
[0005]第一方面,本申请实施例提供一种Bootloader更新方法,Bootloader包括第一程序和第二程序,该方法包括:
[0006]通过跳转至第一启动模块运行第一程序,并通过跳转至第二启动模块运行第二程序;
[0007]在检测到第二程序待更新的情况下,下载目标应用程序,并通过跳转至目标应用程序,更新第二启动模块中的第二程序;
[0008]在控制器复位后,再次跳转至第一启动模块运行第一程序,并检测第二程序的更新状态;
[0009]在更新状态用于表征第二程序更新完成的情况下,通过跳转至第二启动模块运行更新后的第二程序;
[0010]在更新状态用于表征第二程序未更新完成的情况下,通过跳转至目标应用程序,继续更新第二启动模块中的第二程序,直至第二程序更新完成。
[0011]在第一方面的一些可实现方式中,目标应用程序包括第三程序,目标应用程序用于将第二程序更新为第三程序,在更新第二启动模块中的第二程序之后,方法还包括:
[0012]若第二程序已被更新为第三程序,则将目标cmac值更新为第三程序对应的cmac值;
[0013]若第二程序未被更新为第三程序,确定目标cmac值为第二程序对应的cmac值。
[0014]在第一方面的一些可实现方式中,检测第二程序的更新状态,包括:
[0015]计算更新后的第二程序对应的第一cmac值;
[0016]在第一cmac值与目标cmac值一致的情况下,确定更新状态为第二程序更新完成;
[0017]在第一cmac值与目标cmac值不一致的情况下,确定更新状态为第二程序未更新完成。
[0018]在第一方面的一些可实现方式中,在下载目标应用程序之后,方法还包括:
[0019]设置目标应用程序的第一Counter值为第一数值,其中,第一数值为第二数值与预设数值的和值,第二启动模块的第二Counter值设置为第二数值;
[0020]在更新第二启动模块中的第二程序之后,方法还包括:
[0021]若第二程序更新完成,将第二启动模块的第二Counter值更新为第三数值,其中,第三数值为第一数值与预设数值的和值;
[0022]若第二程序未更新完成,不更新第二启动模块的第二Counter值。
[0023]在第一方面的一些可实现方式中,检测第二程序的更新状态,包括:
[0024]获取第一Counter值和第二Counter值;
[0025]在第一Counter值比第二Counter值少1的情况下,确定更新状态为第二程序更新完成;
[0026]在第一Counter值比第二Counter值多1的情况下,确定更新状态为第二程序未更新完成。
[0027]在第一方面的一些可实现方式中,通过跳转至第一启动模块运行第一程序,并通过跳转至第二启动模块运行第二程序,包括:
[0028]基于硬件加密模块对第一启动模块进行安全篡改检验;
[0029]在第一启动模块中第一程序检验通过的情况下,通过跳转至第一启动模块运行第一程序;
[0030]基于硬件加密模块对第二启动模块进行安全篡改检验;
[0031]在第二启动模块中第二程序检验通过的情况下,通过跳转至第二启动模块运行第二程序。
[0032]在第一方面的一些可实现方式中,在通过跳转至第一启动模块运行第一程序之前,方法还包括:
[0033]获取Bootloader;
[0034]将Bootloader拆分为第一程序和第二程序。
[0035]第二方面,本申请实施例提供一种Bootloader更新装置,Bootloader包括第一程序和第二程序,该装置包括:
[0036]运行模块,用于通过跳转至第一启动模块运行第一程序,并通过跳转至第二启动模块运行第二程序;
[0037]下载更新模块,用于在检测到第二程序待更新的情况下,下载目标应用程序,并通过跳转至目标应用程序,更新第二启动模块中的第二程序;
[0038]运行模块,还用于在控制器复位后,再次跳转至第一启动模块运行第一程序,并检测第二程序的更新状态;
[0039]运行模块,还用于在更新状态用于表征第二程序更新完成的情况下,通过跳转至第二启动模块运行更新后的第二程序;
[0040]下载更新模块,还用于在更新状态用于表征第二程序未更新完成的情况下,通过跳转至目标应用程序,继续更新第二启动模块中的第二程序,直至第二程序更新完成。
[0041]在第二方面的一些可实现方式中,运行模块包括:
[0042]计算单元,用于计算更新后的第二程序对应的第一cmac值;
[0043]确定单元,用于在第一cmac值与目标cmac值一致的情况下,确定更新状态为第二程序更新完成;
[0044]确定单元,还用于在第一cmac值与目标cmac值不一致的情况下,确定更新状态为第二程序未更新完成。
[0045]在第二方面的一些可实现方式中,装置还包括:
[0046]设置模块,用于在下载目标应用程序之后,设置目标应用程序的第一Counter值为第一数值,其中,第一数值为第二数值与预设数值的和值,第二启动模块的第二Counter值设置为第二数值;
[0047]设置模块,还用于在更新第二启动模块中的第二程序之后,若第二程序更新完成,将第二启动模块的第二Counter值更新为第三数值,其中,第三数值为第一数值与预设数值的和值;
[0048]设置模块,还用于若第二程序未更新完成,不更新第二启动模块的第二Counter值。
[0049]在第二方面的一些可实现方式中,运行模块包括:
[0050]获取单元,用于获取第一Counter值和第二Counter值;
[0051]确定单元,用于在第一Counter值比第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Bootloader更新方法,其特征在于,所述Bootloader包括第一程序和第二程序,所述方法包括:通过跳转至第一启动模块运行所述第一程序,并通过跳转至第二启动模块运行所述第二程序;在检测到所述第二程序待更新的情况下,下载目标应用程序,并通过跳转至所述目标应用程序,更新所述第二启动模块中的第二程序;在控制器复位后,再次跳转至所述第一启动模块运行所述第一程序,并检测所述第二程序的更新状态;在所述更新状态用于表征第二程序更新完成的情况下,通过跳转至所述第二启动模块运行更新后的第二程序;在所述更新状态用于表征第二程序未更新完成的情况下,通过跳转至所述目标应用程序,继续更新所述第二启动模块中的第二程序,直至所述第二程序更新完成。2.根据权利要求1所述的方法,其特征在于,所述目标应用程序包括第三程序,所述目标应用程序用于将所述第二程序更新为第三程序,在所述更新所述第二启动模块中的第二程序之后,所述方法还包括:若所述第二程序未被更新为所述第三程序,确定目标cmac值为所述第二程序对应的cmac值;若所述第二程序已被更新为所述第三程序,则将目标cmac值更新为所述第三程序对应的cmac值。3.根据权利要求2所述的方法,其特征在于,所述检测所述第二程序的更新状态,包括:计算更新后的第二程序对应的第一cmac值;在所述第一cmac值与所述目标cmac值一致的情况下,确定所述更新状态为第二程序更新完成;在所述第一cmac值与所述目标cmac值不一致的情况下,确定所述更新状态为第二程序未更新完成。4.根据权利要求1所述的方法,其特征在于:在所述下载目标应用程序之后,所述方法还包括:设置所述目标应用程序的第一Counter值为第一数值,其中,所述第一数值为第二数值与预设数值的和值,所述第二启动模块的第二Counter值设置为所述第二数值;在所述更新所述第二启动模块中的第二程序之后,所述方法还包括:若所述第二程序更新完成,将所述第二启动模块的第二Counter值更新为第三数值,其中,所述第三数值为所述第一数值与所述预设数值的和值;若所述第二程序未更新完成,不更新所述第二启动模块的第二Counter值。5.根据权利要求4所述的方法,其特征在于,所述检测所述第二程序的更新状态,包括:获取所述第一Counter值和所述第二Counter值;在所述第一Counter值比所述第...

【专利技术属性】
技术研发人员:罗求顺陈宁李博学
申请(专利权)人:北京经纬恒润科技股份有限公司
类型:发明
国别省市:

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

1