CN111475179B - 一种软件在线刷写方法、装置、电子控制单元及上位机 - Google Patents
一种软件在线刷写方法、装置、电子控制单元及上位机 Download PDFInfo
- Publication number
- CN111475179B CN111475179B CN201910063264.4A CN201910063264A CN111475179B CN 111475179 B CN111475179 B CN 111475179B CN 201910063264 A CN201910063264 A CN 201910063264A CN 111475179 B CN111475179 B CN 111475179B
- Authority
- CN
- China
- Prior art keywords
- boot loader
- control unit
- electronic control
- instruction
- bootloader
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种软件在线刷写方法、装置、电子控制单元及上位机,涉及汽车技术领域,所述方法包括:在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域;运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令。本发明的方案实现了无需拆卸电子控制单元的壳体即可实现对引导加载程序的在线刷写与升级,提高了刷写和升级效率以及灵活性。
Description
技术领域
本发明属于汽车技术领域,尤其是涉及一种软件在线刷写方法、装置、电子控制单元及上位机。
背景技术
一般来说,电子控制单元(Electronic Control Unit,简称:ECU)中的软件部分由引导加载程序(BootLoader)和应用程序(Application,简称:APP)构成,ECU的全部控制功能由APP实现,BootLoader用于支持在线升级APP,ECU的正常工作期间,执行App,只用当ECU的存储空间上没有APP或正常运行的APP需要更新版本,BootLoader才被激活并执行,这种方式可满足在线升级APP的需求,实际应用中,大多数情况下都是APP需要升级,而BootLoader当作一个固件固化在ECU当中,在某些特殊情况下需要升级BootLoader时,就会相当复杂,例如在电池管理系统中,发现BootLoader在某种情况下出现失效,就需要把电池包拆开,取出ECU开壳进行烧写,如果存在批量问题,将会费时费力。
发明内容
本发明实施例的目的在于提供一种软件在线刷写方法、装置、电子控制单元和上位机,从而实现了电子控制单元中的引导加载程序的在线刷写与升级,提高了刷写和升级效率及灵活性。
为了实现上述目的,本发明提供了一种软件在线刷写方法,应用于电子控制单元,包括:
在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域;
运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令。
其中,在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域的步骤包括:
接收所述第二引导程序的代码;
通过当前运行的所述第一引导加载程序,将所述第二引导加载程序刷写至非可刷新区域。
其中,在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域的步骤之前,所述方法还包括:
根据所述上位机发送的软复位控制指令进行软复位;
当软复位成功后,若接收到所述第一引导加载程序,则将所述第一引导加载程序刷写至可刷新区域;
运行所述第一引导加载程序,并向所述上位机发送表征第一引导加载程序刷写完成的指令。
其中,根据所述上位机发送的软复位控制指令进行软复位的步骤包括:
接收所述软复位控制指令;
在接收到所述软复位控制指令后,若确定当前运行的程序为第一应用程序,则停止运行所述第一应用程序,并运行当前存储的第三引导加载程序;
若确定当前运行的程序为所述第三引导加载程序,则向所述上位机发送表征软复位成功的指令。
其中,当软复位成功后,若接收到所述第一引导加载程序,则将所述第一引导加载程序刷写至可刷新区域的步骤包括:
接收所述第一引导加载程序;
通过当前运行的所述第三引导加载程序,将所述第一引导加载程序刷写至可刷新区域。
其中,运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令的步骤之后,所述方法还包括:
接收所述上位机发送的第二应用程序的代码;
通过当前运行的所述第二引导加载程序,将所述第二应用程序的代码刷写至所述可刷新区域;
运行所述第二应用程序的代码。
本发明实施例还提供一种软件在线刷写方法,应用于上位机,包括:
向电子控制单元发送第二引导加载程序。
其中,向电子控制单元发送第二引导加载程序的步骤之前,所述方法还包括:
向所述电子控制单元发送软复位控制指令;
接收所述电子控制单元发送的表征软复位成功的指令;
在接收到所述表征软复位成功的指令后,向所述电子控制单元发送第一引导加载程序;
接收所述电子控制单元发送的表征第一引导加载程序刷写完成的指令。
其中,向电子控制单元发送第二引导加载程序的步骤之后,所述方法还包括:
接收所述电子控制单元发送的表征第二引导加载程序刷写完成的指令;
在接收到所述表征第二引导加载程序刷写完成的指令后,向所述电子控制单元发送应用程序的代码。
本发明实施例还提供一种软件在线刷写装置,应用于电子控制单元,包括:
第一刷写模块,用于在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域;
第一运行模块,用于运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令。
其中,所述第一刷写模块包括:
第一接收子模块,用于接收所述第二引导程序的代码;
第一刷写子模块,用于通过当前运行的所述第一引导加载程序,将所述第二引导加载程序刷写至非可刷新区域。
其中,所述装置还包括:
控制模块,用于根据所述上位机发送的软复位控制指令进行软复位;
第二刷写模块,用于当软复位成功后,若接收到所述第一引导加载程序,则将所述第一引导加载程序刷写至可刷新区域;
第二运行模块,用于运行所述第一引导加载程序,并向所述上位机发送表征第一引导加载程序刷写完成的指令。
其中,所述控制模块包括:
第二接收子模块,用于接收所述软复位控制指令;
第一运行子模块,用于在接收到所述软复位控制指令后,若确定当前运行的程序为第一应用程序,则停止运行所述第一应用程序,并运行当前存储的第三引导加载程序;
发送子模块,用于若确定当前运行的程序为所述第三引导加载程序,则向所述上位机发送表征软复位成功的指令。
其中,所述第二刷写模块包括:
第三接收子模块,用于接收所述第一引导加载程序;
第三刷写子模块,用于通过当前运行的所述第三引导加载程序,将所述第一引导加载程序刷写至可刷新区域。
其中,所述装置还包括:
接收模块,用于接收所述上位机发送的第二应用程序的代码;
第三刷写模块,用于通过当前运行的所述第二引导加载程序,将所述第二应用程序的代码刷写至所述可刷新区域;
第三运行模块,用于运行所述第二应用程序的代码。
本发明实施例还提供一种软件在线刷写装置,应用于上位机,包括:
第一发送模块,用于向电子控制单元发送第二引导加载程序。
其中,所述装置还包括:
第二发送模块,用于向所述电子控制单元发送软复位控制指令;
第一接收模块,用于接收所述电子控制单元发送的表征软复位成功的指令;
第三发送模块,用于在接收到所述表征软复位成功的指令后,向所述电子控制单元发送第一引导加载程序;
第二接收模块,用于接收所述电子控制单元发送的表征第一引导加载程序刷写完成的指令。
其中,所述装置还包括:
第三接收模块,用于接收所述电子控制单元发送的表征第二引导加载程序刷写完成的指令;
第四发送模块,用于在接收到所述表征第二引导加载程序刷写完成的指令后,向所述电子控制单元发送应用程序的代码。
本发明实施例还提供一种电子控制单元,包括如上所述的应用于电子控制单元的软件在线刷写装置。
本发明实施例还提供一种上位机,包括如上所述的应用于上位机的软件在线刷写装置。
本发明实施例还提供一种电子控制单元,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上应用于电子控制单元的软件在线刷写方法。
本发明实施例还提供一种上位机,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上应用于上位机的软件在线刷写方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上应用于电子控制单元的软件在线刷写方法或应用于上位机的软件在线刷写方法。
本发明的上述技术方案至少具有如下有益效果:
本发明实施例通过在电子控制单元当前运行的程序为第一引导加载程序时,通过所述第一引导加载程序将接收到的上位机发送的第二引导程序的代码刷写至所述电子控制单元的非可刷新区域,并运行所述第二引导加载程序,同时向所述上位机发送表征第二引导加载程序刷写完成的指令,实现了对引导加载程序的在线刷写与升级,提高了刷写和升级的效率及便利性。
附图说明
图1为本发明实施例应用于电子控制单元的软件在线刷写方法的基本步骤示意图;
图2为本发明实施例的电子控制单元的空间划分的示意图。
附图标记说明:
2-电子控制单元,201-随机存储器区域,202-可刷新区域,203-非可刷新区域。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明实施例针对现有技术中电子控制单元的引导加载程序升级时,需要对电子控制单元进行开壳处理,取出电子控制单元后再进行代码的刷写,导致引导加载程序升级的过程费时费力的问题,提供一种软件在线刷写方法、装置、电子控制单元和上位机,实现了对引导加载程序的在线刷写和升级,提高了升刷写和升级的效率及便利性。
这里,首先说明本发明实施例中的电子控制单元的空间划分的示意图,如图2所示,所述电子控制单元2的空间被划分为三部分,分别为:APP和BootLoader均可使用的随机存储器区域201,所述随机存储器区域201用于操作并修改所述APP和所述BootLoader中的数据,所述数据可以为两者通信过程中产生的数据;可刷新区域202,用于存储APP的代码和第一引导加载程序;以及,非可刷新区域203,用于存储第二引导加载程序和第三引导加载程序。其中,所述第二引导加载程序为升级后的引导加载程序,所述第三引导加载程序为升级前的引导加载程序,所述第一引导加载程序为用于升级所述第三引导加载程序。
如图1所示,本发明的一实施例提供了一种软件在线刷写方法,应用于电子控制单元,所述方法包括:
步骤S101,在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域;
本步骤中,所述电子控制单元在确定当前运行的程序为用于升级引导加载程序的第一引导加载程序时,将接收到的上位机发送的第二引导加载程序刷写至非可刷新区域203,从而实现利用第二引导加载程序覆盖当前存储的第三引导加载程序,完成对第三引导加载程序的升级。
步骤S102,运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令。
本步骤中,在完成对所述第二引导加载程序的刷写之后,通过运行所述第二引导加载程序,实现了对刷写的代码的正确性进行验证,若能够正常运行所述第二引导加载程序,则确定刷写代码成功,从而向所述上位机发送表征第二引导加载程序刷写完成的指令,告知所述上位机。
本发明实施例的软件在线刷写方法,通过在所述电子控制单元当前运行的程序为第一引导加载程序时,将接收到的第二引导加载程序刷写至非可刷新区域,实现对所述电子控制单元当前存储的引导加载程序的在线升级,避免通过对电子控制单元开壳取出控制器,然后再进行刷写的过程,提高了升级效率和便利性。
具体的,步骤S101,在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域,包括:
接收所述第二引导程序的代码;
通过当前运行的所述第一引导加载程序,将所述第二引导加载程序刷写至非可刷新区域。
本步骤中,所述第一引导加载程序是为了实现对所述电子控制单元存储的引导加载程序升级而开发的程序,所述第一引导加载程序的功能类似于第二引导加载程序或第三引导加载程序,只是存储和运行区域不同。其中,所述第一引导加载程序存储在所述可刷新区域202,使得所述第一引导加载程序和所述APP存储的空间完全相同,从而不需占用额外的空间,降低了对电子控制单元2的存储区域的大小的要求。
具体的,在步骤S101在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域之前,所述方法还包括:
根据所述上位机发送的软复位控制指令进行软复位;
当软复位成功后,若接收到所述第一引导加载程序,则将所述第一引导加载程序刷写至可刷新区域;
运行所述第一引导加载程序,并向所述上位机发送表征第一引导加载程序刷写完成的指令。
众所周知,一般来说,电子控制单元2中的软件部分由引导加载程序和应用程序构成,所述电子控制单元2的全部控制功能由应用程序实现,引导加载程序用于支持应用程序的在线升级,在所述电子控制单元2正常工作期间,执行的是应用程序。因此,本发明实施例执行过程中,在刷写所述第二引导加载程序之前,需确保当前所述电子控制单元2运行的是用于刷写所述第二引导加载程序的所述第一引导加载程序。为了实现这一目的,在所述步骤S101之前,所述上位机会首先向所述电子控制单元2发送一软复位控制指令,当所述电子控制单元2接收到所述软复位控制指令之后,会进行软复位;在软复位成功后,则会将所述上位机发送的第一引导加载程序刷写至所述可刷新区域202,由所述第一引导加载程序覆盖所述可刷新区域202中当前存储的应用程序的代码;并运行所述第一引导加载程序,同时向所述上位机反馈第一引导加载程序刷写完成的指令,便于所述上位机发送下一指令信息。
更具体的,根据所述上位机发送的软复位控制指令进行软复位的步骤包括:
接收所述软复位控制指令;在接收到所述软复位控制指令后,若确定当前运行的程序为第一应用程序,则停止运行所述第一应用程序,并运行当前存储的第三引导加载程序;若确定当前运行的程序为所述第三引导加载程序,则向所述上位机发送表征软复位成功的指令。
由于所述电子控制单元2在运行过程中,会运行当前存储的引导加载程序或应用程序,且只有当前运行的程序为引导加载程序才能进行引导加载程序的刷写与升级;因此,在本步骤中,若所述电子控制单元2接收到所述上位机发送的软复位控制指令,则所述上位机首先判断其当前运行的程序是否为第一应用程序,若是,则停止运行所述第一应用程序,控制当前存储的第三引导加载程序运行,并向所述上位机发送表征软复位成功的指令;若不是,则直接向所述上位机发送表征软复位成功的指令。
更具体的,当软复位成功后,若接收到所述第一引导加载程序,则将所述第一引导加载程序刷写至可刷新区域的步骤包括:
接收所述第一引导加载程序;通过当前运行的所述第三引导加载程序,将所述第一引导加载程序刷写至可刷新区域。
进一步的,运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令的步骤之后,所述方法还包括:
接收所述上位机发送的第二应用程序的代码;通过当前运行的所述第二引导加载程序,将所述第二应用程序的代码刷写至所述可刷新区域;运行所述第二应用程序的代码。
为了确保升级后的引导加载程序能够正常运行,且升级后的引导加载程序能够实现对应用程序的升级,本发明实施例在向所述上位机发送表征第二引导加载程序刷写完成的指令后,还会利用所述第二应用程序对所述上位机发送的第二应用程序进行刷写,从而完成整个刷写过程。
本发明实施的软件在线刷写方法的一个具体实现方式为:首先,电子控制单元接收所述上位机发送的软复位控制指令;其次,根据所述软复位控制指令进行软复位,使所述电子控制单元运行当前存储的第三引导加载程序;然后,接收所述上位机发送的第一引导加载程序,通过所述第三引导加载程序将所述第一引导加载程序刷写至可刷新区域202,运行所述第一引导加载程序,并向所述上位机发送表征第一引导加载程序刷写完成的指令;然后,接收所述上位机发送的第二引导加载程序,通过当前运行的搜书第一引导加载程序,将所述第二引导加载程序刷写至非可刷新区域203,运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令;最后,接收所述上位机发送的第二应用程序的代码,通过所述第二引导加载程序将所述第二应用程序的代码刷写至所述可刷新区域202,从而覆盖所述第一引导加载程序,并运行所述第二应用程序。
本发明实施例采用上述步骤,实现了在线对电子控制单元中的引导加载程序的升级,避免了对所述电子控制单元的开壳操作,提高了刷写效率与刷写的便利性;通过将所述第一应用程序的代码和所述第二应用程序的代码存储在相同的区域,在完成引导加载程序的升级后,由所述第二应用程序的代码覆盖所述第一应用程序的代码,一方面减少了升级所述引导加载程序过程中占用额外的空间,降低了对空间大小的需求,另一方面防止程序被误刷写。
本发明的一实施例提供了一种软件在线刷写方法,应用于上位机,包括:
向电子控制单元发送第二引导加载程序。
本步骤中,所述第二引导加载程序为所述电子控制单元升级后的引导加载程序,当所述电子控制单元需要升级当前存储的引导加载程序时,所述上位机则会将所述第二引导加载程序发送至所述电子控制单元。
进一步的,向电子控制单元发送第二引导加载程序的步骤之前,所述方法还包括:
向所述电子控制单元发送软复位控制指令;接收所述电子控制单元发送的表征软复位成功的指令;在接收到所述表征软复位成功的指令后,向所述电子控制单元发送第一引导加载程序;接收所述电子控制单元发送的表征第一引导加载程序刷写完成的指令。
在本发明实施例中,一方面,所述电子控制单元的全部控制功能由应用程序实现,因此,在所述电子控制单元正常运行过程中,一般运行的程序为当前存储的应用程序,所以,在进行引导加载程序的升级前,需由所述上位机向所述电子控制单元发送软复位控制指令,终止应用程序的运行,并使当前存储的第三引导加载程序运行;另一方面,由于所述电子控制单元当前存储的引导加载程序的升级需要使用专门开发的程序进行升级,因此,所述上位机在接收到所述电子控制单元发送的表征软复位成功的指令后,需向所述电子控制单元发送用于升级当前存储的引导加载程序的第一引导加载程序,并接收所述电子控制单元发送的表征第一引导加载程序刷写完成的指令。
进一步的,向电子控制单元发送第二引导加载程序的步骤之后,所述方法还包括:
接收所述电子控制单元发送的表征第二引导加载程序刷写完成的指令;在接收到所述表征第二引导加载程序刷写完成的指令后,向所述电子控制单元发送应用程序的代码。
由于所述第二引导加载程序为升级后的引导加载程序,用于升级所述电子控制单元中的应用程序;所述电子控制单元的刷新区域202当前存储的代码为所述第一引导加载程序;且所述电子控制单元中的全部控制功能均是由应用程序实现,因此,所述上位机在接收到所述电子控制单元发送的表征第二引导加载程序刷写完成的指令后,还需向所述电子控制单元发送应用程序的代码,使所述电子控制单元将所述应用程序的代码刷写至所述刷新区域202,从而完成整个软件升级的刷写过程。
本发明实施例的软件在线刷写方法,所述上位机与所述电子控制单元进行通信连接,通过向所述电子控制单元发送指令,使所述电子控制单元根据接收到的指令进行软件的刷写,实现引导加载程序的在线升级,避免了对所述电子控制单元的开壳操作,提高了刷写效率和刷写的便利性。
本发明的一实施例提供了一种软件在线刷写装置,应用于电子控制单元,包括:
第一刷写模块,用于在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域;
第一运行模块,用于运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令。
本发明实施例的软件在线刷写装置,所述第一刷写模块包括:
第一接收子模块,用于接收所述第二引导程序的代码;
第一刷写子模块,用于通过当前运行的所述第一引导加载程序,将所述第二引导加载程序刷写至非可刷新区域。
本发明实施例的软件在线刷写装置,还包括:
控制模块,用于根据所述上位机发送的软复位控制指令进行软复位;
第二刷写模块,用于当软复位成功后,若接收到所述第一引导加载程序,则将所述第一引导加载程序刷写至可刷新区域;
第二运行模块,用于运行所述第一引导加载程序,并向所述上位机发送表征第一引导加载程序刷写完成的指令。
本发明实施例的软件在线刷写装置,所述控制模块包括:
第二接收子模块,用于接收所述软复位控制指令;
第一运行子模块,用于在接收到所述软复位控制指令后,若确定当前运行的程序为第一应用程序,则停止运行所述第一应用程序,并运行当前存储的第三引导加载程序;
发送子模块,用于若确定当前运行的程序为所述第三引导加载程序,则向所述上位机发送表征软复位成功的指令。
本发明实施例的软件在线刷写装置,所述第二刷写模块包括:
第三接收子模块,用于接收所述第一引导加载程序;
第三刷写子模块,用于通过当前运行的所述第三引导加载程序,将所述第一引导加载程序刷写至可刷新区域。
本发明实施例的在线刷写装置,还包括:
接收模块,用于接收所述上位机发送的第二应用程序的代码;
第三刷写模块,用于通过当前运行的所述第二引导加载程序,将所述第二应用程序的代码刷写至所述可刷新区域;
第三运行模块,用于运行所述第二应用程序的代码。
本发明实施例的软件在线刷写装置,通过根据上位机发送的指令实现了对电子控制单元中的引导加载程序的刷写与升级,避免了现有技术中通过对所述电子控制单元进行开壳处理后,再对程序进行刷写与升级,提高了软件刷写效率和软件刷写的便利性。
本发明实施例还提供一种电子控制单元,包括如上所述的应用于电子控制单元的软件在线刷写装置。
本发明实施例还提供一种电子控制单元,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的应用于电子控制单元的软件在线刷写方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明的一实施例提供了一种软件在线刷写装置,应用于上位机,包括:
第一发送模块,用于向电子控制单元发送第二引导加载程序。
本发明实施例的在线刷写装置,还包括:
第二发送模块,用于向所述电子控制单元发送软复位控制指令;
第一接收模块,用于接收所述电子控制单元发送的表征软复位成功的指令;
第三发送模块,用于在接收到所述表征软复位成功的指令后,向所述电子控制单元发送第一引导加载程序;
第二接收模块,用于接收所述电子控制单元发送的表征第一引导加载程序刷写完成的指令。
本发明实施例的软件在线刷写装置,还包括:
第三接收模块,用于接收所述电子控制单元发送的表征第二引导加载程序刷写完成的指令;
第四发送模块,用于在接收到所述表征第二引导加载程序刷写完成的指令后,向所述电子控制单元发送应用程序的代码。
本发明实施例的软件在线刷写装置,通过上位机与电子控制单元的通信连接,实现了电子控制单元的引导加载程序的在线刷写与升级,避免了现有技术中,在对电子控制单元的引导加载程序升级时,需首先对所述电子控制单元的开壳操作的过程,提高了刷写效率和刷写的便利性。
本发明实施例还提供一种上位机,包括如上所述的应用于上位机的软件在线刷写装置。
本发明实施例还提供一种上位机,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的应用于上位机的软件在线刷写方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的应用于电子控制单元的软件在线刷写方法实施例的各个过程或如上所述的应用于上位机的软件在线刷写方法实施例的各个过程,为避免重复,这里不再赘述。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种软件在线刷写方法,应用于电子控制单元,其特征在于,包括:在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域;
运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令;
在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域的步骤之前,所述方法还包括:
根据所述上位机发送的软复位控制指令进行软复位;
当软复位成功后,若接收到所述第一引导加载程序,则将所述第一引导加载程序刷写至可刷新区域;
运行所述第一引导加载程序,并向所述上位机发送表征第一引导加载程序刷写完成的指令;
根据所述上位机发送的软复位控制指令进行软复位的步骤包括:
接收所述软复位控制指令;
在接收到所述软复位控制指令后,若确定当前运行的程序为第一应用程序,则停止运行所述第一应用程序,并运行当前存储的第三引导加载程序;
若确定当前运行的程序为所述第三引导加载程序,则向所述上位机发送表征软复位成功的指令;
当软复位成功后,若接收到所述第一引导加载程序,则将所述第一引导加载程序刷写至可刷新区域的步骤包括:
接收所述第一引导加载程序;
通过当前运行的所述第三引导加载程序,将所述第一引导加载程序刷写至可刷新区域;
其中,所述电子控制单元包括:可刷新区域,用于存储APP的代码和第一引导加载程序;非可刷新区域,用于存储第二引导加载程序和第三引导加载程序;所述第二引导加载程序为升级后的引导加载程序,所述第三引导加载程序为升级前的引导加载程序,所述第一引导加载程序为用于升级所述第三引导加载程序。
2.根据权利要求1所述的软件在线刷写方法,其特征在于,在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域的步骤包括:
接收所述第二引导加载程序;
通过当前运行的所述第一引导加载程序,将所述第二引导加载程序刷写至非可刷新区域。
3.根据权利要求1所述的软件在线刷写方法,其特征在于,运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令的步骤之后,所述方法还包括:
接收所述上位机发送的第二应用程序;
通过当前运行的所述第二引导加载程序,将所述第二应用程序的代码刷写至所述可刷新区域;
运行所述第二应用程序。
4.一种软件在线刷写方法,应用于上位机,其特征在于,包括:
向电子控制单元发送第二引导加载程序;向电子控制单元发送第二引导加载程序的步骤之前,所述方法还包括:
向所述电子控制单元发送软复位控制指令;
接收所述电子控制单元发送的表征软复位成功的指令;
在接收到所述表征软复位成功的指令后,向所述电子控制单元发送第一引导加载程序;
接收所述电子控制单元发送的表征第一引导加载程序刷写完成的指令
其中,所述电子控制单元包括:可刷新区域,用于存储APP的代码和第一引导加载程序;非可刷新区域,用于存储第二引导加载程序和第三引导加载程序;所述第二引导加载程序为升级后的引导加载程序,所述第三引导加载程序为升级前的引导加载程序,所述第一引导加载程序为用于升级所述第三引导加载程序。
5.根据权利要求4所述的软件在线刷写方法,其特征在于,向电子控制单元发送第二引导加载程序的步骤之后,所述方法还包括:
接收所述电子控制单元发送的表征第二引导加载程序刷写完成的指令;
在接收到所述表征第二引导加载程序刷写完成的指令后,向所述电子控制单元发送应用程序。
6.一种软件在线刷写装置,应用于电子控制单元,其特征在于,包括:
第一刷写模块,用于在当前运行的程序为第一引导加载程序时,若接收到上位机发送的第二引导加载程序,则将所述第二引导加载程序刷写至非可刷新区域;
第一运行模块,用于运行所述第二引导加载程序,并向所述上位机发送表征第二引导加载程序刷写完成的指令
还包括:
控制模块,用于根据所述上位机发送的软复位控制指令进行软复位;
第二刷写模块,用于当软复位成功后,若接收到所述第一引导加载程序,则将所述第一引导加载程序刷写至可刷新区域;
第二运行模块,用于运行所述第一引导加载程序,并向所述上位机发送表征第一引导加载程序刷写完成的指令;
第二接收子模块,用于接收所述软复位控制指令;
第一运行子模块,用于在接收到所述软复位控制指令后,若确定当前运行的程序为第一应用程序,则停止运行所述第一应用程序,并运行当前存储的第三引导加载程序;
发送子模块,用于若确定当前运行的程序为所述第三引导加载程序,则向所述上位机发送表征软复位成功的指令;
第三接收子模块,用于接收所述第一引导加载程序;
第三刷写子模块,用于通过当前运行的所述第三引导加载程序,将所述第一引导加载程序刷写至可刷新区域;
其中,所述电子控制单元包括:可刷新区域,用于存储APP的代码和第一引导加载程序;非可刷新区域,用于存储第二引导加载程序和第三引导加载程序;所述第二引导加载程序为升级后的引导加载程序,所述第三引导加载程序为升级前的引导加载程序,所述第一引导加载程序为用于升级所述第三引导加载程序。
7.一种软件在线刷写装置,应用于上位机,其特征在于,包括:
第一发送模块,用于向电子控制单元发送第二引导加载程序;
还包括:
第二发送模块,用于向所述电子控制单元发送软复位控制指令;
第一接收模块,用于接收所述电子控制单元发送的表征软复位成功的指令;
第三发送模块,用于在接收到所述表征软复位成功的指令后,向所述电子控制单元发送第一引导加载程序;
第二接收模块,用于接收所述电子控制单元发送的表征第一引导加载程序刷写完成的指令
其中,所述电子控制单元包括:可刷新区域,用于存储APP的代码和第一引导加载程序;非可刷新区域,用于存储第二引导加载程序和第三引导加载程序;所述第二引导加载程序为升级后的引导加载程序,所述第三引导加载程序为升级前的引导加载程序,所述第一引导加载程序为用于升级所述第三引导加载程序。
8.一种电子控制单元,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至3任一项所述的软件在线刷写方法。
9.一种上位机,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求4至5任一项所述的软件在线刷写方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3或如权利要求4至5任一项所述的软件在线刷写方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910063264.4A CN111475179B (zh) | 2019-01-23 | 2019-01-23 | 一种软件在线刷写方法、装置、电子控制单元及上位机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910063264.4A CN111475179B (zh) | 2019-01-23 | 2019-01-23 | 一种软件在线刷写方法、装置、电子控制单元及上位机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475179A CN111475179A (zh) | 2020-07-31 |
CN111475179B true CN111475179B (zh) | 2023-10-03 |
Family
ID=71743759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910063264.4A Active CN111475179B (zh) | 2019-01-23 | 2019-01-23 | 一种软件在线刷写方法、装置、电子控制单元及上位机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475179B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855151A (zh) * | 2012-08-21 | 2013-01-02 | 武汉电信器件有限公司 | 不打断业务的光模块固件在应用升级方法 |
CN103677943A (zh) * | 2013-12-27 | 2014-03-26 | 浙江众邦机电科技有限公司 | 一种缝纫机控制器软件升级方法 |
CN103995712A (zh) * | 2014-04-16 | 2014-08-20 | 潍柴动力股份有限公司 | 一种自动更新的bootloader装置及更新方法 |
CN104281469A (zh) * | 2014-08-26 | 2015-01-14 | 东风电子科技股份有限公司 | 实现电子控制单元程序刷写的方法及系统 |
CN105608370A (zh) * | 2015-12-30 | 2016-05-25 | 科力远混合动力技术有限公司 | 一种ecu程序刷写和检测方法 |
CN106484450A (zh) * | 2015-08-28 | 2017-03-08 | 青岛海信移动通信技术股份有限公司 | 一种软件升级方法及装置 |
CN106598597A (zh) * | 2016-12-14 | 2017-04-26 | 普华基础软件股份有限公司 | 一种电控单元应用软件刷新方法 |
CN106874032A (zh) * | 2017-01-04 | 2017-06-20 | 青岛海信宽带多媒体技术有限公司 | 光模块固件升级的方法、装置及光模块 |
CN107402847A (zh) * | 2017-07-28 | 2017-11-28 | 安徽江淮汽车集团股份有限公司 | 一种整车控制器软件的远程升级方法及系统 |
CN107977220A (zh) * | 2017-12-04 | 2018-05-01 | 清华大学 | 一种刷写应用程序的方法、装置及系统 |
CN108874422A (zh) * | 2018-06-15 | 2018-11-23 | 合肥美的电冰箱有限公司 | 一种冰箱电控板的软件在线升级方法、冰箱电控板和冰箱 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2453352A1 (en) * | 2010-11-08 | 2012-05-16 | Gemalto SA | Software updating process for an embedded device |
-
2019
- 2019-01-23 CN CN201910063264.4A patent/CN111475179B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855151A (zh) * | 2012-08-21 | 2013-01-02 | 武汉电信器件有限公司 | 不打断业务的光模块固件在应用升级方法 |
CN103677943A (zh) * | 2013-12-27 | 2014-03-26 | 浙江众邦机电科技有限公司 | 一种缝纫机控制器软件升级方法 |
CN103995712A (zh) * | 2014-04-16 | 2014-08-20 | 潍柴动力股份有限公司 | 一种自动更新的bootloader装置及更新方法 |
CN104281469A (zh) * | 2014-08-26 | 2015-01-14 | 东风电子科技股份有限公司 | 实现电子控制单元程序刷写的方法及系统 |
CN106484450A (zh) * | 2015-08-28 | 2017-03-08 | 青岛海信移动通信技术股份有限公司 | 一种软件升级方法及装置 |
CN105608370A (zh) * | 2015-12-30 | 2016-05-25 | 科力远混合动力技术有限公司 | 一种ecu程序刷写和检测方法 |
CN106598597A (zh) * | 2016-12-14 | 2017-04-26 | 普华基础软件股份有限公司 | 一种电控单元应用软件刷新方法 |
CN106874032A (zh) * | 2017-01-04 | 2017-06-20 | 青岛海信宽带多媒体技术有限公司 | 光模块固件升级的方法、装置及光模块 |
CN107402847A (zh) * | 2017-07-28 | 2017-11-28 | 安徽江淮汽车集团股份有限公司 | 一种整车控制器软件的远程升级方法及系统 |
CN107977220A (zh) * | 2017-12-04 | 2018-05-01 | 清华大学 | 一种刷写应用程序的方法、装置及系统 |
CN108874422A (zh) * | 2018-06-15 | 2018-11-23 | 合肥美的电冰箱有限公司 | 一种冰箱电控板的软件在线升级方法、冰箱电控板和冰箱 |
Also Published As
Publication number | Publication date |
---|---|
CN111475179A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110231952B (zh) | 一种ecu程序备份及循环升级控制方法及装置 | |
CN109358887B (zh) | 一种单片机程序的在线升级方法、装置及系统 | |
CN111796848A (zh) | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 | |
CN105718281B (zh) | 一种触摸屏固件升级方法及装置 | |
CN102945173A (zh) | 用户程序在线升级系统和升级方法 | |
CN112667265B (zh) | 一种引导程序更新方法及装置 | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
CN112433769A (zh) | 一种bmc启动方法、装置、计算机设备及存储介质 | |
CN111475194A (zh) | 一种用于新能源汽车控制器的软件升级方法 | |
CN115061713A (zh) | 升级电子设备的方法及装置 | |
CN111782246A (zh) | 基于总线的多节点设备嵌入式程序升级方法 | |
CN109213510A (zh) | 一种用于嵌入式设备的应用程序升级方法及存储介质 | |
CN111026417A (zh) | 一种嵌入式设备的升级方法及嵌入式设备 | |
CN114064077A (zh) | 一种基于tc397微控制器地址映射的汽车ecu云端软件升级方法 | |
CN108874422B (zh) | 一种冰箱电控板的软件在线升级方法、冰箱电控板和冰箱 | |
CN111475179B (zh) | 一种软件在线刷写方法、装置、电子控制单元及上位机 | |
CN112527365A (zh) | 应用程序更新方法、非易失存储器、存储介质及家用电器 | |
CN112346770A (zh) | 一种嵌入式程序在线更新方法 | |
CN116954674A (zh) | eMMC固件升级方法、固件升级设备和存储装置 | |
CN110908706A (zh) | 一种多版本软件的管理方法 | |
CN115080091A (zh) | 一种卫星通信设备在线升级mcu固件的方法及系统 | |
CN115357275A (zh) | 一种基于Linux的Nand Flash镜像读取与升级的方法、介质及终端 | |
CN114996717A (zh) | 一种防止误擦除的升级程序设计方法 | |
CN113467797B (zh) | 程序更新方法、装置和系统以及计算机可读存储介质 | |
CN114296764A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |