CN110618824B - 一种软件升级方法、装置、介质和设备 - Google Patents

一种软件升级方法、装置、介质和设备 Download PDF

Info

Publication number
CN110618824B
CN110618824B CN201810638510.XA CN201810638510A CN110618824B CN 110618824 B CN110618824 B CN 110618824B CN 201810638510 A CN201810638510 A CN 201810638510A CN 110618824 B CN110618824 B CN 110618824B
Authority
CN
China
Prior art keywords
code
entry address
program module
code entry
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.)
Active
Application number
CN201810638510.XA
Other languages
English (en)
Other versions
CN110618824A (zh
Inventor
涂晓强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Hangzhou Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201810638510.XA priority Critical patent/CN110618824B/zh
Publication of CN110618824A publication Critical patent/CN110618824A/zh
Application granted granted Critical
Publication of CN110618824B publication Critical patent/CN110618824B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及通信领域,尤其涉及一种软件升级方法、装置、介质和设备。根据本发明实施例提供的方案,在对程序模块更新过程中,无需覆盖原始代码,而是下载保存更新代码,并将更新代码对应的代码入口地址,写入该程序模块对应的代码入口地址列表。使得需要对该程序模块进行调用时,可以根据代码入口地址列表,跳转到最近一次写入的代码入口地址并执行相应的代码。减少由于覆盖原始代码导致的软件系统异常和损坏,并减少覆盖出错导致的软件系统崩溃,提高嵌入式软件升级过程中的安全性和稳定性。

Description

一种软件升级方法、装置、介质和设备
技术领域
本发明涉及通信领域,尤其涉及一种软件升级方法、装置、介质和设备。
背景技术
在嵌入式软件系统中,一些关键性的程序模块会随着Bug的修复、功能的更新等,存在升级需求,以实现更新。在线自动升级是目前主流的程序模块升级方案。
现有的在线自动升级过程中,需要覆盖程序模块原有的代码。覆盖过程中,由于软件系统处在运行中,有时会产生冲突导致软件系统异常,甚至损坏整个软件系统。同时,由于需要覆盖掉程序模块原来的代码,一旦出错会导致整个软件系统发生崩溃。
发明内容
本发明实施例提供一种软件升级方法、装置、介质和设备,用于解决现有嵌入式软件升级过程中,安全性和稳定性较差的问题。
一种软件升级方法,所述方法包括:
下载需要更新的程序模块对应的更新代码;
存储下载的所述更新代码,并将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表;
其中,所述代码入口地址列表用于在接收到调用所述程序模块的请求时,该请求中携带所述程序模块标识,确定所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;并用于跳转到所述最近一次写入的代码入口地址,执行相应的代码。
一种软件升级装置,所述装置包括:
下载模块,用于下载需要更新的程序模块对应的更新代码;
存储模块,用于存储所述下载模块下载的所述更新代码;
映射模块,用于将所述存储模块存储的更新代码对应的代码入口地址,写入所述存储模块保存的所述程序模块的程序模块标识对应的代码入口地址列表;
调用模块,用于在接收到调用所述程序模块的请求时,该请求中携带所述程序模块标识,确定所述存储模块保存的、所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;并跳转到所述最近一次写入的代码入口地址,执行所述存储模块存储的相应的代码。
一种非易失性计算机存储介质,所述计算机存储介质存储有可执行程序,该可执行程序被处理器执行实现上所述方法的步骤。
一种软件升级设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述程序时实现上所述方法的步骤。
根据本发明实施例提供的方案,在对程序模块更新过程中,无需覆盖原始代码,而是下载保存更新代码,并将更新代码对应的代码入口地址,写入该程序模块对应的代码入口地址列表。使得需要对该程序模块进行调用时,可以根据代码入口地址列表,跳转到最近一次写入的代码入口地址并执行相应的代码。减少由于覆盖原始代码导致的软件系统异常和损坏,并减少覆盖出错导致的软件系统崩溃,提高嵌入式软件升级过程中的安全性和稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的软件升级方法的步骤流程图;
图2为本发明实施例一提供的代码映射表的结构示意图;
图3为本发明实施例二提供的软件升级装置的结构示意图;
图4为本发明实施例三提供的软件升级设备的结构示意图。
具体实施方式
针对现有技术中,嵌入式系统中,覆盖原始代码的软件升级方案,经常会导致软件异常、损坏或崩溃的问题,本发明实施例提出一种无须覆盖原始代码的软件升级方案。通过另外存储需要更新的程序模块对应的更新代码,并在该程序模块对应的代码入口地址列表中,增加更新代码对应的代码入口地址的方式,实现软件升级。
进一步优选的,可以为程序模块对应的每段代码设置一个代码调用计数器,每次调用一段代码时,将该代码对应的代码调用计数器增加指定数值,退出对该段代码的调用时,则可以将该代码对应的代码调用计数器减少指定数值。这样,一旦有更新代码,可以将代码调用计数器为设定数值的原始代码删除,回收存储空间的同时,由于被删除的原始代码的调用次数较少,可以大大减少删除原始代码导致的软件系统的安全性和稳定性问题。特别的,在原始代码的调用次数为0时,删除原始代码,可以有效提高软件系统的安全性和稳定性。
进一步的,在删除原始代码的同时,还可以删除原始代码对应的代码入口地址和代码调用计数器,从而进一步节约存储空间,并有利于程序模块的重复升级。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
如图1所示,为本发明实施例一提供的软件升级方法的步骤流程图,该方法包括以下步骤:
步骤101、下载更新代码。
在本步骤中,可以下载需要更新的程序模块对应的更新代码。具体的,可以通过有线或无线的方式,下载需要更新的程序模块对应的更新代码。
步骤102、存储更新代码,并更新代码入口地址列表。
在本步骤中,可以存储下载的所述更新代码,并将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表。
所述代码入口地址列表用于在接收到调用所述程序模块的请求时,该请求中携带所述程序模块标识,所述程序模块标识可以但不限于为程序模块名称或编号,确定所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;并用于跳转到所述最近一次写入的代码入口地址,执行相应的代码。
具体的,如果更新代码入口地址列表之前,接收到调用所述程序模块的请求,则可以确定所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;跳转到该最近一次写入的代码入口地址并执行相应的原始代码。
需要说明的是,本次程序模块更新之前,已经保存的该程序模块的每一段代码,都可以理解为一段原始代码。即可以理解为,将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之前,该代码入口地址列表中的每一个代码入口地址对应的代码,都可以理解为一段原始代码。
当然,如果更新代码入口地址列表之后,接收到调用所述程序模块的请求,则可以确定所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;跳转到该最近一次写入的代码入口地址并执行更新代码。
需要说明的是,如果程序模块再次更新后,上一次更新对应的更新代码,相对于新下载的更新代码,可以理解为原始代码。
在本实施例中,在接收到调用程序模块的请求时,如果已经下载并保存了程序模块对应的更新代码,可以根据更新后的代码入口地址列表,调用该程序模块对应的更新代码。保证调用的代码可以实现最新的程序模块功能。
如果接收到调用程序模块的请求时,没有更新代码入口地址列表,则可以根据代码入口地址列表,调用该程序模块最近一次下载的代码,保证调用的代码可以实现相对最新的程序模块功能。且即使更新代码在下载过程中,也不会影响程序模块功能的实现,保证了软件系统的安全性和稳定性。
进一步的,在本实施例中,可以针对每个代码入口地址对应的代码(原始代码或更新代码),均分别设置对应的代码调用计数器。根据接收到调用程序模块的时间,执行相应的代码时,则将为该代码设置的代码调用计数器增加指定数值,如,加1。并可以在退出本次对所述程序模块的调用时,即,停止执行该代码时,将该代码调用计数器减少指定数值,如,减1。
这样使得下载保存更新代码之后,可以根据代码调用计数器确定每段原始代码正在被执行的次数。根据原始代码正在被执行的次数,确定是否可以将该段原始代码删除,以降低删除旧代码导致的软件系统的安全性和稳定性风险。
具体的,跳转到该最近一次写入的代码入口地址并执行相应的原始代码时,将为所述相应的原始代码设置的代码调用计数器增加指定数值;并可以在退出本次对所述程序模块的调用时,将该代码调用计数器减少指定数值。将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之后,在所述代码调用计数器为设定数值,如,0时,将所述相应的原始代码删除。
将所述相应的原始代码删除之后,还可以进一步删除所述代码调用计数器,以及所述代码入口地址列表中所述相应的原始代码对应的代码入口地址。以进一步减少存储空间的占用,并有利于程序模块的重复升级。
当然,跳转到该最近一次写入的代码入口地址并执行所述更新代码时,也可以将为所述更新代码设置的代码调用计数器增加指定数值;并可以在退出本次对所述程序模块的调用时,将该代码调用计数器减少指定数值。下一次下载保存更新代码后,上一次保存的更新代码可以作为原始代码,并可以依据对应的代码调用计数器,将该原始代码(上一次保存的更新代码)删除。
较优的,程序模块标识和代码入口地址列表的对应关系,以及每个代码入口地址对应的代码(即该代码对应的代码入口地址)与为其设置的代码调用计数器的对应关系可以保存在一张代码映射表中。如图2所示,为本实施例一提供的代码映射表结构示意图,代码映射表的结构可以但不限于如图2所示。
如图2所示的代码映射表以需要升级的软件系统包括两个程序模块为例进行说明。其中,一个程序模块标识可以记为1,另一个程序模块标识可以记为2。
以程序模块标识为1的程序模块对应的代码入口地址列表中包括三个代码入口地址为例,可以分别记为代码入口地址1、代码入口地址2和代码入口地址3(可以但不限于理解为代码入口地址3的写入时间晚于代码入口地址2,代码入口地址2的写入时间晚于代码入口地址1)。并可以将为代码入口地址1对应的代码设置的代码调用计数器记为11,将为代码入口地址2对应的代码设置的代码调用计数器记为代码调用计数器12,将为代码入口地址3对应的代码设置的代码调用计数器记为代码调用计数器13。
以程序模块标识为2的程序模块对应的代码入口地址列表中包括两个代码入口地址为例,可以分别记为代码入口地址1和代码入口地址2。并可以将为代码入口地址1对应的代码设置的代码调用计数器记为21,将为代码入口地址2对应的代码设置的代码调用计数器记为代码调用计数器22。
假设此时接收到调用程序模块标识为1的程序模块的请求,则可以确定出最近一次写入的代码入口地址为代码入口地址3,可以跳转到代码入口地址3并执行相应的代码。并可以将为代码入口地址3对应的代码设置的代码调用计数器13加1。
并可以进一步在退出本次对程序模块标识为1的程序模块调用时,将代码调用计数器13减1。退出本次对程序模块标识为1的程序模块调用可能发生在后续对程序模块标识为1的程序模块再次进行更新之前,也可能发生在后续对程序模块标识为1的程序模块再次进行更新之后。
如果后续对程序模块标识为1的程序模块再次进行更新,下载保存了新的更新代码,在代码入口地址列表中写入代码入口地址4,则可以在代码调用计数器13为0时,将代码调用计数器13对应的代码删除。并可以进一步删除代码调用计数器13和对应的代码入口地址3。
当然,一般的,如果采取在代码调用计数器为设定数值时,将相应的原始代码删除的机制,则代码映射表一般仅会存在两个存在对应代码的代码入口地址,即最新写入的代码入口地址,以及上一次写入的代码入口地址,其他的代码入口地址对应的代码都会被及时删除,以节约存储空间,并有利于重复升级的实现。
实施例一提供了一种安全、简单、高效的程序模块代码升级的方法,能够进行在线的自动代码升级,算法原理简单,实现容易。同时不会覆盖掉老的代码,保证了系统的安全性和稳定性。
需要说明的是,本发明实施例提供的方案可以用于解决嵌入式软件系统升级过程中,存在的安全性和稳定性风险。但本发明实施例提供的方案,不限于应用于嵌入式软件系统升级,也可以用于其它任何系统中的软件升级。
基于同一发明构思,本发明实施例还提供一种与实施例一对应的装置、介质和设备,由于该装置、介质和设备解决问题的原理与本发明实施例一提供的方法相似,因此其实施可以参见方法的实施,重复之处不再赘述。
实施例二
如图3所示,为本发明实施例二提供的软件升级装置的结构示意图,包括:
下载模块11用于下载需要更新的程序模块对应的更新代码;
存储模块12用于存储所述下载模块下载的所述更新代码;
映射模块13用于将所述存储模块存储的更新代码对应的代码入口地址,写入所述存储模块保存的所述程序模块的程序模块标识对应的代码入口地址列表;
调用模块14用于在接收到调用所述程序模块的请求时,该请求中携带所述程序模块标识,确定所述存储模块保存的、所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;并跳转到所述最近一次写入的代码入口地址,执行所述存储模块存储的相应的代码。
所述调用模块14具体用于若在所述映射模块将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之前,接收到调用所述程序模块的请求,则确定所述存储模块保存的、所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;跳转到该最近一次写入的代码入口地址并执行所述存储模块存储的相应的原始代码。
所述调用模块14还用于跳转到该最近一次写入的代码入口地址并执行相应的原始代码时,将所述存储模块中为所述相应的原始代码设置的代码调用计数器增加指定数值;并在退出本次对所述程序模块的调用时,将该代码调用计数器减少指定数值;
所述存储模块12还用于所述映射模块将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之后,在所述代码调用计数器为设定数值时,将所述相应的原始代码删除。
所述存储模块12还用于删除所述代码调用计数器,以及所述代码入口地址列表中所述相应的原始代码对应的代码入口地址。
所述调用模块14具体用于若在所述映射模块将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之后,接收到调用所述程序模块的请求,则确定所述存储模块保存的、所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;跳转到该最近一次写入的代码入口地址并执行所述存储模块存储的所述更新代码。
所述调用模块14还用于跳转到该最近一次写入的代码入口地址并执行所述更新代码时,将所述存储模块中为所述更新代码设置的代码调用计数器增加指定数值;并在退出本次对所述程序模块的调用时,将该代码调用计数器减少指定数值。
实施例三
本发明实施例三提供一种软件升级设备,该设备的结构可以如图4所示,包括存储器21、处理器22及存储在存储器上的计算机程序,所述处理器22执行所述程序时实现本发明实施例一提供方法的步骤。
可选的,所述处理器22具体可以包括中央处理器(CPU)、特定应用集成电路(ASIC,application specific integrated circuit),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(FPGA,field programmable gate array)开发的硬件电路,可以是基带处理器。
可选的,所述处理器22可以包括至少一个处理核心。
可选的,所述存储器21可以包括只读存储器(ROM,read only memory)、随机存取存储器(RAM,random access memory)和磁盘存储器。存储器21用于存储至少一个处理器22运行时所需的数据。存储器21的数量可以为一个或多个。
本发明实施例四提供一种非易失性计算机存储介质,所述计算机存储介质存储有可执行程序,当可执行程序被处理器执行时,实现本发明实施例一提供方法的步骤。
在具体的实施过程中,计算机存储介质可以包括:通用串行总线闪存盘(USB,Universal Serial Bus flash drive)、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的存储介质。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种软件升级方法,其特征在于,所述方法包括:
下载需要更新的程序模块对应的更新代码;
存储下载的所述更新代码,并将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表;
其中,所述代码入口地址列表用于在接收到调用所述程序模块的请求时,该请求中携带所述程序模块标识,确定所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;并用于跳转到所述最近一次写入的代码入口地址,执行相应的代码;
其中,若在将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之前,接收到调用所述程序模块的请求,所述最近一次写入的代码入口地址为原始代码的代码入口地址;
若在将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之后,接收到调用所述程序模块的请求,所述最近一次写入的代码入口地址为所述更新代码的代码入口地址。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
跳转到该最近一次写入的代码入口地址并执行相应的原始代码时,将为所述相应的原始代码设置的代码调用计数器增加指定数值;
并在退出本次对所述程序模块的调用时,将该代码调用计数器减少指定数值;
将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之后,所述方法还包括:
在所述代码调用计数器为设定数值时,将所述相应的原始代码删除。
3.如权利要求2所述的方法,其特征在于,将所述相应的原始代码删除之后,所述方法还包括:
删除所述代码调用计数器,以及所述代码入口地址列表中所述相应的原始代码对应的代码入口地址。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
跳转到该最近一次写入的代码入口地址并执行所述更新代码时,将为所述更新代码设置的代码调用计数器增加指定数值;
并在退出本次对所述程序模块的调用时,将该代码调用计数器减少指定数值。
5.一种软件升级装置,其特征在于,所述装置包括:
下载模块,用于下载需要更新的程序模块对应的更新代码;
存储模块,用于存储所述下载模块下载的所述更新代码;
映射模块,用于将所述存储模块存储的更新代码对应的代码入口地址,写入所述存储模块保存的所述程序模块的程序模块标识对应的代码入口地址列表;
调用模块,用于在接收到调用所述程序模块的请求时,该请求中携带所述程序模块标识,确定所述存储模块保存的、所述程序模块标识对应的代码入口地址列表中,最近一次写入的代码入口地址;并跳转到所述最近一次写入的代码入口地址,执行所述存储模块存储的相应的代码;
其中,若在将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之前,接收到调用所述程序模块的请求,所述最近一次写入的代码入口地址为原始代码的代码入口地址;
若在将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之后,接收到调用所述程序模块的请求,所述最近一次写入的代码入口地址为所述更新代码的代码入口地址。
6.如权利要求5所述的装置,其特征在于,所述调用模块,还用于跳转到该最近一次写入的代码入口地址并执行相应的原始代码时,将所述存储模块中为所述相应的原始代码设置的代码调用计数器增加指定数值;并在退出本次对所述程序模块的调用时,将该代码调用计数器减少指定数值;
所述存储模块,还用于所述映射模块将所述更新代码对应的代码入口地址,写入所述程序模块的程序模块标识对应的代码入口地址列表之后,在所述代码调用计数器为设定数值时,将所述相应的原始代码删除。
7.如权利要求6所述的装置,其特征在于,所述存储模块,还用于删除所述代码调用计数器,以及所述代码入口地址列表中所述相应的原始代码对应的代码入口地址。
8.如权利要求5所述的装置,其特征在于,所述调用模块,还用于跳转到该最近一次写入的代码入口地址并执行所述更新代码时,将所述存储模块中为所述更新代码设置的代码调用计数器增加指定数值;并在退出本次对所述程序模块的调用时,将该代码调用计数器减少指定数值。
9.一种非易失性计算机存储介质,其特征在于,所述计算机存储介质存储有可执行程序,该可执行程序被处理器执行实现权利要求1~4任一所述方法的步骤。
10.一种软件升级设备,其特征在于,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述程序时实现权利要求1~4任一所述方法的步骤。
CN201810638510.XA 2018-06-20 2018-06-20 一种软件升级方法、装置、介质和设备 Active CN110618824B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810638510.XA CN110618824B (zh) 2018-06-20 2018-06-20 一种软件升级方法、装置、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810638510.XA CN110618824B (zh) 2018-06-20 2018-06-20 一种软件升级方法、装置、介质和设备

Publications (2)

Publication Number Publication Date
CN110618824A CN110618824A (zh) 2019-12-27
CN110618824B true CN110618824B (zh) 2023-07-21

Family

ID=68921063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810638510.XA Active CN110618824B (zh) 2018-06-20 2018-06-20 一种软件升级方法、装置、介质和设备

Country Status (1)

Country Link
CN (1) CN110618824B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732308B (zh) * 2020-12-31 2024-05-31 广州万协通信息技术有限公司 一种模块化的固件升级方法、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2877454A1 (fr) * 2004-11-04 2006-05-05 Gemplus Sa Procede de chargement d'un code logiciel en langage intermediaire oriente objet dans un appareil portatif
US7886287B1 (en) * 2003-08-27 2011-02-08 Avaya Inc. Method and apparatus for hot updating of running processes
US9164754B1 (en) * 2013-12-18 2015-10-20 Amazon Technologies, Inc. Runtime patching of native-code programs
CN106874022A (zh) * 2015-12-11 2017-06-20 中兴通讯股份有限公司 一种热补丁注入方法及装置
CN108108617A (zh) * 2017-12-21 2018-06-01 中国人民解放军战略支援部队信息工程大学 基于静态指令流跟踪的导入表修复方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211265A (zh) * 2006-12-28 2008-07-02 英华达(上海)电子有限公司 一种终端嵌入式系统的软件更新方法和装置
CN101414295A (zh) * 2007-10-15 2009-04-22 北京瑞星国际软件有限公司 数据库的升级方法
CN103246528A (zh) * 2012-02-10 2013-08-14 中兴通讯股份有限公司 软件升级方法和装置
CN103309683B (zh) * 2012-03-07 2016-08-03 京信通信系统(中国)有限公司 硬件设备的软件补丁嵌入方法及装置
CN104239082B (zh) * 2013-06-20 2019-01-15 上海博达数据通信有限公司 嵌入式系统的热补丁实现方法
CN105468410B (zh) * 2015-11-24 2019-02-12 小米科技有限责任公司 系统升级方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886287B1 (en) * 2003-08-27 2011-02-08 Avaya Inc. Method and apparatus for hot updating of running processes
FR2877454A1 (fr) * 2004-11-04 2006-05-05 Gemplus Sa Procede de chargement d'un code logiciel en langage intermediaire oriente objet dans un appareil portatif
US9164754B1 (en) * 2013-12-18 2015-10-20 Amazon Technologies, Inc. Runtime patching of native-code programs
CN106874022A (zh) * 2015-12-11 2017-06-20 中兴通讯股份有限公司 一种热补丁注入方法及装置
CN108108617A (zh) * 2017-12-21 2018-06-01 中国人民解放军战略支援部队信息工程大学 基于静态指令流跟踪的导入表修复方法及装置

Also Published As

Publication number Publication date
CN110618824A (zh) 2019-12-27

Similar Documents

Publication Publication Date Title
CN106708543B (zh) 一种操作系统的ota升级方法及装置
CN109933348B (zh) 一种电子控制单元中Bootloader的更新方法和装置
CN109358882B (zh) 一种电视终端进行固件升级的方法及装置
CN109358887B (zh) 一种单片机程序的在线升级方法、装置及系统
CN109062790B (zh) 车载终端蓝牙固件的升级测试方法
EP3179366A1 (en) Method and terminal for ota updating
CN105786549A (zh) 智能设备及其升级方法
CN103365676B (zh) 通信设备的软件升级方法及装置
CN112540725A (zh) 非易失性数据存储方法、嵌入式系统以及存储介质
CN115061713A (zh) 升级电子设备的方法及装置
CN110764486B (zh) 车载控制器的运行方法、装置、车载控制器及存储介质
CN110618824B (zh) 一种软件升级方法、装置、介质和设备
CN105354061A (zh) 一种保护mcu工作程序的方法及系统
CN109032612B (zh) 混合型应用的接口调用方法、装置及计算机可读存储介质
CN116578327B (zh) 一种程序更新方法、装置及电子设备和存储介质
CN113220319A (zh) 一种数据更新方法、装置及车辆
CN109343886B (zh) 一种升级bios的方法、装置以及设备
CN110704076A (zh) 数据处理方法和装置、车载控制器及计算机可读存储介质
CN110688135A (zh) 一种控制器的程序刷写方法、装置及介质
CN115934130A (zh) 一种ecu升级方法、装置、设备及介质
CN113867823A (zh) 车载终端配置参数的设置方法、装置及电子设备
CN114546455A (zh) 一种双分区的mcu软件升级方法及装置
CN113010195B (zh) 一种系统升级方法、存储介质及终端设备
CN110309018B (zh) 充电设备系统切换方法、充电设备及可读存储介质
CN112732301A (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