一种嵌入式设备升级方法和嵌入式设备与流程

文档序号:24549834发布日期:2021-04-06 12:02阅读:87来源:国知局
一种嵌入式设备升级方法和嵌入式设备与流程

本发明实施例涉及嵌入式领域,特别涉及一种嵌入式设备升级方法和嵌入式设备。



背景技术:

当前一个完整的嵌入式设备中软件主要包含引导程序、主应用程序和升级程序三大模块。引导程序是上电后运行最早的程序,主要用于初始化底层硬件,并负责引导操作系统、应用程序的校验和启动运行;主应用程序是引导程序启动运行的主程序,可以和用户进行交互,具有可视的用户界面;升级程序是引导程序启动运行的辅助程序,主要用于自升级和主应用程序升级,以解决软件bug和增加新功能,满足用户的新需求,提高用户体验。

目前的嵌入式设备升级方案一般是升级程序负责自升级和主应用程序升级,为了保证掉电不损坏设备,一般会备份至少一个升级程序,当升级程序自升级过程中掉电导致升级程序损坏,下次启动引导程序检测到升级程序损坏后可以启动备份的升级程序继续完成上次掉电未完成的升级。此方案的缺点是需要额外的空间备份升级程序,当嵌入式设备成本有限,空间不足无法额外存储备份的升级程序时,无法满足安全的升级需求。



技术实现要素:

本发明实施例的目的是提供一种嵌入式设备软件升级方法、嵌入式设备和存储介质,能在不额外占用空间的前提下、实现升级软件的安全升级。

第一方面,本发明实施例提供了一种嵌入式设备升级方法,所述方法包括以下步骤:

运行主应用程序;

在所述主应用程序中确认升级程序是否需要升级;

如果需要升级,则下载所述升级程序的第一升级包,并基于所述第一升级包更新所述升级程序。

在一些实施例中,所述方法还包括:

在所述升级程序中对所述主应用程序进行升级。

在一些实施例中,所述在所述升级程序中对所述主应用程序进行升级,包括:

在所述主应用程序中确认所述主应用程序是否需要升级;

如果所述主应用程序需要升级,则写入升级标志位,并重新启动所述嵌入式设备;

在所述嵌入式设备上电时,运行引导程序;

在所述引导程序中读取所述升级标志位,并基于所述升级标志位确定所述主应用程序是否需要升级;

如果确定所述主应用程序需要升级,则启动升级程序;

在所述升级程序中下载所述主应用程序的第二升级包,并基于所述第二升级包更新所述主应用程序。

在一些实施例中,在所述确认升级程序是否需要升级以及确认所述主应用程序是否需要升级之前,所述方法还包括:

检测是否需要升级;

若需要升级,则下载配置文件,并根据所述配置文件判断是主应用程序升级还是升级程序升级。

在一些实施例中,所述方法还包括:

若检测到不需要升级时,则等待预设时间后再继续判断是否需要升级。

在一些实施例中,所述方法还包括:

清除所述升级标志位。

在一些实施例中,所述方法还包括:

如果在引导程序中基于所述升级标志位确定所述主应用程序不需要升级,则启动所述主应用程序。

在一些实施例中,所述方法还包括:

在所述升级程序更新完成后,进行提示。

第二方面,本发明实施例提供了一种嵌入式设备,所述嵌入式设备包括:

至少一个处理器,以及存储器,所述存储器与所述至少一个处理器通信连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的方法。

第三方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被所述嵌入式设备执行时,使所述嵌入式设备执行上述的方法。

本申请与现有技术相比,至少具有以下有益效果:本发明实施例的嵌入式设备升级方法和嵌入式设备,通过在主应用程序中对升级程序进行升级,既可以不占用额外的空间存储备份升级程序,又能避免升级程序自升级过程中掉电导致升级程序被损害无法升级的问题,能实现升级程序的安全升级,从而达到了低成本并且防掉电安全升级升级程序的目的。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明实施例嵌入式设备的硬件结构图;

图2是本发明嵌入式设备升级方法一实施例的流程图;

图3是本发明嵌入式设备升级方法的一个实施例中主应用程序升级过程的流程图;

图4是本发明嵌入式设备升级方法的另一实施例的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例的嵌入式设备升级方法,可以应用于嵌入式设备,图1示出了嵌入式设备的硬件结构,如图1所示,嵌入式设备10包括存储器11和处理器12。其中,存储器11作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器11可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器11可选包括相对于处理器12远程设置的存储器,这些远程存储器可以通过网络连接至嵌入式设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器12是嵌入式设备10的控制中心,利用各种接口和线路连接整个嵌入式设备的各个部分,通过运行或执行存储在存储器11内的软件程序和/或模块,以及调用存储在存储器11内的数据,执行嵌入式设备10的各种功能和处理数据,从而对嵌入式设备10进行整体监控,例如实现本发明任一实施例所述的嵌入式设备升级方法。

处理器12可以为一个或多个,图1中以一个处理器12为例。处理器12和存储器11可以通过总线或者其他方式连接,图1中以通过总线连接为例。处理器12可包括中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路(asic)、控制器、现场可编程门阵列(fpga)设备等。处理器12还可以被实现为计算设备的组合,例如,dsp与微处理器的组合、多个微处理器、结合dsp核心的一个或多个微处理器、或者任何其它此类配置。

本发明实施例还提供了一种嵌入式设备升级方法,可以应用于图1所示的嵌入式设备,如图2所示,所述方法包括

s101:运行主应用程序;

s102:在所述主应用程序中确认升级程序是否需要升级;

s103:如果需要升级,则下载所述升级程序的第一升级包,并基于所述第一升级包更新所述升级程序。

即在主应用程序中执行升级程序的升级,先确认升级程序是否需要升级,如果需要升级,则获取第一升级包,并基于第一升级包进行升级。其中,所述第一升级包可以从远端服务器在线下载,在另一些实施例中,也可以直接存储于嵌入式设备中方便调用。

该实施例把升级程序的升级过程放入主应用程序中执行,既可以不占用额外的空间存储备份升级程序,又能避免升级程序自升级过程中掉电导致升级程序被损害无法升级的问题,能实现升级程序的安全升级,从而达到了低成本并且防掉电安全升级升级程序的目的。

在另一些实施例中,所述方法还包括对主应用程序进行升级的步骤,主应用程序可以在升级程序中进行升级,如图3所示,主应用程序升级具体包括:

s201:在所述主应用程序中确认所述主应用程序是否需要升级;

s202:如果所述主应用程序需要升级,则写入升级标志位,并重新启动所述嵌入式设备;

s203:在所述嵌入式设备上电时,运行引导程序;

s204:在所述引导程序中读取所述升级标志位,并基于所述升级标志位确定所述主应用程序是否需要升级;

s205:如果确定所述主应用程序需要升级,则启动升级程序;

s206:在所述升级程序中下载所述主应用程序的第二升级包,并基于所述第二升级包更新所述主应用程序。

即在本发明实施例中,在升级程序中执行主应用程序的升级。首先在正常执行主应用程序时,确认主应用程序是否需要升级,如果需要升级,则写入升级标志位,并重新启动嵌入式设备。嵌入式设备重新启动后,会先进入引导程序,引导程序通过读取所述升级标志位,即可以判断主应用程序是否需要升级,如果主应用程序需要升级,则通过引导程序启动升级程序,并在升级程序中进行主应用程序的升级。

其中,升级标志位的引入可以让嵌入式设备重新启动后,引导程序可以通过升级标志位判断主应用程序是否需要升级,如果主应用程序需要升级,因为需在升级程序中对主应用程序进行升级,则需启动升级程序,并在升级程序中完成对主应用程序的升级。如果主应用程序不需要升级,则可以直接进入主应用程序。在另一些实施例中,当主应用程序升级结束后,升级程序可以清除升级标志位,使得主应用程序不会无限更新。

本发明实施例中,主应用程序和升级程序相互升级,既可以不占用额外的空间存储备份升级程序,又能避免升级程序自升级过程中掉电导致升级程序被损害无法升级的问题,能实现升级程序和主应用程序的安全升级。

其中,所述第二升级包可以从远端服务器在线下载,在另一些实施例中,也可以直接存储于嵌入式设备中方便调用。

其中,在一些实施例中,主应用程序可以通过读取配置文件判断是主应用程序升级还是升级程序升级。主应用程序可以先判断是否需要升级,如果需要升级,则下载配置文件,并根据所述配置文件判断是主应用程序升级还是升级程序升级。如果不需要升级,则等待预设时间(例如1分钟)后再判断是否需要升级。

以下以一具体实施例为例说明本发明嵌入式设备升级方法的执行过程,如图3所示,所述方法包括:

步骤s301,嵌入式设备上电,保持通电状态:

步骤s302,运行引导程序;

步骤s303,读取升级标志位;

步骤s304,根据升级标志位判断主应用程序是否升级,若升级,则执行步骤s315,若不升级,则执行步骤s305;

步骤s305,启动主应用程序;

步骤s306,判断是否有升级,若有升级,则执行步骤s307,若不升级,则执行步骤s312;

步骤s307,获取配置文件;

步骤s308,根据配置文件判断是主应用程序升级还是升级程序升级,如果是升级程序升级,则执行步骤s309,如果是应用程序升级,则执行步骤s313;

步骤s309,升级程序升级,下载第一升级包;

步骤s310,更新升级程序;

步骤s311,升级完成,发出提示;

步骤s312,等待一段预设时间,继续执行步骤s306判断是否有升级;

步骤s313,写入升级标志位;

步骤s314,重启;

步骤s315,启动升级程序;

步骤s316,下载第二升级包;

步骤s317,更新主应用程序;

步骤s318,清除标志位;

步骤s319,重启。

该实施例中,主应用程序与升级程序互相升级,并设置了升级标志位,用于判断主应用程序是否升级,使程序设计更方便,同时也实现了主应用程序和升级程序在不用备份的条件下防掉电安全升级。

本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图1中的一个处理器11,可使得上述一个或多个处理器可执行上述任意方法实施例中的嵌入式设备升级方法,例如,执行以上描述的图2至图4所示的各个步骤;也可实现图1所述的各个装置的功能。

本发明实施例还提供了一种计算机程序产品,包括存储在非易失性计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述嵌入式设备执行上述任意方法实施例中的嵌入式设备升级方法,例如,执行以上描述的图2至图4的方法步骤,实现图1的各装置的功能。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1