CN108089943A - 基于mcu系统的程序执行方法、装置和终端 - Google Patents
基于mcu系统的程序执行方法、装置和终端 Download PDFInfo
- Publication number
- CN108089943A CN108089943A CN201611040622.2A CN201611040622A CN108089943A CN 108089943 A CN108089943 A CN 108089943A CN 201611040622 A CN201611040622 A CN 201611040622A CN 108089943 A CN108089943 A CN 108089943A
- Authority
- CN
- China
- Prior art keywords
- program
- storage region
- storage
- stored
- module
- 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
Classifications
-
- 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/1438—Restarting or rejuvenating
-
- 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/1441—Resetting or repowering
Abstract
本发明提出一种基于MCU系统的程序执行方法、装置和终端,通过在MCU系统中执行第一存储区域内所存储的第一程序,进而在第一程序执行失败时,在系统的信息存储体中对第一存储区域标记故障信息,在对系统进行重启时,根据信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序,在系统中执行该第二程序。第一程序和第二程序分别为系统最近一次升级前后的程序,通过系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证系统的运行状态,解决现有技术中系统恢复效率较低的技术问题。
Description
技术领域
本发明涉及车辆控制技术领域,尤其涉及一种基于MCU系统的程序执行方法、装置和终端。
背景技术
在微控制单元(Microcontroller Unit,MCU)系统中,通常采用程序安全控制策略对MCU系统的程序进行控制,从而保证系统中程序执行的可靠性。若在系统的运行过程中,程序出现问题,程序安全控制策略仅能够通过车辆的控制界面对用户进行提醒,程序安全控制策略无法进一步对故障进行排除。
在此情况下,用户仅能够暂停或者关闭系统,依靠线下专用的检测调试设备进行检测,以对故障模块的程序进行修复,从而来实现对整个MCU系统的程序更新和修复,恢复系统的正常运行。
但是,这种依赖于线下对程序进行更新和修复的方式,会影响用户对系统的使用,也就是说,现有的程序安全控制策略由于无法对故障进行排除导致了系统恢复效率较低。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种基于MCU系统的程序执行方法,该方法可通过在系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证系统的运行状态,从而为系统运行过程中的程序更新和修复,以对系统进行故障排除打下了基础,解决现有技术中系统恢复效率较低的技术问题。
为达上述目的,本发明第一方面实施例提出了一种基于MCU系统的程序执行方法,包括以下步骤:
在所述MCU系统中执行第一存储区域内所存储的第一程序;其中,所述第一程序为所述系统最近一次升级后的程序;
在所述第一程序执行失败时,在所述系统的信息存储体中对所述第一存储区域标记故障信息;
在对所述系统进行重启时,根据所述信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序;其中,所述第二程序为所述系统最近一次升级前的程序;
在所述系统中执行所述第二程序。
本发明实施例的基于MCU系统的程序执行方法,通过在所述MCU系统中执行第一存储区域内所存储的第一程序,进而在第一程序执行失败时,在系统的信息存储体中对第一存储区域标记故障信息,在对系统进行重启时,根据信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序,在系统中执行该第二程序。由于第一程序为系统最近一次升级后的程序,第二程序为系统最近一次升级前的程序,可见,通过系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证系统的运行状态,从而为系统运行过程中的程序更新和修复,以对系统进行故障排除打下了基础,解决现有技术中系统恢复效率较低的技术问题。
另外,本发明实施例的基于MCU系统的程序执行方法,还具有如下附加的技术特征:
在本发明的一个实施例中,所述在系统中执行所述第二程序过程中,还包括:
从车辆服务器下载最新版本的第三程序;
将所述第三程序存储至第三存储区域;
将所述第三存储区域内所存储的第三程序,与所述第一存储区域内所存储的第一程序进行对比校验;
若对比校验结果为有误,将所述第三程序拷贝至所述第一存储区域;
在所述系统的信息存储体中,更改对所述第一存储区域所标记的故障信息。
在本发明的一个实施例中,所述在所述系统的信息存储体中,更改对所述第一存储区域所标记的故障信息之后,还包括:
在对所述系统进行重启时,根据更改后的故障信息,读取所述第一存储区域内所存储的第三程序;
在所述系统中执行所述第三程序。
在本发明的一个实施例中,所述在所述系统中执行所述第三程序之后,还包括:
在所述系统提示故障时,对所述第一存储区域内所存储的第三程序,与所述第三存储区域内所存储的第三程序进行对比校验;
若对比校验结果为有误,确定所述第一存储区域存在故障;
若对比校验结果为正确,确定车辆组件存在故障。
在本发明的一个实施例中,所述在所述MCU系统中执行第一存储区域内所存储的第一程序之前,还包括:
在所述系统执行所述第二存储区域内所存储的第二程序时,执行升级过程;
从所述车辆服务器下载最新版本的所述第一程序;
将所述第一程序存储至所述第一存储区域;
在所述系统的信息存储体中,利用所述第一程序的程序信息对所述第一存储区域进行标记;
当所述系统再次启动时,根据所述信息存储体中对各存储区域所标记的程序信息,选择存储有最新版本程序的所述第一存储区域进行读取,以执行所述第一存储区域内所存储的第一程序。
为达上述目的,本发明第二方面实施例提出了一种基于MCU系统的程序执行装置,包括:
执行模块,用于在所述MCU系统中执行第一存储区域内所存储的第一程序;其中,所述第一程序为所述系统最近一次升级后的程序;
标记模块,用于在所述第一程序执行失败时,在所述系统的信息存储体中对所述第一存储区域标记故障信息;
重启模块,用于在对所述系统进行重启时,根据所述信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序;其中,所述第二程序为所述系统最近一次升级前的程序;
所述执行模块,还用于在所述系统中执行所述重启模块所读取到的第二程序。
本发明实施例的基于MCU系统的程序执行装置,通过执行模块在所述MCU系统中执行第一存储区域内所存储的第一程序,进而在第一程序执行失败时,标记模块在系统的信息存储体中对第一存储区域标记故障信息,在对系统进行重启时,重启模块根据信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序,以使执行模块在系统中执行该第二程序。由于第一程序为系统最近一次升级后的程序,第二程序为系统最近一次升级前的程序,可见,通过系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证系统的运行状态,从而为系统运行过程中的程序更新和修复,以对系统进行故障排除打下了基础,解决现有技术中系统恢复效率较低的技术问题。
另外,本发明实施例的基于MCU系统的程序执行装置,还具有如下附加的技术特征:
在本发明的一个实施例中,所述装置,还包括:
下载模块,用于在所述系统执行所述第二程序的过程中,从车辆服务器下载最新版本的第三程序;
存储模块,用于将所述第三程序存储至第三存储区域;
校验模块,用于将所述第三存储区域内所存储的第三程序,与所述第一存储区域内所存储的第一程序进行对比校验;
拷贝模块,用于若对比校验结果为有误,将所述第三程序拷贝至所述第一存储区域;
更新模块,用于在所述系统的信息存储体中,更改对所述第一存储区域所标记的故障信息。
在本发明的一个实施例中,所述重启模块,还用于在对所述系统进行重启时,根据更改后的故障信息,读取所述第一存储区域内所存储的第三程序;
所述执行模块,还用于在所述系统中执行所述第三程序。
在本发明的一个实施例中,所述校验模块,还用于在所述系统提示故障时,对所述第一存储区域内所存储的第三程序,与所述第三存储区域内所存储的第三程序进行对比校验;
故障判断模块,用于若对比校验结果为有误,确定所述第一存储区域存在故障;若对比校验结果为正确,确定车辆组件存在故障。
在本发明的一个实施例中,所述装置,还包括:
升级模块,用于在所述系统执行所述第二存储区域内所存储的第二程序时,执行升级过程;
所述下载模块,还用于从所述车辆服务器下载最新版本的所述第一程序;
所述存储模块,还用于将所述第一程序存储至所述第一存储区域;
所述标记模块,还用于在所述系统的信息存储体中,利用所述第一程序的程序信息对所述第一存储区域进行标记;
所述重启模块,还用于当所述系统再次启动时,根据所述信息存储体中对各存储区域所标记的程序信息,选择存储有最新版本程序的所述第一存储区域进行读取,以执行所述第一存储区域内所存储的第一程序。
为达上述目的,本发明第三方面实施例提出了一种终端,所述终端包括:MCU系统;
所述MCU系统包括存储器、信息存储体以及处理器,其中,所述存储器包括第一存储区域和第二存储区域;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:
执行所述第一存储区域内所存储的第一程序;其中,所述第一程序为所述系统最近一次升级后的程序;
在所述第一程序执行失败时,在所述系统的信息存储体中对所述第一存储区域标记故障信息;
在进行重启时,根据所述信息存储体中标记的故障信息,读取运转正常的所述第二存储区域内所存储的第二程序;其中,所述第二程序为所述系统最近一次升级前的程序;
执行所述第二程序。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种基于MCU系统的程序执行方法流程示意图;
图2为MCU系统的结构示意图;
图3为本实施例所提供的另一种基于MCU系统的程序执行方法的流程示意图;
图4为本发明实施例所提供的逻辑图;
图5为本发明实施例提供的一种基于MCU系统的程序执行装置的结构示意图;以及
图6为本发明实施例提供的另一种基于MCU系统的程序执行装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述本发明实施例的基于MCU系统的程序执行方法和装置。
在当前的MCU系统安全控制策略中,若在系统的运行时,程序出现问题,安全控制策略仅能够通过车辆的控制界面对用户进行提醒,而无法进一步对故障进行排除。从而用户仅能够暂停或者关闭系统,依靠线下专用的检测调试设备进行检测,以对故障模块的程序进行修复,从而来实现对整个MCU系统的程序更新和修复,恢复系统的正常运行,影响用户对系统的使用。本发明通过在系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证系统的运行状态,从而为系统运行过程中的程序更新和修复,以对系统进行故障排除打下了基础,解决现有技术中系统恢复效率较低的技术问题。
下面将就基于MCU系统的程序执行方法进行具体介绍。
图1为本发明实施例所提供的一种基于MCU系统的程序执行方法流程示意图,如图1所示,方法包括:
步骤101,在MCU系统中执行第一存储区域内所存储的第一程序。
其中,第一程序为系统最近一次升级后的程序。
具体地,在车辆的MCU系统中有两组存储不同系统执行程序的区域,分别命名为区域A和区域B。其中,作为第一存储区域的区域A中存储有当前MCU系统执行的系统最近一次升级后的程序,这里称为第一程序;作为第二存储区域的区域B存储系统最近一次升级前的程序,这里称为第二程序,两个区域内的程序均可正常运行。在系统每一次启动时,从无故障的存储区域读取程序进行执行,若两组存储区域均运转正常,则优先读取最新升级后的程序并进行执行,即区域A中的程序。
步骤102,在第一程序执行失败时,在系统的信息存储体中对第一存储区域标记故障信息。
其中,信息存储体用于存储两类信息,一类为故障信息,具有故障信息标记的存储区域为待修复的存储区域,无法通过该存储区域内所存储的程序进行系统启动;另一类为程序信息,具有程序信息标记的存储区域为可用的存储区域,可以通过该存储区域内所存储的程序进行系统启动,具体程序信息的内容用于指示该存储区域所存储程序的版本,例如:程序信息具体可以为版本号,通过程序信息便可以比较出不同程序之间版本的新旧。
在系统的信息存储体中对所述第一存储区域标记故障信息,以在系统进行启动或者重启时,根据该故障信息避免从第一存储区域读取程序启动系统。
进一步,在系统的信息存储体中对第一存储区域标记故障信息的同时,还可以提示用户系统存在故障,请用户切断系统电源,重启系统。
步骤103,在对系统进行重启时,根据信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序。
其中,所述第二程序为所述系统最近一次升级前的程序。
当MCU系统再次启动时,首先读取信息存储体的信息,由于第一存储区域存在故障信息的标记,则判断第一存储区域内的第一程序存在程序故障,此时系统将从此次启动为节点,后续启动均执行另一存储区域,即执行第二存储区域中的第二程序,以确保整个系统在第一存储区域程序存在故障的情况下,通过运行第二存储区域的第二程序正常运行。
步骤104,在系统中执行第二程序。
由于系统中存在两个存储区域存储不同的程序,因此,在进行系统升级时,升级方法也需要进行相应的修改。具体来说,在本实施例所提供的系统进行最近一次升级时,系统正在执行第二存储区域内所存储的第二程序。在执行升级过程中,从车辆服务器下载最新版本的所述第一程序,将所述第一程序存储至所述第一存储区域,在所述系统的信息存储体中,利用所述第一程序的程序信息对所述第一存储区域进行标记,当所述系统再次启动时,根据所述信息存储体中对各存储区域所标记的程序信息,选择存储有最新版本程序的所述第一存储区域进行读取,以执行所述第一存储区域内所存储的第一程序。可见,通过对程序更新和系统运行并行执行,极大提高了运行效率。
本实施例中,通过在系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证系统的运行状态,从而为系统运行过程中的程序更新和修复,以对系统进行故障排除打下了基础,解决现有技术中系统恢复效率较低的技术问题。对于后续故障排除的方法,本发明提供了两种可能的实现方式,其中,第一种可能的实现方式为线下修复;另一种可能的实现方式为线上修复。
下面分别就这两种修复方式进行介绍。
针对线下修复的方式,可直接通过线下的专用汽车MCU检测系统进行程序检测和修复更新。
针对线上修复的方式,可以通过在系统中执行第二程序过程中,对第一存储区域内所存储的第一程序进行修复。具体来说,可以通过从车辆服务器下载最新版本的第三程序,将第三程序存储至第三存储区域,并将第三存储区域内所存储的第三程序与所述第一存储区域内所存储的第一程序进行对比校验,若对比校验结果为有误,将所述第三程序拷贝至所述第一存储区域,从而使得第一存储区域内所存储的程序为最新版本的程序,完成对第一存储区域内所存储程序的修复。进而,在系统的信息存储体中,更改对第一存储区域所标记的故障信息,以使得系统在重新启动时,能够执行该第一存储区域修复后所获得的第三程序。
本实施例中,通过在所述MCU系统中执行第一存储区域内所存储的第一程序,进而在第一程序执行失败时,在系统的信息存储体中对第一存储区域标记故障信息,在对系统进行重启时,根据信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序,在系统中执行该第二程序。由于第一程序为系统最近一次升级后的程序,第二程序为系统最近一次升级前的程序,可见,通过系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证系统的运行状态,从而为系统运行过程中的程序更新和修复,以对系统进行故障排除打下了基础,解决现有技术中系统恢复效率较低的技术问题。
为了清楚说明本实施例,本实施例提供了一种MCU系统故障情况下,系统恢复的方法。
具体地,作为一种可能应用场景,该MCU系统作用于车辆的车窗雨刮、升降,方向盘等电机控制系统,如图2所示,该MCU系统中包含存储区域A、存储区域B和临时存储区域C。其中,存储区域A中已经具有最新雨刮电机控制程序A,存储区域B中具有最近一次更新前的雨刮电机控制程序B。用户根据个人体验对程序A相比于程序B更新了雨刮档位速度和周期。
具体地,图3为本实施例所提供的另一种基于MCU系统的程序执行方法的流程示意图,如图3所示,本实施例所提供的方法包括如下步骤:
步骤201,MCU系统通过程序A正常运行时,MCU系统根据用户设定的雨刮档位进行速度和周期调整。
步骤202,程序A运行故障时,MCU系统发出警告故障指示,并将程序A运行故障信息作为存储区域A的标记,记录至信息存储体中,提示用户重新启动系统。
步骤203,当MCU系统重新启动时,MCU系统通过读取信息存储体中的故障信息,确定存储区域A中程序A运行雨刮系统故障,切换至存储区域B读取程序B进行雨刮控制。
步骤204,系统提示用户目前雨刮MCU系统运行的不是最新程序,需要进行修复。
此时雨刮系统恢复功能,可以正常使用,不影响雨天用户的使用性,用户不用被动等待线下修复。但程序B尽管能够正常运行,但与程序A相比,其雨刮控制速度和周期不同,为了获得更好的用户体验,可以进行线上故障排除。
步骤205,当用户选择进行修复后,MCU系统从车辆服务器下载最新版本的程序C,将程序C存储至临时存储区域C,利用程序C对程序A进行校验。
具体地,在雨刮正常工作过程中,如图2所示,MCU系统通过汽车互联网,将车辆服务器中的程序A,依次通过无线互联网模块、MCU通信模块下载至MCU系统的缓存中,也就是说,采用无线方式下载至缓存中。在通过无线方式将数据下载至缓存后,通过直接内存存取(Direct Memory Access,DMA)的形式,由MCU系统内部硬件将缓存中的数据转存至临时存储区域C中。
在程序下载完毕后,执行下载过程的下载任务将发出完成标志,此时MCU系统将根据此标志激活进行对比检测的校验流程。具体来说,MCU系统中的比对模块识别出目前MCU系统没有执行存储区域A中的程序,然后将程序A和程序C进行完整的数据对比,并最后产生对比结果。
步骤206,当对比结果为0时,则说明程序A和程序C一致,确定程序A未导致系统故障,并提示可能是雨刮组件故障。
步骤207,当对比结果为1时,则说明程序A和程序C不一致,MCU系统在信息存储体中记录程序A和程序C的数据不一致信息。
其中,数据不一致信息用于指示程序A和程序C之间不一致的内容,以便后续检测分析。
步骤208,MCU系统通过DMA采用直接存储体访问的形式,将临时存储区域C中的数据拷贝至存储区域A中。
步骤209,MCU系统修改信息存储体中存储区域A的标志。
具体地,如图2所示,具体由中央处理器(Central Processing Unit,CPU)对信息存储体进行写操作,以修改存储区域A的标志。
步骤210,MCU系统进行重新启动。
步骤211,当MCU系统重启时,根据信息存储体中存储区域A的修改后的标志,若判定存储区域A已被修复,则从存储区域B转为从存储区域A读取程序以执行雨刮控制逻辑,控制雨刮组件。
具体地,如图2所示,具体由CPU中的程序切换单元选定所需读取的存储区域。
步骤212,若雨刮组件正常工作,无故障警报,则确定修复成功。
步骤213,若存在警报,则确定是组件故障或程序BUG,系统将继续重启返回空间B执行程序,并将信息记录至信息存储体中。
需要说明的是,为了便于后续系统的维护,MCU系统以上执行检测和修复的过程以及产生的结果均被记录,以便后续通过线下进行检测维修。
为了便于清楚理解前述步骤,本实施例还提供了逻辑图,图4为本发明实施例所提供的逻辑图,如图4所示,本实施例中通过MCU系统通过在系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证雨刮组件的运行状态,同时,还实现了系统运行过程中的程序更新和修复,在线进行故障排除,解决了现有技术中系统恢复效率较低的技术问题。
相应地,为了实现本发明所提供的基于MCU系统的程序执行方法,本实施例提供了一种基于MCU系统的程序执行装置,用于实施前述基于MCU系统的程序执行方法,该基于MCU系统的程序执行装置设置于MCU内部,具体来说,图5为本发明实施例提供的一种基于MCU系统的程序执行装置的结构示意图,如图5所示,基于MCU系统的程序执行装置包括:执行模块51、标记模块52和重启模块53。
执行模块51,用于在所述MCU系统中执行第一存储区域内所存储的第一程序。
其中,第一程序为系统最近一次升级后的程序。
标记模块52,用于在第一程序执行失败时,在系统的信息存储体中对第一存储区域标记故障信息。
重启模块53,用于在对系统进行重启时,根据信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序。
其中,第二程序为系统最近一次升级前的程序。
执行模块51,还用于在系统中执行重启模块所读取到的第二程序。
图6为本发明实施例提供的另一种基于MCU系统的程序执行装置的结构示意图,如图6所示,在上一实施例的基础上,本实施例所提供的装置进一步包括:下载模块61、存储模块62、校验模块63、拷贝模块64和更新模块65。
下载模块61,用于在所述系统执行所述第二程序的过程中,从车辆服务器下载最新版本的第三程序。
存储模块62,用于将第三程序存储至第三存储区域。
校验模块63,用于将第三存储区域内所存储的第三程序,与第一存储区域内所存储的第一程序进行对比校验。
拷贝模块64,用于若对比校验结果为有误,将所述第三程序拷贝至所述第一存储区域。
更新模块65,用于在所述系统的信息存储体中,更改对所述第一存储区域所标记的故障信息。
进一步,所述重启模块53,还用于在对所述系统进行重启时,根据更改后的故障信息,读取所述第一存储区域内所存储的第三程序。
所述执行模块51,还用于在所述系统中执行所述第三程序。
所述校验模块63,还用于在所述系统提示故障时,对所述第一存储区域内所存储的第三程序,与所述第三存储区域内所存储的第三程序进行对比校验。
基于此,程序执行装置还包括:故障判断模块66。
故障判断模块66,用于若对比校验结果为有误,确定所述第一存储区域存在故障;若对比校验结果为正确,确定车辆组件存在故障。
进一步,程序执行模块还包括:升级模块67。
升级模块67,用于在所述系统执行所述第二存储区域内所存储的第二程序时,执行升级过程。
所述下载模块61,还用于从所述车辆服务器下载最新版本的所述第一程序;
所述存储模块62,还用于将所述第一程序存储至所述第一存储区域;
所述标记模块52,还用于在所述系统的信息存储体中,利用所述第一程序的程序信息对所述第一存储区域进行标记。
所述重启模块53,还用于当所述系统再次启动时,根据所述信息存储体中对各存储区域所标记的程序信息,选择存储有最新版本程序的所述第一存储区域进行读取,以执行所述第一存储区域内所存储的第一程序。
本实施例所提供的装置,通过执行模块在所述MCU系统中执行第一存储区域内所存储的第一程序,进而在第一程序执行失败时,标记模块在系统的信息存储体中对第一存储区域标记故障信息,在对系统进行重启时,重启模块根据信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序,以使执行模块在系统中执行该第二程序。由于第一程序为系统最近一次升级后的程序,第二程序为系统最近一次升级前的程序,可见,通过系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证系统的运行状态,从而为系统运行过程中的程序更新和修复,以对系统进行故障排除打下了基础,解决现有技术中系统恢复效率较低的技术问题。
本发明实施例还提供了一种终端,该终端包括:MCU系统。
其中,MCU系统包括存储器、信息存储体以及处理器,其中,所述存储器包括第一存储区域和第二存储区域;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:
执行所述第一存储区域内所存储的第一程序;其中,所述第一程序为所述系统最近一次升级后的程序;在所述第一程序执行失败时,在所述系统的信息存储体中对所述第一存储区域标记故障信息;在进行重启时,根据所述信息存储体中标记的故障信息,读取运转正常的所述第二存储区域内所存储的第二程序;其中,所述第二程序为所述系统最近一次升级前的程序;执行所述第二程序。
本实施例所提供的终端,通过执行模块在所述MCU系统中执行第一存储区域内所存储的第一程序,进而在第一程序执行失败时,标记模块在系统的信息存储体中对第一存储区域标记故障信息,在对系统进行重启时,重启模块根据信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序,以使执行模块在系统中执行该第二程序。由于第一程序为系统最近一次升级后的程序,第二程序为系统最近一次升级前的程序,可见,通过系统中同时存储最近一次升级前以及最近一次升级后的程序,实现在系统存在故障时,进行系统恢复,以保证系统的运行状态,从而为系统运行过程中的程序更新和修复,以对系统进行故障排除打下了基础,解决现有技术中系统恢复效率较低的技术问题。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (11)
1.一种基于MCU系统的程序执行方法,其特征在于,包括以下步骤:
在所述MCU系统中执行第一存储区域内所存储的第一程序;其中,所述第一程序为所述系统最近一次升级后的程序;
在所述第一程序执行失败时,在所述系统的信息存储体中对所述第一存储区域标记故障信息;
在对所述系统进行重启时,根据所述信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序;其中,所述第二程序为所述系统最近一次升级前的程序;
在所述系统中执行所述第二程序。
2.根据权利要求1所述的程序执行方法,其特征在于,所述在系统中执行所述第二程序过程中,还包括:
从车辆服务器下载最新版本的第三程序;
将所述第三程序存储至第三存储区域;
将所述第三存储区域内所存储的第三程序,与所述第一存储区域内所存储的第一程序进行对比校验;
若对比校验结果为有误,将所述第三程序拷贝至所述第一存储区域;
在所述系统的信息存储体中,更改对所述第一存储区域所标记的故障信息。
3.根据权利要求2所述的程序执行方法,其特征在于,所述在所述系统的信息存储体中,更改对所述第一存储区域所标记的故障信息之后,还包括:
在对所述系统进行重启时,根据更改后的故障信息,读取所述第一存储区域内所存储的第三程序;
在所述系统中执行所述第三程序。
4.根据权利要求3所述的程序执行方法,其特征在于,所述在所述系统中执行所述第三程序之后,还包括:
在所述系统提示故障时,对所述第一存储区域内所存储的第三程序,与所述第三存储区域内所存储的第三程序进行对比校验;
若对比校验结果为有误,确定所述第一存储区域存在故障;
若对比校验结果为正确,确定车辆组件存在故障。
5.根据权利要求1-4任一项所述的程序执行方法,其特征在于,所述在所述MCU系统中执行第一存储区域内所存储的第一程序之前,还包括:
在所述系统执行所述第二存储区域内所存储的第二程序时,执行升级过程;
从所述车辆服务器下载最新版本的所述第一程序;
将所述第一程序存储至所述第一存储区域;
在所述系统的信息存储体中,利用所述第一程序的程序信息对所述第一存储区域进行标记;
当所述系统再次启动时,根据所述信息存储体中对各存储区域所标记的程序信息,选择存储有最新版本程序的所述第一存储区域进行读取,以执行所述第一存储区域内所存储的第一程序。
6.一种基于MCU系统的程序执行装置,其特征在于,包括:
执行模块,用于在所述MCU系统中执行第一存储区域内所存储的第一程序;其中,所述第一程序为所述系统最近一次升级后的程序;
标记模块,用于在所述第一程序执行失败时,在所述系统的信息存储体中对所述第一存储区域标记故障信息;
重启模块,用于在对所述系统进行重启时,根据所述信息存储体中标记的故障信息,读取运转正常的第二存储区域内所存储的第二程序;其中,所述第二程序为所述系统最近一次升级前的程序;
所述执行模块,还用于在所述系统中执行所述重启模块所读取到的第二程序。
7.根据权利要求6所述的程序执行装置,其特征在于,所述装置,还包括:
下载模块,用于在所述系统执行所述第二程序的过程中,从车辆服务器下载最新版本的第三程序;
存储模块,用于将所述第三程序存储至第三存储区域;
校验模块,用于将所述第三存储区域内所存储的第三程序,与所述第一存储区域内所存储的第一程序进行对比校验;
拷贝模块,用于若对比校验结果为有误,将所述第三程序拷贝至所述第一存储区域;
更新模块,用于在所述系统的信息存储体中,更改对所述第一存储区域所标记的故障信息。
8.根据权利要求6所述的程序执行装置,其特征在于,
所述重启模块,还用于在对所述系统进行重启时,根据更改后的故障信息,读取所述第一存储区域内所存储的第三程序;
所述执行模块,还用于在所述系统中执行所述第三程序。
9.根据权利要求8所述的程序执行装置,其特征在于,
所述校验模块,还用于在所述系统提示故障时,对所述第一存储区域内所存储的第三程序,与所述第三存储区域内所存储的第三程序进行对比校验;
故障判断模块,用于若对比校验结果为有误,确定所述第一存储区域存在故障;若对比校验结果为正确,确定车辆组件存在故障。
10.根据权利要求6-9任一项所述的程序执行装置,其特征在于,所述装置,还包括:
升级模块,用于在所述系统执行所述第二存储区域内所存储的第二程序时,执行升级过程;
所述下载模块,还用于从所述车辆服务器下载最新版本的所述第一程序;
所述存储模块,还用于将所述第一程序存储至所述第一存储区域;
所述标记模块,还用于在所述系统的信息存储体中,利用所述第一程序的程序信息对所述第一存储区域进行标记;
所述重启模块,还用于当所述系统再次启动时,根据所述信息存储体中对各存储区域所标记的程序信息,选择存储有最新版本程序的所述第一存储区域进行读取,以执行所述第一存储区域内所存储的第一程序。
11.一种终端,其特征在于,所述终端包括:MCU系统;
所述MCU系统包括存储器、信息存储体以及处理器,其中,所述存储器包括第一存储区域和第二存储区域;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:
执行所述第一存储区域内所存储的第一程序;其中,所述第一程序为所述系统最近一次升级后的程序;
在所述第一程序执行失败时,在所述系统的信息存储体中对所述第一存储区域标记故障信息;
在进行重启时,根据所述信息存储体中标记的故障信息,读取运转正常的所述第二存储区域内所存储的第二程序;其中,所述第二程序为所述系统最近一次升级前的程序;
执行所述第二程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611040622.2A CN108089943A (zh) | 2016-11-21 | 2016-11-21 | 基于mcu系统的程序执行方法、装置和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611040622.2A CN108089943A (zh) | 2016-11-21 | 2016-11-21 | 基于mcu系统的程序执行方法、装置和终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108089943A true CN108089943A (zh) | 2018-05-29 |
Family
ID=62170863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611040622.2A Pending CN108089943A (zh) | 2016-11-21 | 2016-11-21 | 基于mcu系统的程序执行方法、装置和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108089943A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112825036A (zh) * | 2019-11-21 | 2021-05-21 | 青岛海尔新能源电器有限公司 | 程序更新的方法、装置、电子设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04177443A (ja) * | 1990-11-07 | 1992-06-24 | Mitsubishi Electric Corp | 通信制御装置 |
CN1834909A (zh) * | 2005-03-18 | 2006-09-20 | 上海华为技术有限公司 | 用于远程设备系统软件的升级方法 |
CN101217401A (zh) * | 2008-01-10 | 2008-07-09 | 华为技术有限公司 | 一种基站控制器的升级、备份方法及装置 |
CN101231592A (zh) * | 2007-01-26 | 2008-07-30 | 华为技术有限公司 | 一种软件升级的方法及系统 |
US20080313496A1 (en) * | 2007-06-12 | 2008-12-18 | Microsoft Corporation | Gracefully degradable versioned storage systems |
CN101656627A (zh) * | 2009-09-23 | 2010-02-24 | 福建星网锐捷网络有限公司 | 一种主程序还原的方法、装置及网络设备 |
CN102346692A (zh) * | 2010-08-03 | 2012-02-08 | 深圳Tcl新技术有限公司 | 一种iptv升级文件的校验方法 |
CN104252369A (zh) * | 2013-06-27 | 2014-12-31 | 上海博泰悦臻电子设备制造有限公司 | 车载设备及其双系统备份方法及装置 |
CN105677409A (zh) * | 2015-12-31 | 2016-06-15 | 中科创达软件股份有限公司 | 一种系统升级方法及装置 |
-
2016
- 2016-11-21 CN CN201611040622.2A patent/CN108089943A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04177443A (ja) * | 1990-11-07 | 1992-06-24 | Mitsubishi Electric Corp | 通信制御装置 |
CN1834909A (zh) * | 2005-03-18 | 2006-09-20 | 上海华为技术有限公司 | 用于远程设备系统软件的升级方法 |
CN101231592A (zh) * | 2007-01-26 | 2008-07-30 | 华为技术有限公司 | 一种软件升级的方法及系统 |
US20080313496A1 (en) * | 2007-06-12 | 2008-12-18 | Microsoft Corporation | Gracefully degradable versioned storage systems |
CN101217401A (zh) * | 2008-01-10 | 2008-07-09 | 华为技术有限公司 | 一种基站控制器的升级、备份方法及装置 |
CN101656627A (zh) * | 2009-09-23 | 2010-02-24 | 福建星网锐捷网络有限公司 | 一种主程序还原的方法、装置及网络设备 |
CN102346692A (zh) * | 2010-08-03 | 2012-02-08 | 深圳Tcl新技术有限公司 | 一种iptv升级文件的校验方法 |
CN104252369A (zh) * | 2013-06-27 | 2014-12-31 | 上海博泰悦臻电子设备制造有限公司 | 车载设备及其双系统备份方法及装置 |
CN105677409A (zh) * | 2015-12-31 | 2016-06-15 | 中科创达软件股份有限公司 | 一种系统升级方法及装置 |
Non-Patent Citations (2)
Title |
---|
G. CABILLIC等: ""The performance of consistent checkpointing in distributed shared memory systems"", 《PROCEEDINGS. 14TH SYMPOSIUM ON RELIABLE DISTRIBUTED SYSTEMS》 * |
徐晓东: ""终端安全软件的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112825036A (zh) * | 2019-11-21 | 2021-05-21 | 青岛海尔新能源电器有限公司 | 程序更新的方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134412B (zh) | 软件更新方法、装置、车辆及计算机可读存储介质 | |
CN107531198B (zh) | 程序改写装置和程序改写方法 | |
JP6760813B2 (ja) | ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム | |
JP4345860B2 (ja) | 車両用記憶管理装置 | |
CN103560279A (zh) | 基于can总线的电池管理系统诊断系统及其诊断维护方法 | |
US20180321929A1 (en) | Method and system for software installation in a vehicle | |
CN110659038B (zh) | 车载毫米波雷达升级方法、装置、计算机设备和存储介质 | |
EP3879399A1 (en) | Method and apparatus for upgrading vehicle-mounted tbox, device, and storage medium | |
CN114385421A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN112764374A (zh) | 一种整车控制器配置刷写方法及系统 | |
CN108170441A (zh) | 驱动程序安装方法、装置、驱动程序安装客户端及服务器 | |
CN106095474A (zh) | 用于更新运输工具中的软件的方法和装置 | |
CN107844312A (zh) | 一种软件更新监控方法和系统 | |
CN108089943A (zh) | 基于mcu系统的程序执行方法、装置和终端 | |
CN105183580A (zh) | 一种引导程序的存储方法、故障恢复方法及设备 | |
CN114398066A (zh) | 一种域控制器的软件升级方法、系统及应用 | |
JP6459851B2 (ja) | 車両用電子制御装置 | |
CN105159810B (zh) | 对计算机系统的bios进行测试的方法及装置 | |
CN112448967B (zh) | 一种数据上传的控制方法、装置、控制设备及汽车 | |
CN114793196B (zh) | 固件升级方法、装置、设备和存储介质 | |
CN116257270A (zh) | 一种车辆、车辆的升级方法和装置 | |
CN106444730B (zh) | 一种防软件僵死的电子控制单元的诊断方法 | |
CN112925546B (zh) | 一种防止车载ecu刷新出错的多级校验方法及系统 | |
CN113672258A (zh) | 车辆的系统升级方法、装置、计算机设备和存储介质 | |
CN110727450A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210222 Address after: 518119 No.1 Yan'an Road, Kuiyong street, Dapeng New District, Shenzhen City, Guangdong Province Applicant after: BYD Semiconductor Co.,Ltd. Address before: 518118 BYD Road, Pingshan New District, Shenzhen, Guangdong 3009 Applicant before: BYD Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180529 |
|
RJ01 | Rejection of invention patent application after publication |