CN110688136B - 一种应用程序更新方法及装置 - Google Patents
一种应用程序更新方法及装置 Download PDFInfo
- Publication number
- CN110688136B CN110688136B CN201910911301.2A CN201910911301A CN110688136B CN 110688136 B CN110688136 B CN 110688136B CN 201910911301 A CN201910911301 A CN 201910911301A CN 110688136 B CN110688136 B CN 110688136B
- Authority
- CN
- China
- Prior art keywords
- controller
- stage
- application program
- message
- received
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012544 monitoring process Methods 0.000 claims abstract description 24
- 230000008672 reprogramming Effects 0.000 claims description 38
- 230000006870 function Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 3
- 238000003745 diagnosis Methods 0.000 claims 3
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006854 communication Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种应用程序更新方法及装置,在控制器上电复位后监测控制器的报文接收情况,如果监测到从控制器上电复位之后的预设时间内接收到特定类型报文,控制控制器停留在引导加载程序阶段,获取待更新的应用程序,并在引导加载程序阶段对待更新的应用程序进行更新,以从由具备UDS功能的应用程序控制进入引导加载程序阶段更改为由特定类型报文控制进入引导加载程序阶段,这样即使具备UDS功能的应用程序运行异常,在接收到特定类型报文后仍能够对待更新的应用程序进行更新,从而实现在不依赖具备UDS功能的应用程序的情况下完成应用程序更新。
Description
技术领域
本发明属于代码处理技术领域,尤其涉及一种应用程序更新方法及装置。
背景技术
目前ECU(Electronic Control Unit,电子控制单元)在研发结束之后ECU上不具备调试端口,若ECU内的代码(如ECU的控制代码或ECU中任一应用程序的代码)需要更新时则需要特定操作辅助完成,其中ECU内的应用程序更新的一种方式如下:
APP(Application,应用程序)中嵌入UDS(Unified Diagnostic Services,统一诊断服务)功能,在ECU上电复位之后,如果具备UDS功能的APP接收到重编程请求标志信息,从APP运行状态跳转至Bootloader阶段(引导加载程序),并在Bootloader阶段对应用程序进行更新,但是这种方式需要具备UDS功能的APP处于正常运行中,如果具备UDS功能的APP运行异常会导致无法从APP运行状态跳转至Bootloader阶段,进而无法进行应用程序更新。
发明内容
有鉴于此,本发明的目的在于提供一种应用程序更新方法及装置,在不依赖具备UDS功能的应用程序的情况下完成应用程序更新。技术方案如下:
本发明提供一种应用程序更新方法,所述方法包括:
监测控制器在上电复位后的报文接收情况;
如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器停留在引导加载程序阶段;
获取待更新的应用程序;
在所述引导加载程序阶段对所述待更新的应用程序进行更新。
优选的,所述方法还包括:如果监测到从所述控制器上电复位之后的预设时间没有接收到特定类型报文,控制所述控制器运行应用程序。
优选的,所述方法还包括:在所述控制器上电复位后,控制所述控制器执行初始化阶段的第一子阶段,所述第一子阶段用于对所述控制器进行第一部分初始化;
如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器执行所述初始化阶段的第二子阶段,所述第二子阶段用于对所述控制器进行第二部分初始化,以通过所述第一子阶段和所述第二子阶段在所述引导加载程序阶段前完成对所述控制器的初始化。
优选的,所述方法还包括:如果监测到从所述控制器上电复位之后的预设时间内没有接收到特定类型报文,禁止所述控制器执行所述第二子阶段,并控制所述控制器运行应用程序。
优选的,所述方法还包括:在所述控制器上电复位之后,判断是否接收到重编程请求标志信息;
如果接收到重编程请求标志信息,控制所述控制器停留在引导加载程序阶段;
如果没有接收到重编程请求标志信息,执行所述监测控制器在上电复位后的报文接收情况的步骤。
优选的,所述方法还包括:如果没有接收到重编程请求标志信息且监测到从所述控制器上电复位之后的预设时间内没有接收到特定类型报文,控制所述控制器运行应用程序。
本发明还提供一种应用程序更新装置,所述装置包括:
监测单元,用于监测控制器在上电复位后的报文接收情况;
控制单元,用于如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器停留在引导加载程序阶段;
获取单元,用于获取待更新的应用程序;
更新单元,用于在所述引导加载程序阶段对所述待更新的应用程序进行更新。
优选的,所述控制单元,还用于如果监测到从所述控制器上电复位之后的预设时间没有接收到特定类型报文,控制所述控制器运行应用程序。
优选的,所述装置还包括:第一初始化单元,用于在所述控制器上电复位后,控制所述控制器执行初始化阶段的第一子阶段,所述第一子阶段用于对所述控制器进行第一部分初始化;
第二初始化单元,用于如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器执行所述初始化阶段的第二子阶段,所述第二子阶段用于对所述控制器进行第二部分初始化,以通过所述第一子阶段和所述第二子阶段在所述引导加载程序阶段前完成对所述控制器的初始化。
优选的,所述控制单元,还用于如果监测到从所述控制器上电复位之后的预设时间内没有接收到特定类型报文,禁止所述控制器执行所述第二子阶段,并控制所述控制器运行应用程序。
优选的,所述装置还包括:判断单元,用于在所述控制器上电复位之后,判断是否接收到重编程请求标志信息;如果接收到重编程请求标志信息,触发控制单元控制所述控制器停留在引导加载程序阶段;如果没有接收到重编程请求标志信息,触发所述监测单元。
优选的,所述控制单元,还用于如果没有接收到重编程请求标志信息且监测到从所述控制器上电复位之后的预设时间内没有接收到特定类型报文,控制所述控制器运行应用程序。
本发明还提供一种终端,所述终端包括:存储器和处理器;
所述存储器中存储有程序代码;所述处理器运行所述程序代码,实现以下功能:
监测控制器在上电复位后的报文接收情况;
如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器停留在引导加载程序阶段;
获取待更新的应用程序;
在所述引导加载程序阶段对所述待更新的应用程序进行更新。
本发明还提供一种存储介质,所述存储介质中存储有计算机程序代码,所述计算机程序代码执行时实现上述应用程序更新方法。
借由上述技术方案,在控制器上电复位后监测控制器的报文接收情况,如果监测到从控制器上电复位之后的预设时间内接收到特定类型报文,控制控制器停留在引导加载程序阶段,获取待更新的应用程序,并在引导加载程序阶段对待更新的应用程序进行更新,以从由具备UDS功能的应用程序控制进入引导加载程序阶段更改为由特定类型报文控制进入引导加载程序阶段,这样即使具备UDS功能的应用程序运行异常,在接收到特定类型报文后仍能够对待更新的应用程序进行更新,从而实现在不依赖具备UDS功能的应用程序的情况下完成应用程序更新。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种应用程序更新方法的流程图;
图2是以太网对应的报文格式要求的示意图;
图3是本发明实施例提供的另一种应用程序更新方法的流程图;
图4是本发明实施例提供的再一种应用程序更新方法的流程图;
图5是本发明实施例提供的再一种应用程序更新方法的流程图;
图6是本发明实施例提供的再一种应用程序更新方法的流程图;
图7是本发明实施例提供的一种应用程序更新装置的结构示意图;
图8是本发明实施例提供的另一种应用程序更新装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种应用程序更新方法的流程图,用于基于特定类型报文控制进入引导加载程序阶段,可以包括以下步骤:
101:监测控制器在上电复位后的报文接收情况。其中报文接收情况用于表示控制器在上电复位后是否接收到上位机(控制控制器进行应用程序更新的设备)发送的报文以及在接收到上位机发送的报文时确定报文是否是特定类型报文,特定类型报文用于控制控制器停留在引导加载程序阶段。
在本实施例中,如果在预设时间内接收到特定类型报文,则执行步骤102;如果在预设时间没有接收到特定类型报文,则执行步骤105;其中预设时间可以根据实际需求而定,对此本实施例不进行限定。
在这里需要说明的一点是:控制器在上电复位后等待特定类型报文的预设时间太长会导致控制器启动应用程序缓慢,预设时间太短则可能会出现一直没有接收到特定类型报文的情况,这是因为控制器基于以太网总线与上位机进行通信,而基于以太网总线与上位机进行通信时控制器和上位机之间需要进行连接,连接所用时间一般为秒级别,经过多次验证预设时间为3-5s(秒)最合适。
在控制器基于以太网总线与上位机进行通信时,两者通信能够采用的传输方式有两种:TCP(Transmission Control Protocol,传输控制协议)方式和UDP(User DatagramProtocol,用户数据报协议)方式。其中采用TCP方式进行通信之前控制器和上位机之间需要经过三次握手建立连接,这会导致在接收到特定报文之前会有较长的等待时间,并且必须实现完整的TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)协议栈才能够通过TCP方式传输报文,而UDP是非面向连接的,不要完整的TCP/IP协议栈的支持和建立连接的过程,能保证控制器和上位机在较短时间内传输报文,因此本实施例采用UDP方式传输报文。
对于报文类型选择上,如果直接选择14229-1协议中的31 01 F5 18直接作为UDP报文的payload(数据),显然不符合图2所示以太网对应的报文格式要求,并且14229-1协议中的31 01 F5 18需要通过TCP方式传输,因此本实施例不能将31 01 F5 18作为UDP报文中的payload,那么在采用UDP方式传输时可以采用控制器和上位机之间传输的第一个报文作为特定类型报文,从而减少控制器接收到特定类型报文的时间。例如对于汽车领域来说,可以将车辆识别报文作为特定类型报文,车辆识别报文为汽车领域中控制器接收到的第一个报文,该报文可通过UDP方式也可以通过广播形式放松用于发现车辆,该车辆识别报文中的payload是02 FD 00 01 00 00 00 00,当接收到这种报文时需要接收到特定类型报文。
102:如果监测到从控制器上电复位之后的预设时间内接收到特定类型报文,控制控制器停留在引导加载程序阶段,其中引导加载程序阶段是控制器用于更新应用程序的阶段,对于任意一个应用程序来说,都可以在引导加载程序阶段进行应用程序更新。
103:获取待更新的应用程序。
在本实施例中,待更新的应用程序可以存储在与控制器耦合通信的存储空间中,而判断存储空间中是否存在待更新的应用程序的一种方式可以是:将存储空间中存储的待更新的应用程序与控制器中已安装的应用程序行对比,如将存储空间中存储的待更新的应用程序的标识与控制器中已安装的应用程序的标识,如应用程序的版本和/或应用程序的生成时间进行比对,以确认是否存在待更新的应用程序,如果存在则获取待更新的应用程序,如果不存在则可以控制控制器运行应用程序。
在这里需要说明的一点是:步骤102和步骤103之间可以并列执行,或者在获取到待更新应用程序的新代码之后再判断是否在预设时间接收到特定类型报文,对此本实施例不对步骤之间的执行顺序进行限定。
104:在引导加载程序阶段对待更新的应用程序进行更新,以完成应用程序更新。
105:如果监测到从控制器上电复位之后的预设时间没有接收到特定类型报文,控制控制器运行应用程序。
如果从控制器上电复位之后的预设时间没有接收到特定类型报文,说明控制器忽略/禁止进行应用程序更新,此时可以控制控制器直接运行应用程序。
借由上述技术方案,在控制器上电复位后监测控制器的报文接收情况,如果监测到从控制器上电复位之后的预设时间内接收到特定类型报文,控制控制器停留在引导加载程序阶段,获取待更新的应用程序,并在引导加载程序阶段对待更新的应用程序进行更新,以从由具备UDS功能的应用程序控制进入引导加载程序阶段更改为由特定类型报文控制进入引导加载程序阶段,这样即使具备UDS功能的应用程序运行异常,在接收到特定类型报文后仍能够对待更新的应用程序进行更新,从而实现在不依赖具备UDS功能的应用程序的情况下完成应用程序更新。
请参阅图3,其示出了本发明实施例提供的另一种应用程序更新方法的流程图,可以包括以下步骤:
301:在控制器上电复位后,控制控制器执行初始化阶段的第一子阶段,第一子阶段用于对控制器进行第一部分初始化,以在第一部分初始化后使控制器的环境变更为控制器停留在引导加载程序阶段所需环境,例如第一子阶段主要是对控制器的定时器和以太网通信等进行初始化操作。
302:监测控制器在上电复位后的报文接收情况。
303:如果监测到从控制器上电复位之后的预设时间内接收到特定类型报文,控制控制器执行初始化阶段的第二子阶段,第二子阶段用于对控制器进行第二部分初始化,以通过第一子阶段和第二子阶段在引导加载程序阶段前完成对控制器的初始化。
其中第二部分初始化是对控制器的初始化中剩余部分进行初始化,该部分初始化主要与更新代码所需相关,如对更新代码所需的内存管理、诊断协议等进行初始化,由此可知本实施例将控制器的初始化分为两个阶段:第一子阶段和第二子阶段,第一子阶段也称为预初始化,第二子阶段也可以称为后初始化,通过将初始化分为两个阶段可以在监测到接收到特定类型报文之后尽快完成对控制器的初始化,从而减少停留在引导加载程序阶段的时间。
304:在控制器完成初始化阶段的第二子阶段后,控制控制器停留在引导加载程序阶段。
305:获取待更新的应用程序。
306:在引导加载程序阶段对待更新的应用程序进行更新,以完成应用程序更新。
307:如果监测到从控制器上电复位之后的预设时间没有接收到特定类型报文,禁止控制器执行第二子阶段,并控制控制器运行应用程序。
借由上述技术方案可知,将控制器的初始化分成第一子阶段和第二子阶段,在上电复位之后先执行第一子阶段,在监测到预设时间接收到特定类型报文后执行第二子阶段,这样可以缩短在接收到特定报文后的初始化的时间,从而可以尽快进入引导加载程序阶段,以减少停留在引导加载程序阶段的时间。
请参阅图4,其示出了本发明实施例提供的再一种应用程序更新方法的流程图,可以包括以下步骤:
401:控制器上电复位。
402:判断是否接收到重编程请求标志信息,如果没有接收到重编程请求标志信息,执行步骤403,如果接收到重编程请求标志信息,执行步骤405。
可以理解的是:在具备UDS功能的应用程序运行异常的情况下,应用程序可能会忽略或者无法接收到重编程请求,而此时控制器中是有待更新应用程序的,因此本实施例在没有接收到重编程请求标志信息的情况下,可以再基于报文接收情况判断是否需要进行应用程序更新,如控制器是否停留在引导加载程序阶段,这样即使具备UDS功能的应用程序运行异常本实施例仍能够进行应用程序更新。
而具备UDS功能的应用程序运行正常时其能够接收到重编程请求标志信息,可以基于该重编程请求标志信息控制控制器停留在引导加载程序阶段。
基于上述阐述可知,无论具备UDS功能的应用程序运行异常还是正常都能够控制控制器停留在引导加载程序阶段,从而兼容现有基于具备UDS功能的应用程序接收到的重编程请求标志信息控制控制器停留在引导加载程序阶段。
403:监测控制器在上电复位后的报文接收情况。
404:判断报文接收情况是否表明在上电复位后的预设时间接收到特定类型报文,如果接收到特定类型报文,执行步骤405,如果没有接收到特定类型报文,执行步骤408。
405:控制控制器停留在引导加载程序阶段。
406:获取待更新的应用程序。
407:在引导加载程序阶段对待更新的应用程序进行更新,以完成应用程序更新。
408:控制控制器运行应用程序。
对于上述步骤403至步骤408的说明,请参阅上述方法实施例中的相关说明,对此本实施例不再阐述。
借由上述技术方案,无论具备UDS功能的应用程序运行异常还是正常都能够控制控制器停留在引导加载程序阶段,从而在兼容现有控制控制器停留在引导加载程序阶段的基础上,增加基于特定类型报文控制控制器停留在引导加载程序阶段的方式,使得既能够兼容现有技术又能够在具备UDS功能的应用程序运行异常的情况下控制控制器停留在引导加载程序阶段。
此外本实施例提供的应用程序更新方法还能够将上述通过第一子阶段和第二子阶段进行初始化与重编程请求标志信息相结合,如图5所示,示出了本发明实施例提供的再一种应用程序更新方法,可以包括以下步骤:
501:控制器上电复位。
502:控制控制器执行初始化阶段的第一子阶段,第一子阶段用于对控制器进行第一部分初始化。
503:判断是否接收到重编程请求标志信息,如果没有接收到重编程请求标志信息,执行步骤504,如果接收到重编程请求标志信息,执行步骤506。
504:监测控制器在上电复位后的报文接收情况。
505:判断报文接收情况是否表明在上电复位后的预设时间接收到特定类型报文,如果接收到特定类型报文,执行步骤506,如果没有接收到特定类型报文,执行步骤510。
506:控制控制器执行初始化阶段的第二子阶段,第二子阶段用于对控制器进行第二部分初始化,以通过第一子阶段和第二子阶段在引导加载程序阶段前完成对控制器的初始化。
507:控制控制器停留在引导加载程序阶段。
508:获取待更新的应用程序。
509:在引导加载程序阶段对待更新的应用程序进行更新,以完成应用程序更新。
510:禁止控制器执行初始化阶段的第二子阶段,并控制控制器运行应用程序。
当然本实施例提供的应用程序更新方法还可以与待更新的应用程序是否有效相结合来进行应用程序更新,其流程图如图6所示,可以包括以下步骤:
601:控制器上电复位。
602:控制控制器执行初始化阶段的第一子阶段,第一子阶段用于对控制器进行第一部分初始化。
603:判断是否接收到重编程请求标志信息,如果没有接收到重编程请求标志信息,执行步骤604,如果接收到重编程请求标志信息,执行步骤608。
604:获取待更新的应用程序。
605:判断待更新的应用程序是否有效,如果有效,执行步骤606,如果无效,执行步骤。其中对于待更新的应用程序是否有效的判断可参阅现有技术,对此本实施例不再阐述。
606:监测控制器在上电复位后的报文接收情况。
607:判断报文接收情况是否表明在上电复位后的预设时间接收到特定类型报文,如果接收到特定类型报文,执行步骤608,如果没有接收到特定类型报文,执行步骤611。
608:控制控制器执行初始化阶段的第二子阶段,第二子阶段用于对控制器进行第二部分初始化,以通过第一子阶段和第二子阶段在引导加载程序阶段前完成对控制器的初始化。
609:控制控制器停留在引导加载程序阶段。
610:在引导加载程序阶段对待更新的应用程序进行更新,以完成应用程序更新。
611:禁止控制器执行初始化阶段的第二子阶段,并控制控制器运行应用程序。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
与上述方法实施例相对应,本发明实施例还提供一种应用程序更新装置,其结构如图7所示,可以包括:监测单元10、控制单元20、获取单元30和更新单元40。
监测单元10,用于监测控制器在上电复位后的报文接收情况。其中报文接收情况用于表示控制器在上电复位后是否接收到上位机(控制控制器进行应用程序更新的设备)发送的报文以及在接收到上位机发送的报文时确定报文是否是特定类型报文,特定类型报文用于控制控制器停留在引导加载程序阶段。
在本实施例中,监测单元10接收到的报文是从上位机中获取,对于监测单元10与上位机的通信过程以及采用的特定类型报文的说明请参阅上述方法实施例,对此本实施例不再阐述。
控制单元20,用于如果监测到从控制器上电复位之后的预设时间内接收到特定类型报文,控制控制器停留在引导加载程序阶段,其中引导加载程序阶段是控制器用于更新应用程序的阶段,对于任意一个应用程序来说,都可以在引导加载程序阶段进行应用程序更新。
获取单元30,用于获取待更新的应用程序。在本实施例中,待更新的应用程序可以存储在与控制器耦合通信的存储空间中,而判断存储空间中是否存在待更新的应用程序的一种方式可以是:将存储空间中存储的待更新的应用程序与控制器中已安装的应用程序行对比,如将存储空间中存储的待更新的应用程序的标识与控制器中已安装的应用程序的标识,如应用程序的版本和/或应用程序的生成时间进行比对,以确认是否存在待更新的应用程序,如果存在则获取待更新的应用程序,如果不存在则可以控制控制器运行应用程序。
更新单元40,用于在引导加载程序阶段对待更新的应用程序进行更新。
控制单元20,还用于如果监测到从控制器上电复位之后的预设时间没有接收到特定类型报文,控制控制器运行应用程序。如果从控制器上电复位之后的预设时间没有接收到特定类型报文,说明控制器忽略/禁止进行应用程序更新,此时可以控制控制器直接运行应用程序。
借由上述技术方案,在控制器上电复位后监测控制器的报文接收情况,如果监测到从控制器上电复位之后的预设时间内接收到特定类型报文,控制控制器停留在引导加载程序阶段,获取待更新的应用程序,并在引导加载程序阶段对待更新的应用程序进行更新,以从由具备UDS功能的应用程序控制进入引导加载程序阶段更改为由特定类型报文控制进入引导加载程序阶段,这样即使具备UDS功能的应用程序运行异常,在接收到特定类型报文后仍能够对待更新的应用程序进行更新,从而实现在不依赖具备UDS功能的应用程序的情况下完成应用程序更新。
请参阅图8,其示出了本发明实施例提供的另一种应用程序更新装置的结构,在图7基础上还可以包括:第一初始化单元50和第二初始化单元60。
第一初始化单元50,用于在控制器上电复位后,控制控制器执行初始化阶段的第一子阶段,并触发监测单元10,第一子阶段用于对控制器进行第一部分初始化。
第二初始化单元60,用于如果监测到从控制器上电复位之后的预设时间内接收到特定类型报文,控制控制器执行初始化阶段的第二子阶段,第二子阶段用于对控制器进行第二部分初始化,以通过第一子阶段和第二子阶段在引导加载程序阶段前完成对控制器的初始化。
相对应的在第二初始化单元60完成第二子阶段之后触发控制单元20控制控制器停留在引导加载程序阶段。
控制单元20,还用于如果监测到从控制器上电复位之后的预设时间内没有接收到特定类型报文,禁止控制器执行第二子阶段,并控制控制器运行应用程序。
借由上述技术方案可知,将控制器的初始化分成第一子阶段和第二子阶段,在上电复位之后先执行第一子阶段,在监测到预设时间接收到特定类型报文后执行第二子阶段,这样可以缩短在接收到特定报文后的初始化的时间,从而可以尽快进入引导加载程序阶段,以减少停留在引导加载程序阶段的时间。
此外本实施例提供的应用程序更新装置还可以包括:判断单元,用于在控制器上电复位之后,判断是否接收到重编程请求标志信息;如果接收到重编程请求标志信息,触发控制单元20控制控制器停留在引导加载程序阶段;如果没有接收到重编程请求标志信息,触发监测单元10。相对应的,控制单元20,还用于如果没有接收到重编程请求标志信息且监测到从控制器上电复位之后的预设时间内没有接收到特定类型报文,控制控制器运行应用程序。对此本实施例不再加以阐述
本发明实施例还提供一种终端,终端包括:存储器和处理器。
存储器中存储有程序代码。处理器运行程序代码,实现以下功能:
监测控制器在上电复位后的报文接收情况。
如果监测到从控制器上电复位之后的预设时间内接收到特定类型报文,控制控制器停留在引导加载程序阶段。
获取待更新的应用程序。
在引导加载程序阶段对待更新的应用程序进行更新。
对于处理器如何实现上述功能请参阅上述方法实施例中的相关说明,此外处理器还能够实现如图3至图6任意一种应用程序更新方法对应的功能,对此本实施例不再阐述。
本发明实施例还提供一种存储介质,存储介质中存储有计算机程序代码,计算机程序代码执行时实现上述应用程序更新方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种应用程序更新方法,其特征在于,所述方法包括:
在控制器上电复位之后,判断是否接收到重编程请求标志信息;
如果接收到重编程请求标志信息,控制所述控制器停留在引导加载程序阶段;
如果没有接收到重编程请求标志信息,则监测控制器在上电复位后的报文接收情况,所述报文接收情况用于表示所述控制器在上电复位后是否接收到上位机发送的报文,以及在接收到所述上位机发送的报文时确定所述报文是否为特定类型报文,所述特定类型报文用于控制控制器停留在引导加载程序阶段;
如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器停留在引导加载程序阶段;
获取待更新的应用程序;
在所述引导加载程序阶段对所述待更新的应用程序进行更新,以从由具备统一诊断服务UDS功能的应用程序控制进入所述引导加载程序阶段更改为,由特定类型报文控制进入所述引导加载程序阶段。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果监测到从所述控制器上电复位之后的预设时间没有接收到特定类型报文,控制所述控制器运行应用程序。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述控制器上电复位后,控制所述控制器执行初始化阶段的第一子阶段,所述第一子阶段用于对所述控制器进行第一部分初始化;
如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器执行所述初始化阶段的第二子阶段,所述第二子阶段用于对所述控制器进行第二部分初始化,以通过所述第一子阶段和所述第二子阶段在所述引导加载程序阶段前完成对所述控制器的初始化。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:如果监测到从所述控制器上电复位之后的预设时间内没有接收到特定类型报文,禁止所述控制器执行所述第二子阶段,并控制所述控制器运行应用程序。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果没有接收到重编程请求标志信息且监测到从所述控制器上电复位之后的预设时间内没有接收到特定类型报文,控制所述控制器运行应用程序。
6.一种应用程序更新装置,其特征在于,所述装置包括:
监测单元,用于监测控制器在上电复位后的报文接收情况,所述报文接收情况用于表示所述控制器在上电复位后是否接收到上位机发送的报文,以及在接收到所述上位机发送的报文时确定所述报文是否为特定类型报文,所述特定类型报文用于控制控制器停留在引导加载程序阶段;
控制单元,用于如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器停留在引导加载程序阶段;
获取单元,用于获取待更新的应用程序;
更新单元,用于在所述引导加载程序阶段对所述待更新的应用程序进行更新,以从由具备统一诊断服务UDS功能的应用程序控制进入所述引导加载程序阶段更改为,由特定类型报文控制进入所述引导加载程序阶段;
所述装置还包括:
判断单元,用于在控制器上电复位之后,判断是否接收到重编程请求标志信息;如果接收到重编程请求标志信息,触发所述控制单元控制控制器停留在引导加载程序阶段;如果没有接收到重编程请求标志信息,触发所述监测单元。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:第一初始化单元,用于在所述控制器上电复位后,控制所述控制器执行初始化阶段的第一子阶段,所述第一子阶段用于对所述控制器进行第一部分初始化;
第二初始化单元,用于如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器执行所述初始化阶段的第二子阶段,所述第二子阶段用于对所述控制器进行第二部分初始化,以通过所述第一子阶段和所述第二子阶段在所述引导加载程序阶段前完成对所述控制器的初始化。
8.一种终端,其特征在于,所述终端包括:存储器和处理器;
所述存储器中存储有程序代码;所述处理器运行所述程序代码,实现以下功能:
在控制器上电复位之后,判断是否接收到重编程请求标志信息;
如果接收到重编程请求标志信息,控制所述控制器停留在引导加载程序阶段;
如果没有接收到重编程请求标志信息,则监测控制器在上电复位后的报文接收情况,其中报文接收情况用于表示控制器在上电复位后是否接收到上位机发送的报文以及在接收到上位机发送的报文时确定报文是否是特定类型报文,特定类型报文用于控制控制器停留在引导加载程序阶段;
如果监测到从所述控制器上电复位之后的预设时间内接收到特定类型报文,控制所述控制器停留在引导加载程序阶段;
获取待更新的应用程序;
在所述引导加载程序阶段对所述待更新的应用程序进行更新,以从由具备统一诊断服务UDS功能的应用程序控制进入所述引导加载程序阶段更改为,由特定类型报文控制进入所述引导加载程序阶段。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序代码,所述计算机程序代码执行时实现如权利要求1至5任意一项所述的应用程序更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910911301.2A CN110688136B (zh) | 2019-09-25 | 2019-09-25 | 一种应用程序更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910911301.2A CN110688136B (zh) | 2019-09-25 | 2019-09-25 | 一种应用程序更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688136A CN110688136A (zh) | 2020-01-14 |
CN110688136B true CN110688136B (zh) | 2023-12-22 |
Family
ID=69110170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910911301.2A Active CN110688136B (zh) | 2019-09-25 | 2019-09-25 | 一种应用程序更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688136B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764786A (zh) * | 2021-01-04 | 2021-05-07 | 东风商用车有限公司 | 汽车ECU Bootloader的启动方法及装置 |
CN113986393B (zh) * | 2021-11-01 | 2024-07-09 | 北京经纬恒润科技股份有限公司 | 电子控制单元启动方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594613A (zh) * | 2009-06-22 | 2009-12-02 | 中兴通讯股份有限公司 | 终端设备及其升级的方法、系统 |
CN101814036A (zh) * | 2010-03-09 | 2010-08-25 | 广州市聚晖电子科技有限公司 | 一种rf远程升级方法及系统 |
CN102314363A (zh) * | 2011-07-27 | 2012-01-11 | 深圳市航盛电子股份有限公司 | 一种汽车控制器的引导启动方法以及汽车控制器 |
CN103019792A (zh) * | 2012-12-21 | 2013-04-03 | 北京经纬恒润科技有限公司 | 一种应用程序的重编程方法及系统 |
WO2018176692A1 (zh) * | 2017-03-28 | 2018-10-04 | 宁德时代新能源科技股份有限公司 | 系统的固件更新方法、装置和电池管理系统 |
CN109697079A (zh) * | 2018-12-13 | 2019-04-30 | 杭州迪普科技股份有限公司 | 引导加载程序的更新方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010047473A1 (en) * | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
KR20130068630A (ko) * | 2011-12-15 | 2013-06-26 | 한국전자통신연구원 | 임베디드 디바이스의 초기화 방법 및 장치 |
-
2019
- 2019-09-25 CN CN201910911301.2A patent/CN110688136B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594613A (zh) * | 2009-06-22 | 2009-12-02 | 中兴通讯股份有限公司 | 终端设备及其升级的方法、系统 |
CN101814036A (zh) * | 2010-03-09 | 2010-08-25 | 广州市聚晖电子科技有限公司 | 一种rf远程升级方法及系统 |
CN102314363A (zh) * | 2011-07-27 | 2012-01-11 | 深圳市航盛电子股份有限公司 | 一种汽车控制器的引导启动方法以及汽车控制器 |
CN103019792A (zh) * | 2012-12-21 | 2013-04-03 | 北京经纬恒润科技有限公司 | 一种应用程序的重编程方法及系统 |
WO2018176692A1 (zh) * | 2017-03-28 | 2018-10-04 | 宁德时代新能源科技股份有限公司 | 系统的固件更新方法、装置和电池管理系统 |
CN109697079A (zh) * | 2018-12-13 | 2019-04-30 | 杭州迪普科技股份有限公司 | 引导加载程序的更新方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110688136A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11354114B2 (en) | Updating system, electronic control unit, updating management device, and updating management method | |
US9507604B2 (en) | Boot method and boot system | |
US20030121032A1 (en) | Method and system for remotely updating function of household device | |
CN106713384B (zh) | 一种车载终端外设程序远程更新方法及系统 | |
CN110083374B (zh) | 一种升级回滚方法、系统及终端设备 | |
US20050278518A1 (en) | Electronic system capable of using universal plug and play (upnp) protocol to update software program and method thereof | |
CN106020875B (zh) | 嵌入式终端的固件更新管理方法和装置 | |
US20090077634A1 (en) | Firmware update method and system using the same | |
US20120117557A1 (en) | Method and system for upgrading wireless data card | |
US20210019133A1 (en) | Deploying device campaign updates to iot devices | |
JP7006335B2 (ja) | 車載通信システム、車載通信方法、およびプログラム | |
RU2015107724A (ru) | Система и метод управления домашним шлюзом с помощью интеллектуального терминала | |
CN110688136B (zh) | 一种应用程序更新方法及装置 | |
US10445503B2 (en) | Secure persistent software updates | |
CN106549789B (zh) | 一种实现服务器安装的方法及系统 | |
CN111722860A (zh) | 基于有穷状态机的ota升级方法和装置 | |
US20090019435A1 (en) | System and method for over the air programming | |
JP7345921B2 (ja) | マスタースレーブアーキテクチャのota差分更新方法とシステム | |
CN113517996B (zh) | 一种网卡设备轮询方法、系统及相关装置 | |
CN104991800A (zh) | 一种未联网设备固件升级方法、装置和系统 | |
CN110865819B (zh) | 一种os的安装方法、服务器和系统 | |
CN110795159B (zh) | 一种防止车载ecu错误升级无法重刷的方法及存储设备 | |
WO2015154578A1 (zh) | 单板的boot程序远程升级方法、装置及系统 | |
CN102622254B (zh) | 电视机宕机处理方法和系统 | |
CN106919423B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020 Applicant after: Beijing Jingwei Hirain Technologies Co.,Inc. Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101 Applicant before: Beijing Jingwei HiRain Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |