CN109857426A - Bootloader程序更新方法、装置、电子设备及存储介质 - Google Patents
Bootloader程序更新方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109857426A CN109857426A CN201811613635.3A CN201811613635A CN109857426A CN 109857426 A CN109857426 A CN 109857426A CN 201811613635 A CN201811613635 A CN 201811613635A CN 109857426 A CN109857426 A CN 109857426A
- Authority
- CN
- China
- Prior art keywords
- program
- electronic equipment
- space
- bootloader
- new version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种Bootloader程序更新方法、装置、电子设备及存储介质,更新Bootloader时,第一电子设备将第二电子设备发送的第一程序写入原本用于存储应用程序的第二空间,然后接收第二电子设备发送的新版本的Bootloader程序,并利用第一程序,将第一空间中的旧版本的Bootloader程序更新为新版本的Bootloader程序,从而实现对Bootloader程序的更新。该过程中,通过利用软件方式对Bootloader程序进行更新,无需拆卸第一电子设备即可实现对Bootloader程序的更新。
Description
技术领域
本发明实施例涉及控制技术领域,尤其涉及一种Bootloader程序更新方法、装置、电子设备及存储介质。
背景技术
电子控制单元(electronic control unit,ECU),也被称之为行车电脑、车载电脑,是汽车的“大脑”。Bootloader程序可以通过CAN总线等接收最新的应用程序,以实现对ECU上加载的应用程序进行更新。
通常情况下,Bootloader程序和应用程序分别存储在ECU的非易失性存储器的第一空间和第二空间中。更新应用程序的过程就是利用第一空间的Bootloader程序和网络进行通信,将第二空间中的初始应用程序替换为新的应用程序的过程。第一空间的Bootloader程序是电子设备出厂前,通过烧录方式写入第一空间的,Bootloader程序通常比较可靠、不会发生改变。若出现问题,需要将车辆召回,从车辆上取下电子控制元件,在电子控制元件上重新烧录Bootloader程序。为避免该弊端,目前,采用双Bootloader的方法对Bootloader程序进行更新升级。但需要将ECU的非易失性存储器划分为三部分,分别存储第一Bootloader程序、第二Bootloader程序和应用程序。通过第一Bootloader程序更新第二Bootloader程序,利用第二Bootloader程序更新应用程序。当第一Bootloader程序出现问题时,通过第二Bootloader程序更新第一Bootloader程序。
上述Bootloader程序更新的过程中,需要设置双Bootloader,Bootloader程序占用的空间较大,导致ECU启动时间长、ECU成本高,若该ECU应用于汽车,则无法满足汽车安全完整性等级(automotive safety integration level,ASIL)要求。
发明内容
本发明实施例提供一种Bootloader程序更新方法、装置、电子设备及存储介质,以实现降低Bootloader占用空间、降低更新Bootloader程序的成本的目的。
第一方面,本发明实施例提供一种Bootloader更新方法,
适用于第一电子设备,所述第一电子设备的非易失性存储器上具有第一空间和第二空间,所述第一空间用于存储Bootloader程序,所述第二空间用于存储应用程序,所述方法包括:
接收第二电子设备发送的第一程序;
将所述第一程序写入所述第二空间;
接收所述第二电子设备发送的新版本的Bootloader程序;
利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序。
一种可行的设计中,所述接收第二电子设备发送的第一程序,包括:
运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序。
一种可行的设计中,所述运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序之前,还包括:
接收所述第二电子设备发送的用于指示更新所述旧版本的Bootloader程序的指令。
一种可行的设计中,所述将所述第一程序写入所述第二空间,包括:
擦除所述第二空间中的旧版本应用程序;
将所述第一程序写入所述第二空间序。
一种可行的设计中,所述利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还包括:
接收所述第二电子设备发送的新版本应用程序;
擦除所述第二空间中的所述第一程序;
利用所述新版本的Bootloader程序,将所述新版本应用程序写入所述第二空间。
一种可行的设计中,所述利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还包括:
判断是否成功将所述新版本的Bootloader程序写入所述第一空间;
若未成功将所述新版本的Bootloader程序写入所述第一空间,则向所述第二电子设备发送失败响应消息;
接收所述第二电子设备重新发送的所述新版本的Bootloader程序。
一种可行的设计中,所述接收所述第二电子设备发送的新版本的Bootloader程序之前,还包括:
判断是否成功将所述第一程序写入所述第二空间;
若未成功将所述第一程序写入所述第二空间,则向所述第二电子设备发送失败响应消息;
接收所述第二电子设备重新发送的所述第一程序。
第二方面,本发明实施例提供一种Bootloader程序更新装置的结构示意图,该Bootloader程序更新装置设置在电子设备上,该电子设备作为第一电子设备,第一电子设备的非易失性存储器上具有第一空间和第二空间,第一空间用于存储Bootloader程序,第二空间用于存储应用程序,该Bootloader程序更新装置包括:
接收单元,用于接收第二电子设备发送的第一程序;
处理单元,用于将所述第一程序写入所述第二空间;
所述接收单元,还用于接收所述第二电子设备发送的新版本的Bootloader程序;
所述处理单元,还用于利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序。
一种可行的设计中,所述接收单元,具体用于利用所述处理单元运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序。
一种可行的设计中,所述接收单元,在利用所述处理单元运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序之前,还接收所述第二电子设备发送的用于指示更新所述旧版本的Bootloader程序的指令。
一种可行的设计中,所述处理单元,具体用于擦除所述第二空间中的旧版本应用程序;将所述第一程序写入所述第二空间。
一种可行的设计中,所述接收单元,在所述处理单元利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还用于接收所述第二电子设备发送的新版本应用程序;所述处理单元,还用于擦除所述第二空间中的所述第一程序,利用所述新版本的Bootloader程序,将所述新版本应用程序写入所述第二空间。
一种可行的设计中,上述的装置还包括:
发送单元,所述处理单元,利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还用于判断是否成功将所述新版本的Bootloader程序写入所述第一空间;
所述发送单元,用于若所述处理单元判断出未成功将所述新版本的Bootloader程序写入所述第一空间,则向所述第二电子设备发送失败响应消息;
所述接收单元,还用于接收所述第二电子设备重新发送的所述新版本的Bootloader程序。
一种可行的设计中,所述处理单元,在所述接收单元接收所述第二电子设备发送的新版本的Bootloader程序之前,还用于判断是否成功将所述第一程序写入所述第二空间;
所述发送单元,还用于若所述处理单元判断出未成将所述第一程序写入所述第二空间,则向所述第二电子设备发送失败响应消息;
所述接收单元,还用于接收所述第二电子设备重新发送的所述第一程序。
第三方面,本发明实施例提供一种电子设备,包括处理器、非易失性存储器及存储在所述非易失性存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面或第一方面的各种可行的实现方式所述的方法。
第四方面,本发明实施例提供一种存储介质,所述存储介质中存储有指令,当其在电子设备上运行时,使得电子设备执行如上第一方面或第一方面的各种可行的实现方式所述的方法。
第五方面,本发明实施例提供一种计算机程序产品,所述计算机程序产品在电子设备上运行时,使得电子设备执行如上第一方面或第一方面的各种可行的实现方式所述的方法。
本发明实施例提供的Bootloader程序更新方法、装置、电子设备及存储介质,更新Bootloader时,第一电子设备将第二电子设备发送的第一程序写入原本用于存储应用程序的第二空间,然后接收第二电子设备发送的新版本的Bootloader程序,并利用第一程序,将第一空间中的旧版本的Bootloader程序更新为新版本的Bootloader程序,从而实现对Bootloader程序的更新。该过程中,通过利用软件方式对Bootloader程序进行更新,无需拆卸第一电子设备即可实现对Bootloader程序的更新。而且,没有额外利用第一电子设备的非易失性存储器的存储空间,第一电子设备的非易失性存储器中仅存储一个Bootloader程序,节省了非易失性存储器的空间,降低了第一电子设备的启动时间,维护成本低,提高第一电子设备升级的便利性和鲁棒性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种Bootloader程序更新方法的运行环境示意图;
图2是本发明实施例提供的一种Bootloader程序更新方法的流程图;
图3是本发明实施例提供的另一种Bootloader程序更新方法的流程图;
图4是本发明实施例提供的一种Bootloader程序更新方法中更新第一程序的示意图;
图5为本发明实施例提供的一种Bootloader程序更新装置的结构示意图;
图6为本发明实施例提供的另一种Bootloader程序更新装置的结构示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
汽车行业中,ECU需要连接许多传感器,如毫米波雷达、超声波雷达、全球定位系统(global positioning system,GPS)、惯性测量单元(inertial measurement unit,IMU)、温度传感器、电源检测电路及看门狗电路等,ECU通过控制该些设备,并根据该些设备提供的数据生成决策结果,然后基于决策结果得到控制指令。ECU的非易失性存储器的第二区间中存储该些设备对应的应用程序。随着该些设备的更新换代,需要频繁对该些设备对应的应用程序进行更新。更新过程中,利用第一空间的Bootloader程序对第二空间的应用程序进行更新。一旦Bootloader程序无法满足升级需求,则会导致无法更新应用程序的弊端,导致无法修复应用程序存在的Bug。因此,需要对Bootloader程序进行更新。
双Bootloader方法中,在ECU的非易失性存储器划分出三个空间,分别存储第一Bootloader程序、第二Bootloader程序和应用程序。通过第一Bootloader程序更新第二Bootloader程序,利用第二Bootloader程序更新应用程序。当第一Bootloader程序出现问题时,通过第二Bootloader程序更新第一Bootloader程序。
上述Bootloader程序更新的过程中,需要设置双Bootloader,Bootloader程序占用的空间较大,导致ECU启动时间长、ECU成本高,若该ECU应用于汽车,则无法满足汽车安全完整性等级(automotive safety integration level,ASIL)要求。以上问题既存在于ECU也存在于微控制单元(microcontroller unit,MCU)。
有鉴于此,本发明实施例提供一种更新Bootloader程序的方法及装置,以实现降低Bootloader占用空间、降低更新Bootloader程序的成本的目的。示例性的,可参见图1。
图1是本发明实施例提供的一种Bootloader程序更新方法的运行环境示意图。请参照图1,在车辆的电子设备的非易失性存储器上划分第一空间和第二空间,分别用于存储Bootloader程序和应用程序,应用程序例如是汽车发动机管理程序等,Bootloader程序用于更新应用程序。以下将车辆上的电子设备称之为第一电子设备,第一电子设备例如是ECU或MCU。将与第一电子设备通过CAN总线等交互,以更新第一电子设备上的Bootloader程序的电子设备称之为第二电子设备。第二电子设备上存储最新版本的Bootloader程序和最新版本的应用程序。需要更新Bootloader程序或应用程序时,通过控制器区域网络(controller area network,CAN)总线连接第一电子设备与第二电子设备。更新Bootloader程序时,第二电子设备通过CAN总线将第一程序发送给第二电子设备,并写入第二电子设备的非易失性存储器的第二空间,第一电子设备利用该第一程序接收第二电子设备通过CAN总线发送的新版本的Bootloader程序,用新版本的Bootloader程序更新第一空间中旧版本的Bootloader程序。Bootloader程序更新完毕后,第一电子设备利用新版本的Bootloader程序接收第二电子设备发送的新版本的应用程序,将第二空间的第一程序擦除,并将新版本的应用程序写入第二空间。下面,在图1所示运行环境的基础上,本发明实施例所述的Bootloader程序更新方法进行详细说明。示例性的,可参见图2。
图2是本发明实施例提供的一种Bootloader程序更新方法的流程图。本实施例适用于第一电子设备,第一电子设备的非易失性存储器上具有第一空间和第二空间,第一空间用于存储Bootloader程序,第二空间用于存储应用程序,本实施例从第一电子设备和第二电子设备交互的角度对本发明实施例所述的Bootloader程序更新方法进行详细说明,本实施例包括:
101、第一电子设备接收第二电子设备发送的第一程序。
本发明实施例中,第一程序用于更新Bootloader程序,Bootloader程序用于更新应用程序。
本步骤中,第一电子设备通过CAN总线等接收第二电子设备发送的第一程序。
102、第一电子设备将第一程序写入第二空间。
本步骤中,第一电子设备将接收到的第一程序写入非易失性存储器的第二空间。其中,非易失性存储器例如为只读存储器(read-only memory,ROM)、闪存(flash)等。
需要说明的是,由于第二空间用于存储应用程序,第二空间可能存在应用程序。若第二空间中存储有应用程序,则将第一程序写入第二空间之前,需要擦除第二空间中的应用程序。另外,由于本发明实施例中,第二空间还用于存储第一程序,而第一程序也有新旧版本的区别,因此,在将第一程序写入第二空间之前,该第二空间中很可能已经存储旧版本的第一程序,因此,需要先擦除旧版本的第一程序,然后将新版本的第一程序写入第二空间。
103、第一电子设备接收第二电子设备发送的新版本的Bootloader程序。
本步骤中,第一电子设备利用存储在第二空间的第一程序,通过CAN总线接收第二电子设备发送的新版本的Bootloader程序。
104、第一电子设备利用第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序。
本步骤中,第一电子设备利用第二空间中的第一程序,将第一空间中的旧版本的Bootloader程序更新为新版本的Bootloader程序,从而实现对Bootloader程序的更新。
本发明实施例提供的Bootloader程序更新方法,更新Bootloader时,第一电子设备将第二电子设备发送的第一程序写入原本用于存储应用程序的第二空间,然后接收第二电子设备发送的新版本的Bootloader程序,并利用第一程序,将第一空间中的旧版本的Bootloader程序更新为新版本的Bootloader程序,从而实现对Bootloader程序的更新。该过程中,通过利用软件方式对Bootloader程序进行更新,无需拆卸第一电子设备即可实现对Bootloader程序的更新。而且,没有额外利用第一电子设备的非易失性存储器的存储空间,第一电子设备的非易失性存储器中仅存储一个Bootloader程序,节省了非易失性存储器的空间,降低了第一电子设备的启动时间,维护成本低,提高第一电子设备升级的便利性和鲁棒性。
上述更新过程中,擦除了第二空间的应用程序并将第一程序写入第二空间。为了确保第一电子设备能够正常运行,需要重新将应用程序写入第二区间。
一种可行的实现方式中,第一电子设备利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还接收所述第二电子设备发送的新版本应用程序;擦除所述第二空间中的所述第一程序;利用所述新版本的Bootloader程序,将所述新版本应用程序写入所述第二空间。
示例性的,第二空间上原本存储第一电子设备运行必不可少的应用程序,由于更新Bootloader程序的需要,将第二区间中存储的应用程序被擦除并写入第一程序。因此,完成Bootloader程序的更新之后,需要将应用程序重新写入第二区间。例如,若应用程序未更新,则第二电子设备将原始版本的应用程序通过CAN总线发送给ECU,擦除第二区间中的第一程序,利用第一空间新版本的Bootloader程序将该应用程序写入第二区间;再如,若应用程序已更新,则第二电子设备将新版本的应用程序通过CAN总线发送给第一电子设备,擦除第二区间中的第一程序,并利用新版本的Bootloader程序,将新版本应用程序写入所述第二空间。
上述实施例中,第一程序用于更新Bootloader程序,Bootloader程序用于更新应用程序,而第一程序需要升级或存在漏洞时,需要对第一程序进行更新。因此,当第一程序、Bootloader程序和应用程序都需要更新时,先更新第一程序,然后更新Bootloader程序,最后更新应用程序。下面,用一个例子对第一程序、Bootloader程序和应用程序的更新过程进行详细说明。示例性的,可参见图3。
图3是本发明实施例提供的另一种Bootloader程序更新方法的流程图,本实施例是从第一电子设备的角度进行说明的,本实施例包括:
201、第一电子设备上电并初始化。
本步骤中,用户给第一电子设备上电,第一电子设备执行初始化时钟、初始化定时器等基本操作,从而完成初始化。
202、第一电子设备判断第二区间中是否存储应用程序或第一程序。
本步骤中,第一电子设备通过标识位等判断第二区间是否存储应用程序或第一程序,若第二区间是空的,没有存储任何程序,或者,若第二区间中存储旧版本的第一程序,则执行203;若第二区间中存储旧版本应用程序,则执行204;
203、第一电子设备运行所述第一空间的旧版本的Bootloader程序。
204、第一电子设备运行旧版本应用程序,然后执行步骤203。
根据上述步骤202~204可知:无论第二区间是否存在应用程序或第一程序,第一电子设备均可进入运行第一空间的旧版本的Bootloader程序状态,即第一电子设备均可启动旧版本的Bootloader程序。
205、第一电子设备接收第二电子设备发送的指令。
本步骤中,第一电子设备接收第二电子设备发送的指令。
206、第一电子设备判断所述指令指示更新所述第一空间的Bootloader程序或更新所述第二空间的应用程序,若指令指示更新所述第一程序,则执行207;若指令指示更新第二空间的应用程序,则执行步骤217。
207、第一电子设备接收第二电子设备发送的所述第一程序,并将第一程序写入第二区间。
本步骤中第一电子设备接收到第二电子设备发送的第一程序后,判断第一程序是否为最新版本的第一程序,若是,则通过旧版本的Bootloader程序将第一程序写入第二空间。
208、第一电子设备判断是否将最新版本的第一程序成功写入第二区间,若是,则执行步骤209;若写入失败则执行207。
209、第一电子设备运行第二空间的第一程序。
本步骤中,第一电子设备运行第二空间的第一程序,以启动第一程序。
210、第一电子设备判断是否接收到升级Bootloader程序的指令,若接收到更新Bootloader程序的指令,则执行步骤211;若未接收到执行更新Bootloader程序的指令,则执行209。
211、第一电子设备接收第二电子设备发送的新版本的Bootloader程序,并利用第一程序将第一空间中旧版本的Bootloader程序更新为新版本的Bootloader程序。
212、第一电子设备判断是否成功将新版本的Bootloader程序写入第一区间,若成功将新版本的Bootloader程序写入第一区间,则执行213;若未成功将新版本的Bootloader程序写入第一区间,则执行步骤211。
213、第一电子设备运行第一空间的新版本的Bootloader程序。
214、第一电子设备接收第二电子设备发送的新版本的应用程序,利用第一空间新版本的Bootloader程序将第二空间中的第一程序更新为新版本的应用程序程序。
215、第一电子设备判断是否成功将新版本的应用程序写入第二区间,若成功将新版本的应用程序写入第二区间,则执行215;若未成功将新版本的应用程序写入第二区间,则执行步骤214。
216、第一电子设备运行第二空间的新版本的应用程序。
217、第一电子设备利用旧版本的Bootloader程序更新第二区间的应用程序。
示例性的,第一电子设备接收电子设备发送的新版本的应用程序,并利用旧版本的Bootloader程序将该新版本的应用程序写入第二区间。
218、第一电子设备判断是否成功将新版本的应用程序写入第二区间,若成功将新版本的应用程序写入第二区间,则执行216;若未成功将新版本的应用程序写入第二区间,则执行步骤217。
上述图3实施例中,步骤207、步骤211和步骤214分别是对第一程序、Bootloader程序和应用程序进行升级更新,三者的更新原理是一样的。下面,对如何更新第一程序进行详细说明。示例性的,可参见图4,图4是本发明实施例提供的一种Bootloader程序更新方法中更新第一程序的示意图,本实施例包括:
301、第一电子设备接收第二电子设备发送的第一程序的版本信息。
本步骤中,第一电子设备启动第一空间旧版本的Bootloader程序并接收到更新第一程序的指令后,接收到第二电子设备发送的第一程序。
302、第一电子设备判断该版本信息指示的第一程序是否为最新版本的第一程序,若该第一程序是最新版本的第一程序,则执行303;若该第一程序不是最新版本的第一程序,则执行步骤310。
303、第一电子设备接收第二电子设备发送的擦除指令。
本步骤中,第一电子设备接收第二电子设备发送的擦除指令并擦除第二区间存储的应用程序。
304、第一电子设备判断是否成功擦除第二区间上的应用程序,若成功擦除第二区间上的应用程序,则执行步骤305;若未成功擦除第二区间上的应用程序,则执行步骤301。
本步骤中,若第一电子设备判断出成功擦除第二区间上的应用程序,则进入接收第一程序的程序块状态并进行第一程序的更新;否则,返回步骤301。可选的,第一电子设备还可以向电子设备返回擦除失败响应消息。
305、第一电子设备接收电子设备发送的第一程序。
306、第一电子设备将第一程序写入第二区间。
307、第一电子设备判断是否成功将第一程序写入第二区间,若成功将第一程序写入第二区间,则执行步骤308;若未成功将第一程序写入第二区间,则执行步骤301
308、第一电子设备判断是否将第一程序完全写入第二区间,若完全将第一程序写入第二区间,则执行309;若未完全将第一程序写入第二区间,则执行步骤305。
309、完成升级。
310、第一电子设备判断是否需要对第一程序进行升级,若需要,则执行步骤301;若不需要,则执行步骤309。
本发明实施例中,第一程序、Bootloader程序和应用程序均有失败重发机制。例如,若第一电子设备未能成功将第一程序写入第二空间,则向第二电子设备发送失败响应消息,以使得第二电子设备重新向第一电子设备发送第一程序,进而使得第一电子设备重新将第一程序写入的第二空间。再如,第一电子设备对Bootloader程序进行更新后,将应用程序重新写入第二空间的过程中,若第一电子设备未能成功将应用程序写入第二空间,则向第二电子设备发送失败响应消息,以使得第二电子设备重新向第一电子设备发送应用程序,进而使得第一电子设备重新将应用程序写入第二空间。
图5为本发明实施例提供的一种Bootloader程序更新装置的结构示意图,该Bootloader程序更新装置设置在电子设备上,该电子设备作为第一电子设备,第一电子设备的非易失性存储器上具有第一空间和第二空间,第一空间用于存储Bootloader程序,第二空间用于存储应用程序,该Bootloader程序更新装置100可以包括:
接收单元11,用于接收第二电子设备发送的第一程序;
处理单元12,用于将所述第一程序写入所述第二空间;
所述接收单元11,还用于接收所述第二电子设备发送的新版本的Bootloader程序;
所述处理单元12,还用于利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序。
一种可行的设计中,所述接收单元11,具体用于利用所述处理单元12运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序。
一种可行的设计中,所述接收单元11,在利用所述处理单元12运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序之前,还接收所述第二电子设备发送的用于指示更新所述旧版本的Bootloader程序的指令。
一种可行的设计中,所述处理单元12,具体用于擦除所述第二空间中的旧版本应用程序;将所述第一程序写入所述第二空间。
一种可行的设计中,所述接收单元11,在所述处理单元12利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还用于接收所述第二电子设备发送的新版本应用程序;所述处理单元12,还用于擦除所述第二空间中的所述第一程序,利用所述新版本的Bootloader程序,将所述新版本应用程序写入所述第二空间。
图6为本发明实施例提供的另一种Bootloader程序更新装置的结构示意图,该Bootloader程序更新装置100在上述图5的基础上,进一步的,还包括:
发送单元13,所述处理单元12,利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还用于判断是否成功将所述新版本的Bootloader程序写入所述第一空间;
所述发送单元13,用于若所述处理单元12判断出未成功将所述新版本的Bootloader程序写入所述第一空间,则向所述第二电子设备发送失败响应消息;
所述接收单元11,还用于接收所述第二电子设备重新发送的所述新版本的Bootloader程序。
一种可行的设计中,所述处理单元12,在所述接收单元11接收所述第二电子设备发送的新版本的Bootloader程序之前,还用于判断是否成功将所述第一程序写入所述第二空间;
所述发送单元13,还用于若所述处理单元12判断出未成将所述第一程序写入所述第二空间,则向所述第二电子设备发送失败响应消息;
所述接收单元11,还用于接收所述第二电子设备重新发送的所述第一程序。
图7为本发明实施例提供的一种电子设备的结构示意图。如图7所示,该电子设备作为第一电子设备,该第一电子设备200包括:
处理器21和非易失性存储器22;
所述非易失性存储器22存储计算机执行指令;
所述处理器21执行所述非易失性存储器22存储的计算机执行指令,使得所述处理器21执行如上所述的Bootloader更新方法。
处理器21的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
可选地,该第一电子设备200还包括通信部件23。其中,处理器21、存储器22以及通信部件23可以通过总线24连接。
本发明实施例还提供一种存储介质,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的Bootloader更新方法。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得电子设备执行如上述Bootloader更新方法。
在上述的实施例中,应该理解到,所描述的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个电子设备可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component,PCI)总线或扩展工业标准体系结构(extendedIndustry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本发明附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用电子设备能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于终端或服务器中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一电子设备可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种Bootloader程序更新方法,其特征在于,适用于第一电子设备,所述第一电子设备的非易失性存储器上具有第一空间和第二空间,所述第一空间用于存储Bootloader程序,所述第二空间用于存储应用程序,所述方法包括:
接收第二电子设备发送的第一程序;
将所述第一程序写入所述第二空间;
接收所述第二电子设备发送的新版本的Bootloader程序;
利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序。
2.根据权利要求1所述的方法,其特征在于,所述接收第二电子设备发送的第一程序,包括:
运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序。
3.根据权利要求2所述的方法,其特征在于,所述运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序之前,还包括:
接收所述第二电子设备发送的用于指示更新所述旧版本的Bootloader程序的指令。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述将所述第一程序写入所述第二空间,包括:
擦除所述第二空间中的旧版本应用程序;
将所述第一程序写入所述第二空间。
5.根据权利要求4所述的方法,其特征在于,所述利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还包括:
接收所述第二电子设备发送的新版本应用程序;
擦除所述第二空间中的所述第一程序;
利用所述新版本的Bootloader程序,将所述新版本应用程序写入所述第二空间。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还包括:
判断是否成功将所述新版本的Bootloader程序写入所述第一空间;
若未成功将所述新版本的Bootloader程序写入所述第一空间,则向所述第二电子设备发送失败响应消息;
接收所述第二电子设备重新发送的所述新版本的Bootloader程序。
7.根据权利要求1~5任一项所述的方法,其特征在于,所述接收所述第二电子设备发送的新版本的Bootloader程序之前,还包括:
判断是否成功将所述第一程序写入所述第二空间;
若未成功将所述第一程序写入所述第二空间,则向所述第二电子设备发送失败响应消息;
接收所述第二电子设备重新发送的所述第一程序。
8.一种Bootloader程序更新装置,其特征在于,所述Bootloader程序更新装置设置在电子设备上,所述电子设备作为第一电子设备,所述第一电子设备的非易失性存储器上具有第一空间和第二空间,所述第一空间用于存储Bootloader程序,所述第二空间用于存储应用程序,所述Bootloader程序更新装置包括:
接收单元,用于接收第二电子设备发送的第一程序;
处理单元,用于将所述第一程序写入所述第二空间;
所述接收单元,还用于接收所述第二电子设备发送的新版本的Bootloader程序;
所述处理单元,还用于利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序。
9.根据权利要求8所述的装置,其特征在于,所述接收单元,具体用于利用所述处理单元运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序。
10.根据权利要求9所述的装置,其特征在于,所述接收单元,在利用所述处理单元运行所述第一空间中旧版本的Bootloader程序以接收所述第二电子设备发送的所述第一程序之前,还接收所述第二电子设备发送的用于指示更新所述旧版本的Bootloader程序的指令。
11.根据权利要求8~10任一项所述的装置,其特征在于,所述处理单元,具体用于擦除所述第二空间中的旧版本应用程序;将所述第一程序写入所述第二空间。
12.根据权利要求11所述的装置,其特征在于,所述接收单元,在所述处理单元利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还用于接收所述第二电子设备发送的新版本应用程序;所述处理单元,还用于擦除所述第二空间中的所述第一程序,利用所述新版本的Bootloader程序,将所述新版本应用程序写入所述第二空间。
13.根据权利要求8~12任一项所述的装置,其特征在于,还包括:发送单元,所述处理单元,利用所述第一程序,将所述第一空间中旧版本的Bootloader程序更新为所述新版本的Bootloader程序之后,还用于判断是否成功将所述新版本的Bootloader程序写入所述第一空间;
所述发送单元,用于若所述处理单元判断出未成功将所述新版本的Bootloader程序写入所述第一空间,则向所述第二电子设备发送失败响应消息;
所述接收单元,还用于接收所述第二电子设备重新发送的所述新版本的Bootloader程序。
14.根据权利要求8~12任一项所述的装置,其特征在于,还包括:发送单元,所述处理单元,在所述接收单元接收所述第二电子设备发送的新版本的Bootloader程序之前,还用于判断是否成功将所述第一程序写入所述第二空间;
所述发送单元,还用于若所述处理单元判断出未成将所述第一程序写入所述第二空间,则向所述第二电子设备发送失败响应消息;
所述接收单元,还用于接收所述第二电子设备重新发送的所述第一程序。
15.一种电子设备,包括处理器、非易失性存储器及存储在所述非易失性存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上述权利要求1-7任一项所述的方法。
16.一种存储介质,其特征在于,所述存储介质中存储有指令,当其在电子设备上运行时,使得电子设备执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811613635.3A CN109857426A (zh) | 2018-12-27 | 2018-12-27 | Bootloader程序更新方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811613635.3A CN109857426A (zh) | 2018-12-27 | 2018-12-27 | Bootloader程序更新方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109857426A true CN109857426A (zh) | 2019-06-07 |
Family
ID=66892694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811613635.3A Pending CN109857426A (zh) | 2018-12-27 | 2018-12-27 | Bootloader程序更新方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857426A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209420A (zh) * | 2019-08-01 | 2019-09-06 | 潍柴动力股份有限公司 | 一种更新引导加载程序的方法及装置 |
CN111273928A (zh) * | 2019-09-10 | 2020-06-12 | 深圳市汇泰科电子有限公司 | 一种自升级的bootloader设计方法 |
CN111796848A (zh) * | 2020-07-08 | 2020-10-20 | 中国第一汽车股份有限公司 | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 |
CN112506535A (zh) * | 2020-05-22 | 2021-03-16 | 上海擎度汽车科技有限公司 | 一种汽车ECU控制器更新升级Bootloader软件的方法 |
CN114253567A (zh) * | 2020-09-21 | 2022-03-29 | 北京海博思创科技股份有限公司 | 程序更新方法、装置和设备 |
WO2022188690A1 (zh) * | 2021-03-08 | 2022-09-15 | 华为技术有限公司 | 升级电子设备的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110208956A1 (en) * | 2008-08-20 | 2011-08-25 | Markus Fislage | Control device for a vehicle and method for a data update for a control device for a vehicle |
CN103744712A (zh) * | 2014-01-28 | 2014-04-23 | 北京经纬恒润科技有限公司 | 一种应用程序的更新方法及装置 |
CN104360877A (zh) * | 2014-10-24 | 2015-02-18 | 同济大学 | 基于Bootloader自更新的ECU固件更新方法 |
CN105677388A (zh) * | 2015-12-31 | 2016-06-15 | 清华大学苏州汽车研究院(吴江) | 电动汽车电机控制器的固件更新方法 |
CN106250196A (zh) * | 2016-08-12 | 2016-12-21 | 上海金脉电子科技有限公司 | 通过can通讯更新车载启动加载程序的方法 |
CN107608702A (zh) * | 2017-10-25 | 2018-01-19 | 迈普通信技术股份有限公司 | Bootloader程序模块更新方法及装置 |
-
2018
- 2018-12-27 CN CN201811613635.3A patent/CN109857426A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110208956A1 (en) * | 2008-08-20 | 2011-08-25 | Markus Fislage | Control device for a vehicle and method for a data update for a control device for a vehicle |
CN103744712A (zh) * | 2014-01-28 | 2014-04-23 | 北京经纬恒润科技有限公司 | 一种应用程序的更新方法及装置 |
CN104360877A (zh) * | 2014-10-24 | 2015-02-18 | 同济大学 | 基于Bootloader自更新的ECU固件更新方法 |
CN105677388A (zh) * | 2015-12-31 | 2016-06-15 | 清华大学苏州汽车研究院(吴江) | 电动汽车电机控制器的固件更新方法 |
CN106250196A (zh) * | 2016-08-12 | 2016-12-21 | 上海金脉电子科技有限公司 | 通过can通讯更新车载启动加载程序的方法 |
CN107608702A (zh) * | 2017-10-25 | 2018-01-19 | 迈普通信技术股份有限公司 | Bootloader程序模块更新方法及装置 |
Non-Patent Citations (1)
Title |
---|
李英等: "汽车电子控制单元Bootloader刷新功能测试方法", 《汽车电器》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209420A (zh) * | 2019-08-01 | 2019-09-06 | 潍柴动力股份有限公司 | 一种更新引导加载程序的方法及装置 |
CN111273928A (zh) * | 2019-09-10 | 2020-06-12 | 深圳市汇泰科电子有限公司 | 一种自升级的bootloader设计方法 |
CN111273928B (zh) * | 2019-09-10 | 2024-02-27 | 深圳市汇泰科电子有限公司 | 一种自升级的bootloader设计方法 |
CN112506535A (zh) * | 2020-05-22 | 2021-03-16 | 上海擎度汽车科技有限公司 | 一种汽车ECU控制器更新升级Bootloader软件的方法 |
CN112506535B (zh) * | 2020-05-22 | 2023-06-27 | 上海擎度汽车科技有限公司 | 一种汽车ECU控制器更新升级Bootloader软件的方法 |
CN111796848A (zh) * | 2020-07-08 | 2020-10-20 | 中国第一汽车股份有限公司 | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 |
WO2022007656A1 (zh) * | 2020-07-08 | 2022-01-13 | 中国第一汽车股份有限公司 | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 |
CN114253567A (zh) * | 2020-09-21 | 2022-03-29 | 北京海博思创科技股份有限公司 | 程序更新方法、装置和设备 |
WO2022188690A1 (zh) * | 2021-03-08 | 2022-09-15 | 华为技术有限公司 | 升级电子设备的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857426A (zh) | Bootloader程序更新方法、装置、电子设备及存储介质 | |
CN101650662B (zh) | 一种嵌入式系统的存储器件的固件启动及升级方法 | |
JP6390644B2 (ja) | プログラム更新システム、プログラム更新方法及びコンピュータプログラム | |
CN102270144B (zh) | 嵌入式网络设备及其更新固件的方法 | |
CN109032632B (zh) | 一种fota升级方法、无线通信终端及存储介质 | |
JP7280412B2 (ja) | ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法 | |
CN110244958B (zh) | 用于更新车辆的标定数据的方法和装置 | |
CN107239411B (zh) | 一种车载控制器内存管理方法及系统 | |
US8036786B2 (en) | On-vehicle control apparatus | |
US20150370653A1 (en) | Replacement of a corrupt driver variable record | |
CN103365696A (zh) | Bios镜像文件获取方法及装置 | |
CN110809755A (zh) | 电子控制系统 | |
CN108196870A (zh) | 升级方法及装置 | |
CN111045712A (zh) | 一种具有备份功能的单系统升级方法及系统 | |
CN103744712A (zh) | 一种应用程序的更新方法及装置 | |
CN110402428B (zh) | 车载控制装置、及程序更新软件 | |
CN113341924A (zh) | 一种ecu下电方法、装置、设备及存储介质 | |
CN106095474A (zh) | 用于更新运输工具中的软件的方法和装置 | |
US11449329B2 (en) | Vehicle control device and program update system | |
CN111026417A (zh) | 一种嵌入式设备的升级方法及嵌入式设备 | |
CN114064095A (zh) | 车载软件的升级方法、车载控制器、车辆及存储介质 | |
CN110688135A (zh) | 一种控制器的程序刷写方法、装置及介质 | |
CN112860595B (zh) | Pci设备或pcie设备、数据存取方法及相关组件 | |
CN109901117B (zh) | 一种雷达重启方法及装置 | |
CN111475191A (zh) | 基于多核技术的汽车控制器软件升级系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |
|
RJ01 | Rejection of invention patent application after publication |