基于嵌入式的更新方法及装置与流程

文档序号:15517467发布日期:2018-09-25 18:42阅读:170来源:国知局

本发明涉及嵌入式技术领域,具体而言,涉及一种基于嵌入式的更新方法及装置。



背景技术:

现在工业触摸屏上更新应用程序通常是在pc上下载一些专用工具,进行一系列繁琐操作才能更新应用程序,更新往往需要携带pc,笨重麻烦;或者通过u盘等一些外部接口傻瓜式更新,不可选择需要更新的应用程序,不可更新整个系统,无交互界面,缺乏灵活性,不可进行配置扩展,无法针对复杂的工控环境做相应适配。

针对相关技术中更新方式操作繁琐、灵活性差的问题,目前尚未提出有效地解决方案。



技术实现要素:

本发明提供了一种基于嵌入式的更新方法及装置,以至少解决现有技术中更新方式操作繁琐、灵活性差的问题。

为解决上述技术问题,根据本发明实施例的一个方面,提供了一种基于嵌入式的更新方法,包括:检测是否有存储介质插入;在确定有存储介质插入时,检测存储介质中是否存在更新管理程序;在确定存在更新管理程序,退出当前运行程序,运行更新管理程序,以对应用,或系统进行更新。

进一步地,在确定存在更新管理程序之后,还包括:进行身份验证;在身份验证通过之后,触发退出当前运行程序。

进一步地,检测是否有存储介质插入,包括:在系统运行后,监听usb热插拔sock端口是否有设备插入;在获知有设备插入时,获取sock端口产生的信息;根据sock端口产生的信息判断插入的设备是否为存储介质。

进一步地,运行更新管理程序,包括:检测存储介质中存储的更新文件的类型;根据更新文件的类型弹出更新交互界面;获取用户的选择信息,根据用户的选择信息进行更新操作;在更新操作完成后,通过更新交互界面提示用户更新完成。

进一步地,更新文件类型至少包括以下之一:应用更新文件、系统更新文件;其中,应用更新文件的数量为一个或多个。

进一步地,根据更新文件的类型弹出更新交互界面,包括:根据更新文件的类型确定更新交互界面的更新选项,更新选项至少包括以下之一:是否更新当前应用、是否更新当前系统;其中,是否更新当前应用的选项的数量与应用更新文件的数量对应;弹出包含更新选项的更新交互界面,供用户进行选择。

进一步地,根据用户的选择信息进行更新操作,包括:在用户的选择信息为更新当前应用时,触发更新当前应用的操作;在用户的选择信息为更新当前系统时,触发更新当前系统的操作。

进一步地,更新当前应用的操作,包括:从存储介质中拷贝用户的选择信息对应的应用更新文件;校验应用更新文件是否无误;在确定应用更新文件无误后,将当前应用文件替换为应用更新文件。

进一步地,系统更新文件包括系统烧录内核和系统文件;更新当前系统的操作,包括:将emmc的内核镜像分区挂载出来;从存储介质中拷贝系统烧录内核,并将内核镜像分区中的内核替换为系统烧录内核;重新启动,加载系统烧录内核;其中,系统烧录内核会将emmc格式化,并进行分区;将存储介质中的系统文件拷贝至对应的分区。

进一步地,更新管理程序基于linux系统,使用qt框架编写。

进一步地,基于嵌入式更新方法应用于嵌入式工业触摸屏。

根据本发明实施例的另一方面,提供了一种基于嵌入式的更新装置,包括:存储介质检测模块,用于检测是否有存储介质插入;更新程序检测模块,用于在确定有存储介质插入时,检测存储介质中是否存在更新管理程序;更新模块,用于在确定存在更新管理程序,退出当前运行程序,运行更新管理程序,以对应用,或系统进行更新。

进一步地,存储介质检测模块包括:监听子模块,用于在系统运行后,监听usb热插拔sock端口是否有设备插入;获取子模块,用于在获知有设备插入时,获取sock端口产生的信息;判断子模块,用于根据sock端口产生的信息判断插入的设备是否为存储介质。

进一步地,更新模块包括:检测子模块,用于检测存储介质中存储的更新文件的类型;弹出子模块,用于根据更新文件的类型弹出更新交互界面;更新子模块,用于获取用户的选择信息,根据用户的选择信息进行更新操作;提示子模块,用于在更新操作完成后,通过更新交互界面提示用户更新完成。

进一步地,更新子模块包括:第一触发单元,用于在用户的选择信息为更新当前应用时,触发更新当前应用的操作;第二触发单元,用于在用户的选择信息为更新当前系统时,触发更新当前系统的操作;其中,第一触发单元包括:第一拷贝子单元,用于从存储介质中拷贝用户的选择信息对应的应用更新文件;校验子单元,用于校验应用更新文件是否无误;第一替换子单元,用于在确定应用更新文件无误后,将当前应用文件替换为应用更新文件;第二触发单元包括:分区子单元,用于将emmc的内核镜像分区挂载出来;第二替换子单元,用于从存储介质中拷贝系统烧录内核,并将内核镜像分区中的内核替换为系统烧录内核;重启子单元,用于重新启动,加载系统烧录内核;其中,系统烧录内核会将emmc格式化,并进行分区;第二拷贝子单元,用于将存储介质中的系统文件拷贝至对应的分区。

在本发明中,为了解决传统更新方式操作繁琐、灵活性差的问题,提供了一种基于嵌入式的更新方法,通过存储介质对应用或系统进行更新,并且在存储介质中设置了更新管理程序,使用户进行自定义操作,增加了更新的灵活性,并且更新过程更加方便快捷。

附图说明

图1是根据本发明实施例1的基于嵌入式的更新方法的一种可选的流程图;

图2是根据本发明实施例1的嵌入式交互终端的一种可选的结构框图;

图3是根据本发明实施例1的基于嵌入式的更新方法的另一种可选的流程图;

图4是根据本发明实施例1的基于嵌入式的更新方法的又一种可选的流程图;以及

图5是根据本发明实施例2的基于嵌入式的更新装置的一种可选的结构框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

实施例1

在本发明优选的实施例1中提供了一种基于嵌入式的更新方法,该更新方法可以直接应用至各种嵌入式工业触摸屏上,也可以应用至具有linux操作系统的其他装置上,具体实现时,可以通过在嵌入式工业触摸屏或其他装置写入程序的方式来实现。具体来说,图1示出该方法的一种可选的流程图,如图1所示,该方法包括如下步骤s102-s106:

s102:检测是否有存储介质插入;

在本发明中,采用存储介质,例如u盘,对应用或系统进行更新,避免依赖于pc及专业软件的更新方式带来的繁琐操作,操作简单,且易于实施。具体实施时,基于linux系统,编写后台服务程序,在系统运行后,对usb热插拔sock端口进行监听,在获知有设备插入时,获取sock端口产生的信息。usb设备有多种,每种设备在sock端口产生的信息都不相同,通过分析sock端口产生的信息,可以判断插入的设备是否为存储介质。

s104:在确定有存储介质插入时,检测存储介质中是否存在更新管理程序;

在确定有存储介质插入时,检测存储介质中是否存在更新管理程序,只有存储介质中存在更新管理程序时,才进行更新应用或系统的操作。传统的采用u盘进行更新的方式,只要u盘内存有更新文件,就进行傻瓜式更新,而本申请的更新方法采用更新管理程序,该程序供用户对更新进行自定义设置,增加了更新方式的灵活性。

s106:在确定存在更新管理程序,退出当前运行程序,运行更新管理程序,以对应用,或系统进行更新。

在本发明中,应用更新管理程序位于存储介质,例如u盘中,不依赖于系统,在不修改系统只修改u盘中应用更新管理程序的前提下,就可以给用户提供一些定制化操作,易于扩展。并且将更新应用的过程分解整合到由插入u盘触发的应用更新管理程序中,仅通过u盘即可完成应用以及系统的更新,更加方便快捷。优选地,本申请中更新管理程序基于linux系统,使用qt框架编写,用户可以自定义编写,不仅具有更新应用、更新系统的操作,还可以根据场景添加一些新功能,交互界面更加友好。

在上述实施方式中,为了解决传统更新方式操作繁琐、灵活性差的问题,提供了一种基于嵌入式的更新方法,通过存储介质对应用或系统进行更新,并且在存储介质中设置了更新管理程序,使用户进行自定义操作,增加了更新的灵活性,并且更新过程更加方便快捷。

在本发明一个优选的实施方式中,在确定存在更新管理程序之后,还包括:进行身份验证;在身份验证通过之后,触发退出当前运行程序。身份验证增加了系统的安全性,避免系统被随意修改。

在本发明另一个优选的实施方式中,运行更新管理程序包括如下步骤:检测存储介质中存储的更新文件的类型,更新文件类型至少包括以下之一:应用更新文件、系统更新文件;其中,应用更新文件的数量为一个或多个;根据更新文件的类型确定更新交互界面的更新选项,更新选项至少包括以下之一:是否更新当前应用、是否更新当前系统;其中,是否更新当前应用的选项的数量与应用更新文件的数量对应;弹出包含更新选项的更新交互界面,供用户进行选择。更新交互界面中的选项由存储介质中存储的更新文件的类型和数量确定,例如,在存储介质中只存在系统更新文件时,更新交互界面显示是否更新当前系统;在存储介质中只存在一个应用更新文件时,更新交互界面显示是否更新当前应用,如果存在多个应用更新文件,更新交互界面显示采用下拉列表的方式提示用户可进行更新的所有应用,供用户进行选择;如果存在系统更新文件和多个应用更新文件,更新交互界面显示是否更新当前系统以及用户可进行更新的所有应用。

在用户选择之后,获取用户的选择信息,根据用户的选择信息进行更新操作:在用户的选择信息为更新当前应用时,触发更新当前应用的操作;在用户的选择信息为更新当前系统时,触发更新当前系统的操作。并且,在更新操作完成后,通过更新交互界面提示用户更新完成。优选地,本发明还可以在更新系统或应用的过程中显示更新进程,供用户查看。

进一步地,更新当前应用的操作,包括:从存储介质中拷贝用户的选择信息对应的应用更新文件;校验应用更新文件是否无误;在确定应用更新文件无误后,将当前应用文件替换为应用更新文件。

进一步地,系统更新文件包括系统烧录内核和系统文件;更新当前系统的操作,包括:将emmc的内核镜像分区挂载出来;从存储介质中拷贝系统烧录内核,并将内核镜像分区中的内核替换为系统烧录内核;重新启动,加载系统烧录内核;其中,系统烧录内核会将emmc格式化,并进行分区;将存储介质中的系统文件拷贝至对应的分区。

基于上述基于嵌入式的更新方法,本发明优选的实施例1中还提供了应用上述方法的嵌入式交互终端(工业触摸屏)的结构框图,如图2所示,该终端包括:

am335芯片,用于执行对usb热插拔sock端口进行监听,可感知到u盘插入这一动作,并触发相关处理逻辑;

emmc端口、ddr3/2端口、ethernet端口、uart端口、sd端口、usb端口、rs485/can端口、ts端口、lcd端口。

其中,上述usb端口即设备插入的端口,lcd端口可用于显示更新交互界面。

在本发明优选的实施例1中提供了另一种基于嵌入式的更新方法,该方法的实施对象为嵌入式工业触摸屏,运行linux操作系统,通过触摸面板进行交互。具体来说,图3示出该方法的一种可选的应用更新方法流程图,图4示出该方法的一种可选的系统更新方法流程图,如图3和图4所示,该方法均包括如下步骤s1-s3:

s1:系统运行,后台服务程序对usb热插拔sock端口进行监听;

首先编写一个后台服务程序,对usb热插拔sock端口进行监听,每当usb接口有设备插入时,该sock就会有信息产生,usb设备有很多种,通过分析sock产生的信息,过滤掉无关的usb端口操作,只对u盘插入这一动作做出相应的响应。

s2:检测是否有u盘插入;

当u盘插入时,步骤s1中的后台服务程序就会检测到该操作,并运行一个特定脚本,否则,返回步骤s1。

s3:检测u盘中是否存在应用更新管理程序,并进行身份验证;

该脚本检测u盘中是否存在应用更新管理程序,并进行身份验证。若验证通过,进入步骤s4,否则,返回步骤s1。

对应用的更新方法如图3所示,还包括如下步骤s4至s5-2:

步骤s4,关闭当前正在运行的应用程序,启动应用更新管理程序(该程序可以自定义编写,不仅仅具有更新应用、更新系统的操作,还可以根据场景添加一些新功能,其采用qt框架,交互界面友好方便),该程序启动后会自动寻找u盘中应用更新文件,生成下拉列表供用户进行选择,是否更新当前应用,以及在存在多个可更新应用时,选择更新哪些应用。

s5-1:检测更新管理程序界面中的应用更新按钮是否被点击,在确定用户点击了界面中的应用更新按钮,执行步骤s5-2,否则,返回步骤s4。

s5-2:将u盘中用户选择的可执行程序文件拷贝到设备上,进行校验无误后替换掉旧的应用可执行文件,从而完成应用的更新,重启设备后,将运行更新后的程序。

对系统的更新方法如图4所示,还包括如下步骤s6至s7-2:

s6:退出当前正在运行的程序,运行应用更新管理程序,寻找u盘中是否存放了系统更新的内核镜像以及文件系统,若存在则使能系统更新按钮;

