高效可靠的嵌入式设备应用程序无线升级方法与流程

文档序号:28427537发布日期:2022-01-12 00:32阅读:76来源:国知局
高效可靠的嵌入式设备应用程序无线升级方法与流程

1.本发明涉及嵌入式设备的技术领域,尤其是涉及一种高效可靠的嵌入式设备应用程序无线升级方法。


背景技术:

2.嵌入式物联网技术发展迅速,大量物联网设备被广泛部署在包括家用电器,智能水电表,自动气象监测站,工业场景下,在物联网应用中,大量使用无线终端设备,这些无线终端设备因为两个特点导致其难以升级维护:
3.1、设备的分布的场景广泛,包括家用、工业、户外的各种场景,很多设备甚至部署在荒郊野外,一旦部署后就难以进行升级维护;同时物联网设备的数量庞大,使用传统方式逐个进行有线升级维护会产生很大的工作量;
4.2、无线升级速度慢且不可靠,物联网设备通常使用nb-iot,lora,zigbee等方式进行无线通信,以上无线方式传输速率普遍较低,而且由于设备所处环境可能未必有很好的网络覆盖,普遍会有较高的传输丢包率。升级过程也容易因为各种各样的意外如丢包、传输错误、突发停电、升级包错误等导致升级失败。有些设备一旦升级失败变成“板砖”,造成难以挽回的损失。


技术实现要素:

5.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种高效可靠的嵌入式设备应用程序无线升级方法,能够减少了传输软件包的数据量,提高了传输效率,且避免了嵌入式设备的升级失败导致设备无法正常运行。
6.本发明的一个实施例提供了高效可靠的嵌入式设备应用程序无线升级方法,应用于嵌入式设备的嵌入式控制器,所述嵌入式设备包括:片外存储区、片内flash;
7.所述方法包括:
8.接收原始差分升级包,并获取当前版本软件包;
9.对所述原始差分升级包进行版本检查和文件校验,得到校验结果;
10.若所述校验结果为校验合格,获取升级信息;
11.若所述升级信息为执行升级操作,根据所述原始差分升级包和所述当前版本软件包进行解析得到升级软件包,将所述升级软件包存储至所述片内flash;
12.根据所述片内flash中的所述升级软件包对应用程序进行升级操作;
13.获取升级后的应用程序的运行状态,根据所述运行状态将所述应用程序存储至所述片外存储区或将所述应用程序还原。
14.本发明实施例的高效可靠的嵌入式设备应用程序无线升级方法至少具有如下有益效果:本发明的高效可靠的嵌入式设备应用程序无线升级方法使用原始差分升级包减少了传输软件包的数据量,提高了传输效率,使用了应用程序的还原机制,在升级错误或下发了错误版本固件时,可以引导设备还原到上一个可用版本,避免了物联网设备的升级失败
或变成“砖头”。
15.根据本发明的另一些实施例的高效可靠的嵌入式设备应用程序无线升级方法,所述对所述原始差分升级包进行版本检查和文件校验,得到校验结果,包括:
16.获取所述原始差分升级包的版本信息;
17.若所述版本信息和预设版本信息匹配,对所述原始差分升级包进行crc校验,得到所述校验结果。
18.根据本发明的另一些实施例的高效可靠的嵌入式设备应用程序无线升级方法,所述若所述升级信息为执行升级操作,根据所述原始差分升级包和所述当前版本软件包进行解析得到升级软件包,将所述升级软件包存储至所述片内flash,包括:
19.若所述升级信息为执行升级操作,获取所述片外存储区中所述原始差分升级包的属性信息;
20.若所述属性信息符合预设规则,根据所述原始差分升级包和所述当前版本软件包进行解析得到升级软件包,将所述升级软件包存储至片外存储区;
21.将片外存储区的所述升级软件包引导至所述片内flash;
22.根据所述片内flash中所述升级软件包对所述应用程序进行升级操作。
23.根据本发明的另一些实施例的高效可靠的嵌入式设备应用程序无线升级方法,所述获取升级后的应用程序的运行状态,根据所述运行状态将所述应用程序存储至所述片外存储区或将所述应用程序还原,包括:
24.获取升级后的应用程序的运行状态;
25.若所述运行状态为正常,将所述应用程序存储至所述片外存储区;
26.若所述运行状态为故障,将所述应用程序还原。
27.根据本发明的另一些实施例的高效可靠的嵌入式设备应用程序无线升级方法,还包括:
28.若所述运行状态为正常,获取应用程序的运行时间;
29.若所述运行时间超过预设时间阈值,备份所述应用程序以得到备份程序;
30.将所述备份程序存储至所述片外存储区。
31.根据本发明的另一些实施例的高效可靠的嵌入式设备应用程序无线升级方法,所述若所述运行状态为故障,将所述应用程序还原,包括:
32.若所述运行状态为故障,将所述外部存储区的所述备份程序写入到内部flash,并根据内部flash中的备份程序对所述应用程序进行还原。
33.根据本发明的另一些实施例的高效可靠的嵌入式设备应用程序无线升级方法,还包括:
34.获取所述运行状态为故障,获取应用程序的还原的次数以得到还原次数;
35.若所述还原次数大于预设阈值,使用所述备份程序对所述应用程序进行还原。
36.根据本发明的另一些实施例的高效可靠的嵌入式设备应用程序无线升级方法,还包括:
37.若所述运行状态为正常,获取升级状态和所述应用程序的版本信息;
38.将所述升级状态和所述版本信息上报至服务器。
39.根据本发明的另一些实施例的高效可靠的嵌入式设备应用程序无线升级方法,还
包括:
40.若所述运行状态为故障,获取所述应用程序的故障信息;
41.将所述故障信息发送至服务器。
42.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在说明书以及附图中所特别指出的结构来实现和获得。
附图说明
43.图1是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法的一具体实施例流程示意图;
44.图2是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法的另一具体实施例流程示意图;
45.图3是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法的流程示意图;
46.图4是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法的另一具体实施例流程示意图;
47.图5是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法的另一具体实施例流程示意图;
48.图6是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法的另一具体实施例流程示意图;
49.图7是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法的另一具体实施例流程示意图;
50.图8是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法的另一具体实施例流程示意图;
51.图9是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法的另一具体实施例流程示意图;
52.图10是本发明实施例中高效可靠的嵌入式设备应用程序无线升级方法中嵌入式设备的流程示意图。
具体实施方式
53.以下将结合实施例对本发明的构思及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。
54.在本发明的描述中,如果涉及到方位描述,例如“上”、“下”、“前”、“后”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。如果某一特征被称为“设置”、“固定”、“连接”、“安装”在另一个特征,它可以直接设置、固定、连接在另一个特征上,也可以间接地设置、固
定、连接、安装在另一个特征上。
55.在本发明实施例的描述中,如果涉及到“若干”,其含义是一个以上,如果涉及到“多个”,其含义是两个以上,如果涉及到“大于”、“小于”、“超过”,均应理解为不包括本数,如果涉及到“以上”、“以下”、“以内”,均应理解为包括本数。如果涉及到“第一”、“第二”,应当理解为用于区分技术特征,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
56.下面对本技术中涉及到的名词进行解释:
57.st-link:st-link是用于stm8和stm32微控制器的在线调试器和编程器,是一种下载器。st-link具有swim、jtag/swd等通信接口,用于与stm8或stm32微控制器进行通信(各版本有差异)。
58.嵌入式设备:嵌入式设备主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的“器件”。嵌入式处理器主要由一个单片机或微控制器(mcu)组成。相关支撑硬件包括显示卡、存储介质(rom和ram)、通讯设备、ic卡或信用卡的读取设备等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用闪存(flash memory)作为存储介质。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用软件等。嵌入式设备具有便利灵活、性能价格比高、嵌入性强等特点,可以嵌入到现有任何信息家电和工业控制系统中。从软件角度来看,嵌入式系统具有不可修改性、系统所需配置要求较低、系统专业性和实时性较强等特点。
59.窄带物联网(narrow band internet of things,nb-iot)成为万物互联网络的一个重要分支。nb-iot构建于蜂窝网络,只消耗大约180khz的带宽,可直接部署于gsm网络、umts网络或lte网络,以降低部署成本、实现平滑升级。
60.lora就是远距离无线电(long range radio),是semtech公司创建的低功耗局域网无线标准,它最大特点就是在同样的功耗条件下比其他无线方式传播的距离更远,实现了低功耗和远距离的统一,它在同样的功耗下比传统的无线射频通信距离扩大3-5倍。lora这一技术可以为电池供电的无线设备提供局域、全国或全球的网络。lora瞄准的是物联网中的一些核心需求,如安全双向通讯、移动通讯和静态位置识别等服务。该技术无需本地复杂配置,就可以让智能设备间实现无缝对接互操作,给物联网领域的用户、开发者和企业自由操作权限。lora传输距离远,在城镇的传输距离可达2-5km,郊区可达15km;lora的容量大:一个lora网关可以连接成千上万个lora节点,并且,lora具有前向纠错的能力。
61.物联网(internet of things,iot)的概念是在1999年提出的,被视为互联网的应用扩展,应用创新是物联网的发展的核心,以用户体验为核心的创新是物联网发展的灵魂。简单来说,物联网的理念在于物体之间的通信,以及相互之间的在线互动。
62.从技术架构上来看,物联网可分为三层:感知层、网络层和应用层。感知层由各种传感器以及传感器网关技术构成。感知层的作用相当于人的眼耳鼻喉和皮肤等神经末梢,它是物联网识别物体、采集信息的来源,其主要功能是识别物体,采集信息。感知层的物联网设备通常是基于嵌入式设备的传感器设备,使用有线或无线的通信方式。
63.在物联网应用中,需要大量的使用以嵌入式设备,这些嵌入式设备具有以下特点:
64.第一:嵌入式设备的分布较为广泛,很多嵌入式设备一旦部署就难以再拆卸。
65.第二:嵌入式设备的数量庞大。
66.基于以上两点,使用传统有线的连接的方式对嵌入式设备进行手动升级维护会产生很大的工作量,增加了升级的成本,且很多设备设置在人迹罕至的深山老林中,研究人员不便于经常到现场去维护。如:使用st-link下载线将升级软件包直接烧录到嵌入式设备中去,嵌入式设备再根据升级软件包进行升级。然而这种方式需要很大的人工工作量,升级过程较为复杂,并且,升级软件包也没有经过校验和检查,容易出现升级或者程序运行错误的现象,而且升级过程也容易因为各种各样的意外丢包、传输错误、突发停电、升级包错误等导致升级失败,有些设备一旦升级失败就变成“板砖”,造成难以挽回的损失。
67.基于此,本技术公开了一种高效可靠的嵌入式设备应用程序无线升级方法,对于嵌入式物联网设备进行无线升级,通过引入差分升级方案,只传输升级固件的差异部分,极大地降低了软件包传输的数据量,进一步的,对每一个传输和升级的步骤进行校验,并引入了程序备份还原机制,保证升级过程正确执行,即便出现错误,也可以引导上一个版本的应用程序还原,保证了设备始终可用。
68.本发明实施例公开了一种高效可靠的嵌入式设备应用程序无线升级方法,应用于嵌入式设备的嵌入式控制器,嵌入式设备包括:片外存储区、片内flash。其中,片外存储区存储有当前版本软件包和当前版本信息,当前版本信息和当前版本软件包相匹配。其中,片外存储器为片外flash,片外存储区和片内flash为嵌入式设备自带的硬件资源。片外存储区作为备份分区,片内flash作为程序运行分区,嵌入式设备的boot引导程序和应用程序固化与片内flash,且boot引导程序用于固化应用程序,并引导应用程序升级,且片外存储区的存储长度为512k字节,片内flash的存储长度为128字节。
69.参照图1,高效可靠的嵌入式设备应用程序无线升级方法包括步骤s101、步骤s102、步骤s103、步骤s104、步骤s105和步骤s106。下面对这六个步骤进行详细描述,应理解,本技术实施例的应用程序无线升级方法包括但不限于步骤s101至s106。
70.步骤s101、接收原始差分升级包,并获取当前版本软件包;
71.步骤s102、根据原始差分升级包和当前版本软件包进行解析得到升级软件包;
72.步骤s103、对原始差分升级包进行版本检查和文件校验,得到校验结果;
73.步骤s104、若校验结果为校验合格,将升级软件包和升级软件包的属性信息存储至片内flash;
74.步骤s105、获取升级信息,根据升级信息和片内flash中的升级软件包对应用程序进行升级操作;
75.步骤s106、获取升级后的应用程序的运行状态,根据运行状态将应用程序存储至片外存储区或将应用程序还原。
76.其中,嵌入式设备的嵌入式控制器通过无线通信模块接收来自服务器下发的原始差分升级包,其中,无线通信模块可以是lora通信模块,也可以是nb-iot通信模块,或者是蓝牙通信模块。其中,服务器上存储有嵌入式设备当前运行的当前软件包,且原始差分升级包由服务器根据当前版本软件包和最新版本软件包的差异信息制作得到,差异信息由操作指令+数据组成,包括但不限于对某一位置的删除数据、修改数据、增加数据或者复制数据,具体的数据内容由当前版本软件包和最新版本软件包的差异决定。
77.需要说明的是,通过步骤101至步骤105,通过只接收原始差分升级包,则无需接收
整个升级软件包,然后根据原始差分升级包和当前版本软件包进行解析得到升级软件包,以提高软件包接收的效率,且减少软件包存储空间。然后对原始差分升级包进行版本检查和文件校验得到校验结果,在检验结果为校验合格时,将升级软件包和升级软件包存储片内flash,由于片内flash存储空间小且用于运行程序,所以在确保差分软件包是合格时才将升级软件包存储至片内flash,以保证正常运行片内flash的升级软件包。同时,当根据片内flash内的升级软件包对应用程序进行升级操作后获取应用程序的运行状态,并根据应用程序的运行状态确定是否将应用程序存储至片外存储区,或是将应用程序还原,以实现应用程序的自动还原,实现引导嵌入式设备还原到上一个可用版本,避免了嵌入式设备的升级失败或变成“砖头”。
78.进一步地,片外存储区作为备份分区,片内flash作为程序运行分区。在接收数据时,由于不确定接收到的原始差分升级包是否安全,因此,首先需要将原始差分升级包存储于片外存储区中,以确保原始差分升级包不会影响片内flash中程序的正常运行。并且,在本技术中原始差分升级包分成n份,进行分批次传输的,接收原始差分升级包也是按照批次接收,接收完毕后再将每一份原始差分升级包进行整合处理,得到完整的原始差分升级包。
79.参照图2,在一些实施例中,步骤s104包括但不限于包括步骤s401至步骤s403。
80.步骤s401、获取原始差分升级包的版本信息;
81.步骤s402、若版本信息和预设版本信息匹配,对原始差分升级包进行crc校验,得到校验结果。
82.由于在获取原始差分升级包是将原始差分升级包拆分成n份逐个接收,且在接收差分升级包时需要对差分升级包进行文件校验和版本检查。若差分升级包的文件校验和版本检查合格则将差分升级包存储至片外存储区,然后将片外存储区的差分升级包引导至片内flash,然后将片内flash存储的当前版本软件包和原始差分升级包进行解析,以得到升级软件包,且并对原始差分升级包进行文件校验和版本检查。其中,对原始差分升级包进行文件校验和版本检查主要是获取软件升级包的版本信息,然后将版本信息和预设版本信息比对,若版本信息和预设版本信息匹配则对原始差分升级包进行crc校验,以得到校验结果。若版本信息和预设版本信息不匹配,则直接输出校验结果为校验失败。若版本信息和预设版本信息匹配,但是对原始差分升级包进行crc校验失败,则输出校验结果为校验失败。因此,将差分升级包引导至片内falsh后还是需要对原始差分升级包进行校验,以保证原始差分升级包的正确,减少应用程序执行的错误率。
83.具体地,参照图3,当服务器发起文件传输,以发送原始差分升级包至嵌入式设备,嵌入式设备启动后进行初始化并启动lora任务,然后接收服务器发送的原始差分升级包,由于服务器发送原始差分升级是拆分成多个文件包逐个发送,所以嵌入式设备在每次接收到文件包后都需要判断原始差分升级是否接收完成,若原始差分升级包接收完成则对原始差分升级包进行校验,主要对原始差分升级包进行版本检查和文件检验以得到校验结果,若校验结果为校验成功则跳转到boot程序,也即通过boot程序引导片外存储区的升级软件包存储至片内flash。
84.参照图4,在一些实施例中,步骤s105包括但不限于包括步骤s501至步骤s503。
85.步骤s501、获取片内flash中的升级信息;
86.步骤s502、若升级信息为执行升级操作,获取片外存储区中原始差分升级包的属
性信息;
87.步骤s503、若属性信息符合预设规则,根据片内flash中升级软件包对应用程序进行升级操作。
88.其中,若校验结果为校验合格将升级软件包先存储至片外存储区,然后将片外存储区的升级软件包引导至片内flash进行升级操作。在根据升级软件包对应用程序进行升级操作时需要先获取片内flash的升级信息,以判断升级信息是否为需要执行升级操作,若升级信息为执行升级操作则获取片外存储区中原始差分升级包的属性信息,以判断属性信息是否符合预设规则。其中,原始差分升级包的属性信息包括:软件版本号、目标软件版本号、原软件版本文件大小、目标软件版本文件大小、校验码,因此判断软件版本号、目标软件版本号和预设版本号匹配,且校验码是否与预设码匹配,原软件版本文件大小、目标软件版本文件大小是否符合预设大小阈值,若属性信息符合预设规则,则根据原始差分升级包和当前版本软件包进行解析以生成新的升级软件包,并将升级软件包存储在片外存储区,并将片外存储区的升级软件包引导更新到片内flash中,则可以根据片内flash中的升级软件包对应用程序进行更新,以执行新的应用程序。
89.具体地,片内存储区包括:当前版本软件包存储区、升级软件存储区、差分升级包存储区和配置信息存储区。当前版本软件包存储与当前软件包存储区,且升级软件包存储于升级软件存储区,且原始差分升级包存储于差分升级包存储区,且原始差分升级包、当前版本软件包和升级软件包的属性信息存储于配置信息存储区,因此可以将不同的软件包存储于不同的存储区便于针对性存储,且便于直接从对应的存储区中获取软件包。
90.参照图5,在一些实施例中,步骤s106包括但不限于包括步骤s601至步骤s603。
91.步骤s601、获取升级后的应用程序的运行状态;
92.步骤s602、若运行状态为正常,将应用程序存储至片外存储区;
93.步骤s603、若运行状态为故障,将应用程序还原。
94.通过步骤s601至步骤s603,根据片内flash中的升级软件包对应用程序进行升级操作,然后获取升级后的应用程序的运行状态,以判断升级后的应用程序是否能正常运行。若运行状态为正常,则表示应用程序可以正常执行,然后将应用程序存储至片外存储区,以将正常运行的应用程序备份于片外存储区。若运行状态为故障,则表示升级后的应用程序无法正常运行,将应用程序还原至上一个版本的应用程序,以防止因为应用程序无法执行导致系统故障,避免了物联网设备的升级失败或变成“砖头”。
95.参照图6,在一些实施例中,高效可靠的嵌入式设备应用程序无线升级方法还包括:
96.s107、若运行状态为正常,获取应用程序的运行时间;
97.s108、若运行时间超过预设时间阈值,备份应用程序以得到备份程序;
98.s109、将备份程序存储至片外存储区。
99.其中,当运行状态为故障时需要对应用程序进行还原,且应用程序还原主要将已升级的应用程序还原为上一个版本的应用程序,因此需要保证上一个版本的应用程序是可行的,所以当运行状态为正常,并获取应用程序的运行时间,若运行时间超过预设时间阈值则表示该版本的应用程序是可靠的,则将该应用程序备份得到备份程序,并将备份程序存储至片外存储区,当进行升级错误时或者其他不可预知的故障导致固体损坏/无法正常工
作时,将存储于片外存储区的备份程序写入到内部flash,然后引导备份程序执行以实现应用程序的还原。
100.在一些实施例中,步骤s603包括但不限包括以下步骤:
101.若运行状态为故障,将外部存储区的备份程序写入到内部flash,并根据内部flash中的备份程序对应用程序进行还原。
102.当运行状态为故障,也即表示升级的应用程序无法正常运行,则需要将应用程序还原,因此将外部存储区的备份程序写入到内部flash中,则可以直接将升级后的应用程序更换为备份程序,由于备份程序是可靠且可以正常运行一端时间的程序,所以当升级后的应用程序无法正常运行时直接替换成备份程序可以恢复嵌入式设备的正常运行。
103.具体地,由于片外存储区为512k字节,片内flash为128k字节,boot引导程序固化于片内flash的开始地址,且应用程序紧随boot引导程序的后续固定位置也固化于片内flash。备份程序存储于外部存储区的开始地址,且升级软件包存储于外部存储区的128k地址,原始差分升级包存储于外部存储区的256k地址,因此通过将不同的软件包存储于不同的地址,便于区分不同类型的软件包。
104.参照图7,在一些实施例中,高效可靠的嵌入式设备应用程序无线升级方法,还包括但不限于包括步骤s110至步骤s111。
105.步骤s110、获取运行状态为故障,获取应用程序的还原的次数以得到还原次数;
106.步骤s111、若还原次数大于预设阈值,使用备份程序对所述应用程序进行还原。
107.具体地,在本实施例中,当应用程序由于某些特殊的原因导致还原时,获取应用程序的还原次数,每次还原后,boot引导程序对计数值加1,当还原次数超过预设阈值时,说明应用程序已连续多次复位,此时,嵌入式设备强制进入boot引导程序主循环,并根据备份软件包对应用程序进行还原。并且,将计数值清0,并复位中央处理器(central processing unit,cpu)。
108.其中,步骤s110和步骤s111为更新错误的防误程序,已不能在线更新应用程序的情况发生,特意设置了防误程序,且防误程序包括一个连续复位的计数,设置一个连续复位的技术,已保证计数值复位后不丢失,当应用程序每次还原时,则计数值加1,若计数值超过预设阈值,则强制使用备份程序对应用程序还原,且应用程序还原后清楚连续复位计数。若当监测运行状态为故障直接进行应用程序还原,则可能存在错误操作导致运行状态为故障,所以判断运行故障状态为故障且还原次数大于预设阈值表示真正想要进行应用程序还原,以防止误操作直接导致应用程序还原的情况。
109.参照图8,在一些实施例中,高效可靠的嵌入式设备应用程序无线升级方法,还包括但不限于包括步骤s112和步骤s113。
110.步骤s112、若运行状态为正常,获取升级状态和应用程序的版本信息;
111.步骤s113、将升级状态和版本信息上报至服务器。
112.当应用程序可以正常运行时,运行状态为正常,则获取应用程序升级后的升级状态和版本信息,并将升级状态和版本信息上传至服务器,以便于远程的操作人员可以通过服务器查看当前嵌入式设备运行应用程序的升级状态和版本信息。
113.参照图9,在一些实施例中,高效可靠的嵌入式设备应用程序无线升级方法,还包括但不限于包括步骤s114和步骤s115。
114.步骤s114、若运行状态为故障,获取应用程序的故障信息;
115.步骤s115、将故障信息发送至服务器。
116.若应用程序无法正常运行,则运行状态为故障,以获取应用程序的故障信息,并将故障信息发送至服务器,以实现嵌入式设备的故障信息统一管理,以便于远程操作人员通过服务器查看嵌入式设备的运行情况。
117.下面参考图10以一个具体的实施例详细描述根据本发明实施例的高效可靠的嵌入式设备应用程序无线升级方法。值得理解的是,下述描述仅是示例性说明,而不是对发明的具体限制。
118.综上,嵌入式设备的嵌入式控制器的运行过程如下:
119.首先开始启动后读取设备配置信息,然后接收原始差分升级包,并判断原始差分升级包是否接收完毕以判断原始差分升级包是否就绪,若原始差分升级包接收完毕也即表示原始差分升级包就绪,然后对原始差分升级包进行文件校验和版本检查以得到校验结果,若校验结果为校验成功,则根据原始差分升级包和当前版本软件包得到升级软件包,并将升级软件包存储于外部存储区中,以固化新的升级软件包到外部存储区,然后将外部存储区中的升级软件包存储至片内flash,且开启看门狗计时,根据升级软件包对应用程序进行升级操作以得到新的应用程序,并获取应用程序的运行状态,以判断应用程序启动后是否成功运行,若应用程序无法正常运行则运行状态为故障,并将应用程序还原成上一个版本的备份程序,若运行状态为正常则将应用程序进行备份以得到备份程序,并将备份程序存储于外部存储区。若在原始差分升级包进行文件校验和版本检查得到校验结果,且校验结果为校验失败,则将校验失败发送至服务器,以便于服务器根据校验失败重新下发原始差分升级包。因此本发明所述的高效可靠的嵌入式设备应用程序无线升级方法使用原始差分升级包减少了传输固件的数据量,提高了传输效率,使用了应用程序的还原机制,在升级错误或下发了错误版本固件时,可以引导设备还原到上一个可用版本,避免了物联网设备的升级失败或变成“砖头”。
120.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
121.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
122.上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。此外,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1