一种程序的运行方法及运行装置与流程

文档序号:24418304发布日期:2021-03-26 21:35阅读:93来源:国知局
一种程序的运行方法及运行装置与流程

1.本申请属于程序运行的技术领域,尤其涉及一种程序的运行方法、运行装置、终端设备以及计算机可读存储介质。


背景技术:

2.程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。然而,在程序的运行过程中,往往容易出现bug(漏洞)或参数初始化错误等情况,导致产品出现崩溃等情况。在一些实时应用的场景中,例如:智能路灯等产品程序需实时运行,若程序运行过程中出现错误,则可能造成智能路灯无法正常工作。这是一个亟需解决的技术问题。


技术实现要素:

3.有鉴于此,本申请实施例提供了一种程序的运行方法、运行装置、终端设备以及计算机可读存储介质,可以解决若程序运行过程中出现错误,则可能造成智能路灯无法正常工作的技术问题。
4.本申请实施例的第一方面提供了一种程序的运行方法,所述运行方法包括:
5.在备份区中分别存储升级版本程序和非升级版本程序;
6.根据预设标识确定当前阶段;所述当前阶段包括试运行阶段以及非试运行阶段;
7.校验运行区中运行程序的当前状态;所述运行区与所述备份区为程序存储器预先划分的存储区域;
8.若确定所述运行程序的所述当前状态为非正常状态,则将所述备份区中第一运行状态为正常的程序转移至所述运行区,并运行所述运行区中的程序;所述非正常状态包括所述运行区中运行程序的第二运行状态为异常或所述运行区中运行程序不为当前阶段对应的目标版本程序。
9.本申请实施例的第二方面提供了一种程序的运行装置,所述运行装置包括:
10.存储单元,用于在备份区中分别存储升级版本程序和非升级版本程序;
11.第一判断单元,用于根据预设标识确定当前阶段;所述当前阶段包括试运行阶段以及非试运行阶段;
12.校验单元,用于校验运行区中运行程序的当前状态;所述运行区与所述备份区为程序存储器预先划分的存储区域;
13.第二判断单元,用于若确定所述运行程序的所述当前状态为非正常状态,则将所述备份区中第一运行状态为正常的程序转移至所述运行区,并运行所述运行区中的程序;所述非正常状态包括所述运行区中运行程序的第二运行状态为异常或所述运行区中运行程序不为当前阶段对应的目标版本程序。
14.本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时
实现上述第一方面所述方法的步骤。
15.本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述方法的步骤。
16.本申请实施例与现有技术相比存在的有益效果是:本申请通过,在备份区中分别存储升级版本程序和非升级版本程序;根据预设标识确定当前阶段;所述当前阶段包括试运行阶段以及非试运行阶段;校验运行区中运行程序的当前状态;所述运行区与所述备份区为程序存储器预先划分的存储区域;若确定所述运行程序的所述当前状态为非正常状态,则将所述备份区中第一运行状态为正常的程序转移至所述运行区,并运行所述运行区中的程序;所述非正常状态包括所述运行区中运行程序的第二运行状态为异常或所述运行区中运行程序不为当前阶段对应的目标版本程序。上述方案,通过在运行程序前,利用程序存储器空闲的存储空间预先存储升级版本程序和非升级版本程序。以在运行程序出现异常时,在预存的升级版本程序和非升级版本程序中,选择运行状态正常的程序进行运行,保证程序的无缝运行,防止出现运行暂停,导致设备无法正常工作等情况。
附图说明
17.为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
18.图1示出了本申请提供的一种程序的运行方法的示意性流程图;
19.图2示出了本申请提供的一种flash分区的示意图;
20.图3示出了本申请提供的获取升级版本程序的示意性流程图;
21.图4示出了本申请提供的一种程序的运行方法中步骤104具体示意性流程图;
22.图5示出了本申请提供的一种程序的运行方法中步骤104具体示意性流程图;
23.图6示出了本申请提供的一种程序的运行方法中步骤104具体示意性流程图;
24.图7示出了本申请提供的一种程序的运行方法中步骤104具体示意性流程图;
25.图8示出了本申请提供的另一种程序的运行方法的示意性流程图;
26.图9示出了本申请提供的一种程序的运行装置的示意图;
27.图10是本发明一实施例提供的一种终端设备的示意图。
具体实施方式
28.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
29.本申请适用于多种应用场景,为了更好地解释本申请的技术方案,本申请以智能路灯的应用场景为例,对本方案进行解释说明。
30.智能路灯是指具有入网能力的路灯设备,可实现远程升级等功能。在智能路灯过
程升级或正常运行的过程中,由于容易出现bug(漏洞)或参数初始化错误等情况,导致智能路灯无法正常工作,引发一系列连带反应。故本申请提供了一种程序的运行方法、装置、终端设备以及计算机可读存储介质,可以解决上述技术问题。
31.请参见图1,图1示出了本申请提供的一种程序的运行方法的示意性流程图。
32.如图1所示,该方法可以包括如下步骤:
33.步骤101,在备份区中分别存储升级版本程序和非升级版本程序。
34.备份区是指程序存储器中预先划分的存储区域。其中,程序存储器包括但不限于闪存(flash,flash memory)或运行内存(ram,random access memory)等一种或多种存储器之间的组合。为了更好地解释本申请的技术方案,本申请以flash为例,对本申请的技术方案进行解释说明。其中,flash是一种不挥发性(non

volatile)内存,在没有电流供应的条件下也能够长久地保持数据,常应用于单片机中,用于运行程序。
35.本申请对flash进行分区,以分别存储升级版本程序和非升级版本程序。可以理解的是,非升级版本程序为旧版本程序。
36.示例性地,本申请对flash分区请参见图2,图2示出了本申请提供的一种flash分区的示意图。如图2所示,本申请将flash分为四个存储区域,分别为:“bootloader”区域、“app

0”区域、“app

1”区域以及“app

2”区域。其中,“bootloader”区域为引导程序的存储区,所述引导程序用于加载其他程序(即选择“app

1”或“app

2”运行),以实现本申请的技术方案。“app

0”区域为运行程序的区域,即运行区。“app

1”区域用于存储升级版本程序或非升级版本程序。“app

2”区域用于存储升级版本程序或非升级版本程序。其中,“app

1”区域与“app

2”区域用于存储不同的程序。即当“app

1”区域存储的程序为升级版本程序,则“app

2”区域存储的程序为非升级版本程序。当“app

1”区域存储的程序为非升级版本程序,则“app

2”区域存储的程序为升级版本程序。需要说明的是,对于flash分区而言,上述说明仅仅为示例,对于flash分区的数量以及位置不做任何限定,flash分区的数量在实际应用场景中,可以更多或更少。
37.作为本申请的一个可选实施例,为了更好地区分升级版本程序和非升级版本程序,本申请赋予升级版本程序和非升级版本程序不同的标识符号,根据标识符号,区分所述升级版本程序和所述非升级版本程序。
38.为了更好地理解本申请的技术方案,在此解释说明本申请技术方案前,简短说明,终端设备对运行程序进行升级时与平台之间的交互流程:请参见图3,图3示出了本申请提供的获取升级版本程序的示意性流程图。如图3所示,终端设备与平台之间进行交互,下载升级版本程序,交互过程如下:平台查询终端设备中运行程序(运行程序是指在当前正在运行的程序)的当前版本。终端设备向平台返回运行程序的当前版本。平台判断运行程序的当前版本是否为最升级版本,若当前版本不为最升级版本,则向终端设备发送升级版本通知。终端设备在接收到更升级版本通知后,向平台发送应答,以告知收到此通知。终端设备根据运行程序的存储区域,选择升级版本程序存储区域(升级版本程序的存储区域以及非升级版本程序的存储区域都为预先设置的区域),并擦除升级版本程序的存储区域中的数据,保存升级版本程序的参数(例如:分段参数等,分段参数是指升级版本程序的不同分段数据包对应的序号)。终端设备向平台请求升级版本程序的分段数据包【序号0】。平台向终端设备返回分段数据包【序号0】(其中,在本申请中为了防止传输中断时,导致整个升级版本程序
的数据包需要重新传输,故本申请将数据包进行分段(用不同序号区分)传输。当其中的一个分段数据包传输中断,在中断后仅需重新传输此分段数据包,无需重传整个数据包)。终端设备在接收到分段数据包【序号0】,校验分段数据包【序号0】中的包头信息,以确保数据包的合法性。终端设备在确定数据包的合法性后,向平台请求升级版本程序的分段数据包【序号1】。平台向终端设备返回分段数据包【序号1】,以此类推,得到n个分段数据包。终端设备校验数据包并保存数据包参数,得到升级版本程序,向平台上传数据包下载状态。平台应答终端设备发送的下载状态。终端设备设置运行状态标识以及升级版本程序标识,并重启系统。终端设备登录平台。平台应答终端设备的登录请求。终端设备启动试运行阶段,在试运行成功后,修改运行程序的标识(即将升级版本程序标识为非升级版本程序),升级成功,上传升级结果。平台对升级结果进行应答。其中,非试运行阶段的执行顺序可以在试运行阶段之前或之后。
39.需要说明的是,分段数据包【序号0】中的包头信息包括但不限于公司标识、设备类型、微控制单元(microcontroller unit,mcu)型号、硬件版本、文件类型、文件版本、文件内容长度、文件内容的循环冗余校验码(cyclic redundancy check,crc)、文件头的crc以及文件内容等。公司标识:用于判断是否为本公司文件,设备类型用于判断是否为本产品的升级文件,mcu型号用于判断升级版本程序是否匹配本路灯控制器的mcu,硬件版本用于判断升级版本程序匹配的硬件版本,文件类型包括配置文件、app程序以及bootloader程序,文件版本用于区分不同文件的版本号,文件内容crc用于校验文件内容的crc值,文件内容包括配置数据、应用程序数据以及bootloader程序数据。
40.对于试运行阶段以及非试运行阶段时,程序的运行逻辑如下:
41.运行区运行所述运行程序前,将升级版本程序和非升级版本程序分别存储在各自对应的备份区中(即“app

1”区域以及“app

2”)。
42.步骤102,根据预设标识确定当前阶段;所述当前阶段包括试运行阶段以及非试运行阶段。
43.由于终端设备在接收到升级版本程序时,需要进行试运行(即进入试运行阶段)。而在未接收到升级版本程序时,无需进行试运行(即进入非试运行阶段),正常启动即可。故为了区分这个两个阶段,本实施例通过预设标识对两者进行区分。
44.步骤103,校验运行区中运行程序的当前状态;所述运行区与所述备份区为程序存储器预先划分的存储区域。
45.运行区是指程序存储器中预先划分的存储区域,用于运行程序。
46.当确定当前阶段为试运行阶段,则判断运行区中运行程序是否为升级版本程序。若确定运行区中运行程序不为升级版本程序,则确定运行程序的当前状态为非正常状态。若确定运行区中运行程序为升级版本程序,则校验运行区中运行程序(即升级版本程序)的第二运行状态。若确定第二运行状态为正常,则确定运行程序的当前状态为正常状态,继续运行所述运行程序,无需执行后续步骤。若确定第二运行状态为异常,则确定运行程序的当前状态为非正常状态,并执行后续步骤。
47.当确定当前阶段为非试运行阶段,则判断运行区中运行程序是否为非升级版本程序。若确定运行区中运行程序不为非升级版本程序,则确定运行程序的当前状态为非正常状态。若确定运行区中运行程序为非升级版本程序,则校验运行区中运行程序(即非升级版
本程序)的第二运行状态。若确定第二运行状态为正常,则确定运行程序的当前状态为正常状态,继续运行所述运行程序,无需执行后续步骤。若确定第二运行状态为异常,则确定运行程序的当前状态为非正常状态,并执行后续步骤。
48.对于校验程序的运行状态的方法包括确定运行日志中是否存在错误、确定运行结果是否正确或确定是否存在错误码等一种或多种方式的组合。
49.步骤104,若确定所述运行程序的所述当前状态为非正常状态,则将所述备份区中第一运行状态为正常的程序转移至所述运行区,并运行所述运行区中的程序;所述非正常状态包括所述运行区中运行程序的第二运行状态为异常或所述运行区中运行程序不为当前阶段对应的目标版本程序。
50.为了使运行区中能持续运行正常状态的运行程序,故在确定所述运行区中运行程序的当前状态为非正常状态时,将备份区中第一运行状态为正常的程序转移至所述运行区,并运行所述运行区中的程序。
51.其中,非正常状态包括但不限于所述运行区中运行程序的第二运行状态为异常或所述运行区中运行程序不为当前阶段对应的目标版本程序等。试运行阶段对应的目标版本程序为升级版本程序。其中,非试运行阶段对应的目标版本程序为非升级版本程序。
52.不同的阶段以及不同的非正常状态对应不同的执行步骤:
53.作为本申请的一个可选实施例,当所述当前阶段为试运行阶段,所述非正常状态为所述运行区中运行程序的第二运行状态为异常,试运行阶段对应的目标版本程序为升级版本程序时,步骤104包括如下步骤1041至步骤1044。请参见图4,图4示出了本申请提供的一种程序的运行方法中步骤104具体示意性流程图。
54.步骤1041,若确定所述运行区中的所述运行程序为所述升级版本程序,则确定所述运行区中运行程序的第二运行状态是否正常。
55.由于终端设备在初始运行时,可能存在初始参数的错误等情况,导致运行区中的运行程序不为升级版本程序,故需要判断运行区中的运行程序是否为所述升级版本程序。
56.若确定所述运行区中的所述运行程序为所述升级版本程序,则确定所述运行区中运行程序的第二运行状态是否正常。
57.若确定所述运行区中运行程序的第二运行状态为正常,则运行所述运行区中的程序。
58.若确定所述运行区中的所述运行程序不为所述升级版本程序,则执行步骤104a至步骤104d。
59.步骤1042,若确定所述运行区中运行程序的第二运行状态为异常,则校验所述备份区中所述升级版本程序的第三运行状态。
60.步骤1043,若确定所述第三运行状态为正常,则将所述备份区中所述升级版本程序转移至所述运行区,并运行所述运行区中的程序。
61.步骤1044,若确定所述第三运行状态为异常,则校验所述备份区中所述非升级版本程序的第四运行状态。
62.步骤1045,若确定所述第四运行状态为正常,则将所述备份区中所述非升级版本程序转移至所述运行区,并运行所述运行区中的程序。
63.可以理解的是,由于本实施为试运行阶段,故在选取备份区中的程序时,优先判断
升级版本程序的第三运行状态是否正常,进而优先选取升级版本程序作为运行区中的运行程序。
64.作为本申请的一个可选实施例,当所述当前阶段为试运行阶段,所述非正常状态为运行区中运行程序不为当前阶段对应的目标版本程序时;试运行阶段对应的目标版本程序为升级版本程序时,步骤104包括如下步骤104a至步骤104d。请参见图5,图5示出了本申请提供的一种程序的运行方法中步骤104具体示意性流程图。
65.步骤104a,若确定所述运行区中的所述运行程序不为所述升级版本程序,则校验所述备份区中所述升级版本程序的第三运行状态。
66.步骤104b,若确定所述第三运行状态为正常,则将所述备份区中所述升级版本程序转移至所述运行区,并运行所述运行区中的程序。
67.步骤104c,若确定所述第三运行状态为异常,则校验所述备份区中所述非升级版本程序的第四运行状态。
68.步骤104d,若确定所述第四运行状态为正常,则将所述备份区中所述非升级版本程序转移至所述运行区,并运行所述运行区中的程序。
69.作为本申请的一个可选实施例,当所述当前阶段为所述非试运行阶段,所述非正常状态为所述运行区中运行程序的第二运行状态为异常,非试运行阶段对应的目标版本程序为非升级版本程序时,步骤104包括如下步骤104e至步骤104h。请参见图6,图6示出了本申请提供的一种程序的运行方法中步骤104具体示意性流程图。
70.步骤104e,若确定所述运行区中的所述运行程序为所述非升级版本程序,则确定所述运行区中运行程序的第二运行状态是否正常。
71.由于终端设备在初始运行时,可能存在初始参数的错误等情况,导致运行区中的运行程序不为非升级版本程序,故需要判断运行区中的运行程序是否为非升级版本程序。
72.若确定所述运行区中的所述运行程序为所述非升级版本程序,则确定所述运行区中运行程序的第二运行状态是否正常。
73.若确定所述运行区中运行程序的第二运行状态为正常,则运行所述运行区中的程序。
74.若确定所述运行区中的所述运行程序不为所述非升级版本程序,则执行步骤104j至步骤104m。
75.步骤104f,若确定所述运行区中运行程序的第二运行状态为异常,则校验所述备份区中所述非升级版本程序的第四运行状态。
76.步骤104g,若确定所述第四运行状态为正常,则将所述备份区中所述非升级版本程序转移至所述运行区,并运行所述运行区中的程序。
77.步骤104h,若确定所述第四运行状态为异常,则校验所述备份区中所述升级版本程序的第三运行状态。
78.步骤104i,若确定所述第三运行状态为正常,则将所述备份区中所述升级版本程序转移至所述运行区,并运行所述运行区中的程序。
79.可以理解的是,由于本实施为非试运行阶段,故在选取备份区中的程序时,优先判断非升级版本程序的第四运行状态是否正常,进而优先选取非升级版本程序作为运行区中的运行程序。
80.作为本申请的一个可选实施例,当所述当前阶段为所述非试运行阶段,所述非正常状态为所述运行区中运行程序的第二运行状态为异常,非试运行阶段对应的目标版本程序为非升级版本程序时,步骤104包括如下步骤104i至步骤104n。请参见图7,图7示出了本申请提供的一种程序的运行方法中步骤104具体示意性流程图。
81.步骤104j,若确定所述运行区中的所述运行程序不为所述非升级版本程序,则校验所述备份区中所述非升级版本程序的第四运行状态。
82.步骤104k,若确定所述第四运行状态为正常,则将所述备份区中所述非升级版本程序转移至所述运行区,并运行所述运行区中的程序。
83.步骤104n,若确定所述第四运行状态为异常,则校验所述备份区中所述升级版本程序的第三运行状态。
84.步骤104m,若确定所述第三运行状态为正常,则将所述备份区中所述升级版本程序转移至所述运行区,并运行所述运行区中的程序。
85.可以理解的是,由于本实施为非试运行阶段,故在选取备份区中的程序时,优先判断非升级版本程序的第四运行状态是否正常,进而优先选取非升级版本程序作为运行区中的运行程序。
86.值得一提的是,本实施例利用程序存储器空闲的存储空间,存储两种版本的程序,以在运行失败时,可随意切换至升级版本程序或非升级版本程序,达到双重保险的效果,保证了程序的无缝运行。
87.本实施例通过,在备份区中分别存储升级版本程序和非升级版本程序;根据预设标识确定当前阶段;所述当前阶段包括试运行阶段以及非试运行阶段;校验运行区中运行程序的当前状态;所述运行区与所述备份区为程序存储器预先划分的存储区域;若确定所述运行程序的所述当前状态为非正常状态,则将所述备份区中第一运行状态为正常的程序转移至所述运行区,并运行所述运行区中的程序;所述非正常状态包括所述运行区中运行程序的第二运行状态为异常或所述运行区中运行程序不为当前阶段对应的目标版本程序。上述方案,通过在运行程序前,利用程序存储器空闲的存储空间预先存储升级版本程序和非升级版本程序。以在运行程序出现异常时,在预存的升级版本程序和非升级版本程序中,选择运行状态正常的程序进行运行,保证程序的无缝运行,防止出现运行暂停,导致设备无法正常工作等情况。
88.可选地,在上述图1所示实施例的基础上,在步骤101之前,还包括如下步骤,请参见图8,图8示出了本申请提供的另一种程序的运行方法的示意性流程图。
89.步骤801,获取所述升级版本程序的分段参数;所述分段参数是指所述升级版本程序的不同分段数据包对应的序号。
90.为了防止传输中断时,导致整个升级包数据需要重新传输,故本实施例将升级版本程序的数据包进行分段(用不同序号区分)传输。
91.终端设备获取平台发送的分段参数,执行步骤702至步骤703。
92.步骤802,根据所述不同分段数据包对应的序号,依次获取所述升级版本程序的所述不同分段数据包。
93.步骤803,将所述不同分段数据包拼接,得到所述升级版本程序。
94.在本实施例中,通过获取所述升级版本程序的分段参数;所述分段参数是指所述
升级版本程序的不同分段数据包对应的序号;根据所述不同分段数据包对应的序号,依次获取所述升级版本程序的所述不同分段数据包;将所述不同分段数据包拼接,得到所述升级版本程序。通过上述方案,防止传输中断时,导致整个升级包数据需要重新传输,节省了传输资源。
95.如图9本申请提供了一种程序的运行装置9,请参见图9,图9示出了本申请提供的一种程序的运行装置的示意图,如图9所示一种程序的运行装置包括:
96.存储单元91,用于在备份区中分别存储升级版本程序和非升级版本程序;
97.第一判断单元92,用于根据预设标识确定当前阶段;所述当前阶段包括试运行阶段以及非试运行阶段;
98.校验单元93,用于校验运行区中运行程序的当前状态;所述运行区与所述备份区为程序存储器预先划分的存储区域;
99.第二判断单元94,用于若确定所述运行程序的所述当前状态为非正常状态,则将所述备份区中第一运行状态为正常的程序转移至所述运行区,并运行所述运行区中的程序;所述非正常状态包括所述运行区中运行程序的第二运行状态为异常或所述运行区中运行程序不为当前阶段对应的目标版本程序。
100.本申请提供的一种程序的运行装置通过,在备份区中分别存储升级版本程序和非升级版本程序;根据预设标识确定当前阶段;所述当前阶段包括试运行阶段以及非试运行阶段;校验运行区中运行程序的当前状态;所述运行区与所述备份区为程序存储器预先划分的存储区域;若确定所述运行程序的所述当前状态为非正常状态,则将所述备份区中第一运行状态为正常的程序转移至所述运行区,并运行所述运行区中的程序;所述非正常状态包括所述运行区中运行程序的第二运行状态为异常或所述运行区中运行程序不为当前阶段对应的目标版本程序。上述方案,通过在运行程序前,利用程序存储器空闲的存储空间预先存储升级版本程序和非升级版本程序。以在运行程序出现异常时,在预存的升级版本程序和非升级版本程序中,选择运行状态正常的程序进行运行,保证程序的无缝运行,防止出现运行暂停,导致设备无法正常工作等情况。
101.图10是本发明一实施例提供的一种终端设备的示意图。如图10所示,该实施例的一种终端设备100包括:处理器1001、存储器1002以及存储在所述存储器1002中并可在所述处理器1001上运行的计算机程序1003,例如一种程序的运行程序。所述处理器1001执行所述计算机程序1003时实现上述各个一种程序的运行方法实施例中的步骤,例如图1所示的步骤101至步骤104。或者,所述处理器1001执行所述计算机程序1003时实现上述各装置实施例中各单元的功能,例如图9所示单元91至94的功能。
102.示例性的,所述计算机程序1003可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器1002中,并由所述处理器1001执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序1003在所述一种终端设备100中的执行过程。例如,所述计算机程序1003可以被分割成获取单元和计算单元各单元具体功能如下:
103.存储单元,用于在备份区中分别存储升级版本程序和非升级版本程序;
104.第一判断单元,用于根据预设标识确定当前阶段;所述当前阶段包括试运行阶段以及非试运行阶段;
105.校验单元,用于校验运行区中运行程序的当前状态;所述运行区与所述备份区为程序存储器预先划分的存储区域;
106.第二判断单元,用于若确定所述运行程序的所述当前状态为非正常状态,则将所述备份区中第一运行状态为正常的程序转移至所述运行区,并运行所述运行区中的程序;所述非正常状态包括所述运行区中运行程序的第二运行状态为异常或所述运行区中运行程序不为当前阶段对应的目标版本程序。
107.所述一种终端设备可包括,但不仅限于,处理器1001、存储器1002。本领域技术人员可以理解,图10仅仅是一种终端设备100的示例,并不构成对一种终端设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种终端设备还可以包括输入输出设备、网络接入设备、总线等。
108.所述摄像模块1000用于在同一场景下采集多个偏正图像或在同一场景下采集多个后续图像。
109.所述处理器1001可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
110.所述存储器1002可以是所述一种终端设备100的内部存储单元,例如一种终端设备100的硬盘或内存。所述存储器1002也可以是所述一种终端设备100的外部存储设备,例如所述一种终端设备100上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器1002还可以既包括所述一种终端设备100的内部存储单元也包括外部存储设备。所述存储器1002用于存储所述计算机程序以及所述一种终端设备所需的其他程序和数据。所述存储器1002还可以用于暂时地存储已经输出或者将要输出的数据。
111.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
112.需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
113.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
114.本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
115.本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
116.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
117.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
118.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
119.在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
120.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。
121.应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
122.还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
123.如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于监测到”。类似地,短语“如果确
定”或“如果监测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦监测到[所描述条件或事件]”或“响应于监测到[所描述条件或事件]”。
[0124]
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0125]
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0126]
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1