该更新管理程序可以自定义编写,不仅仅具有更新应用、更新系统的操作,还可以根据场景添加一些新功能,其采用qt框架,交互界面友好方便。

s7-1:检测更新管理程序界面中的应用更新按钮是否被点击,在确定用户点击了界面中的应用更新按钮,执行步骤s7-2,否则,返回步骤s6。

s7-2:首先将emmc的内核镜像分区挂载出来,然后将该分区中的内核替换为u盘中的系统烧录内核;

s7-3:完成上步的内核替换后,设备将自动重启,加载系统烧录内核;

s7-4:烧录内核会将设备中emmc存储模块进行格式化,清除旧的系统数据,重新进行分区,然后将u盘中的新系统文件分别拷贝到emmc的对应分区中,当完成上述所有动作,则触屏上会显示系统更新完毕,此时重启设备将会加载更新后的系统。

在上述实施方式中,为了解决传统更新方式操作繁琐、灵活性差的问题,提供了一种基于嵌入式的更新方法,通过存储介质对应用或系统进行更新,并且在存储介质中设置了更新管理程序,使用户进行自定义操作,增加了更新的灵活性,并且更新过程更加方便快捷。

实施例2

基于上述实施例1中提供的方法,在本发明优选的实施例2中还提供了一种基于嵌入式的更新装置,具体地,图5示出该装置的一种可选的结构框图,如图5所示,该装置包括:

存储介质检测模块502,用于检测是否有存储介质插入;

更新程序检测模块504,与存储介质检测模块502连接,用于在确定有存储介质插入时,检测存储介质中是否存在更新管理程序;

更新模块506,与更新程序检测模块504连接,用于在确定存在更新管理程序,退出当前运行程序,运行更新管理程序,以对应用,或系统进行更新。

在上述实施方式中,为了解决传统更新方式操作繁琐、灵活性差的问题,提供了一种基于嵌入式的更新方法,通过存储介质对应用或系统进行更新,并且在存储介质中设置了更新管理程序,使用户进行自定义操作,增加了更新的灵活性,并且更新过程更加方便快捷。

在本发明一个优选的实施方式中,该装置还包括:验证模块,用于在确定存在更新管理程序之后,进行身份验证,并在身份验证通过之后,触发退出当前运行程序。

优选的,存储介质检测模块包括:监听子模块,用于在系统运行后,监听usb热插拔sock端口是否有设备插入;获取子模块,用于在获知有设备插入时,获取sock端口产生的信息;判断子模块,用于根据sock端口产生的信息判断插入的设备是否为存储介质。

优选的,更新模块包括:检测子模块,用于检测存储介质中存储的更新文件的类型;弹出子模块,用于根据更新文件的类型弹出更新交互界面;更新子模块,用于获取用户的选择信息,根据用户的选择信息进行更新操作;提示子模块,用于在更新操作完成后,通过更新交互界面提示用户更新完成。

在本发明另一个优选的实施方式中,更新文件类型至少包括以下之一:应用更新文件、系统更新文件;其中,应用更新文件的数量为一个或多个。进一步地,弹出子模块包括:确定单元,用于根据更新文件的类型确定更新交互界面的更新选项,更新选项至少包括以下之一:是否更新当前应用、是否更新当前系统;其中,是否更新当前应用的选项的数量与应用更新文件的数量对应;弹出单元,用于弹出包含更新选项的更新交互界面,供用户进行选择。

在本发明又一个优选的实施方式中,更新子模块包括:第一触发单元,用于在用户的选择信息为更新当前应用时,触发更新当前应用的操作;第二触发单元,用于在用户的选择信息为更新当前系统时,触发更新当前系统的操作。

在上述实施方式中,第一触发单元包括:第一拷贝子单元,用于从存储介质中拷贝用户的选择信息对应的应用更新文件;校验子单元,用于校验应用更新文件是否无误;第一替换子单元,用于在确定应用更新文件无误后,将当前应用文件替换为应用更新文件。

在上述实施方式中,第二触发单元包括:分区子单元,用于将emmc的内核镜像分区挂载出来;第二替换子单元,用于从存储介质中拷贝系统烧录内核,并将内核镜像分区中的内核替换为系统烧录内核;重启子单元,用于重新启动,加载系统烧录内核;其中,系统烧录内核会将emmc格式化,并进行分区;第二拷贝子单元,用于将存储介质中的系统文件拷贝至对应的分区。

优选的,更新管理程序基于linux系统,使用qt框架编写。装置应用于嵌入式工业触摸屏。

关于上述实施例中的装置,其中各个单元、模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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