一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

修复异常任务的方法及装置与流程

2021-11-22 17:38:00 来源:中国专利 TAG:


1.本说明书实施例涉及计算机技术领域,具体地,涉及修复异常任务的方法及装置。


背景技术:

2.rtos(real time operating system,实时操作系统)一般是指具有如下功能或特点的操作系统,即,当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行。
3.rtos相比其他操作系统更加注重实时与轻量,但在设计时并未考虑安全问题。近年来随着搭载有rtos的设备(可简称为rtos设备)的数量增多,安全漏洞的威胁也被放大。
4.因此,迫切需要一种合理、可靠的方案,可以提升rtos设备的安全性。


技术实现要素:

5.本说明书实施例提供了修复异常任务的方法及装置,能有效提升rtos设备的安全性。
6.第一方面,本说明书实施例提供了修复异常任务的方法,通过搭载有实时操作系统rtos的设备执行,所述设备中配置有异常处理函数和调试组件,所述方法包括:响应于确定所述设备当前执行的任务将要从第一任务切换到第二任务,检测所述第一任务是否发生缓冲区溢出;若检测结果为是,则将所述第一任务确定为异常任务;利用所述异常处理函数调用所述调试组件,使得所述调试组件将所述异常任务的第一任务函数替换为目标函数。
7.在一些实施例中,在所述将所述异常任务的第一任务函数替换为目标函数之前,还包括:从预设的函数集合中选取出一个函数作为目标函数。
8.在一些实施例中,所述函数集合包括无限循环函数和/或与所述异常任务有关的第二任务函数。
9.在一些实施例中,所述从预设的函数集合中选取出一个函数作为目标函数,包括:当所述函数集合包括所述无限循环函数时,选取所述无限循环函数作为目标函数。
10.在一些实施例中,所述从预设的函数集合中选取出一个函数作为目标函数,包括:当所述函数集合包括所述第二任务函数时,若所述异常任务包括多个子任务,并且所述第二任务函数是所述多个子任务之一的任务函数,则选取所述第二任务函数作为目标函数。
11.在一些实施例中,所述从预设的函数集合中选取出一个函数作为目标函数,包括:当所述函数集合包括所述无限循环函数和所述第二任务函数时,确定所述第一任务函数是否与所述第二任务函数相同;若确定结果为是,则选取所述无限循环函数作为目标函数;若确定结果为否,则选取所述第二任务函数作为目标函数。
12.在一些实施例中,所述设备包括arm处理器,所述arm处理器包括所述调试组件和闪存地址重载及断点单元fpb,所述fpb包括重映射函数;以及所述将所述异常任务的第一任务函数替换为目标函数,包括:利用所述重映射函数,将所述第一任务函数重映射为所述
目标函数。
13.在一些实施例中,在将所述无限循环函数作为目标函数的情况下,在所述将所述异常任务的第一任务函数替换为目标函数之后,还包括:向所述设备所属的用户呈现用于进行异常提示的提示信息。
14.在一些实施例中,在将所述无限循环函数作为目标函数的情况下,在所述将所述异常任务的第一任务函数替换为目标函数之后,还包括:响应于检测到所述第二任务执行完成,控制所述设备重启。
15.在一些实施例中,所述异常处理函数包括所述rtos自带的hook函数,或者开发人员编写的中断处理函数。
16.在一些实施例中,所述检测所述第一任务是否发生缓冲区溢出,包括:检测所述第一任务是否发生栈溢出,和/或检测所述第一任务是否发生堆溢出。
17.在一些实施例中,所述检测所述第一任务是否发生栈溢出,包括:根据所述第一任务的栈空间的生长方向,修改所述栈空间的栈顶指针;确定修改后的所述栈顶指针指向的地址是否包含在所述栈空间的地址范围内;若确定结果为是,则确定所述第一任务未发生栈溢出;若确定结果为否,则确定所述第一任务发生栈溢出。
18.在一些实施例中,所述生长方向为从高地址向低地址生长;以及所述修改所述栈空间的栈顶指针,包括:将所述栈顶指针递减1。
19.在一些实施例中,所述检测所述第一任务是否发生栈溢出,包括:确定栈空间栈底第一预设字节的内容是否与第一标记信息相同;其中,所述第一标记信息是所述栈空间进行初始化时,针对栈底第一预设字节的内容进行初始化的信息;
20.若确定结果为是,则确定所述第一任务未发生栈溢出;若确定结果为否,则确定所述第一任务发生栈溢出。
21.在一些实施例中,所述检测所述第一任务是否发生堆溢出,包括:确定堆空间底部第二预设字节的内容是否与第二标记信息相同;其中,所述第二标记信息是所述第一任务的堆空间进行初始化时,针对底部第二预设字节的内容进行初始化的信息;若确定结果为是,则确定所述第一任务未发生堆溢出;若确定结果为否,则确定所述第一任务发生堆溢出。
22.第二方面,本说明书实施例提供了一种修复异常任务的装置,应用于搭载有实时操作系统rtos的设备,所述设备中配置有异常处理函数和调试组件,所述装置包括:检测单元,被配置成响应于确定所述设备当前执行的任务将要从第一任务切换到第二任务,检测所述第一任务是否发生缓冲区溢出;确定单元,被配置成若所述检测单元的检测结果为是,则将所述第一任务确定为异常任务;修复单元,被配置成利用所述异常处理函数调用所述调试组件,使得所述调试组件将所述异常任务的第一任务函数替换为目标函数。
23.第三方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,当该计算机程序在计算机中执行时,令该计算机执行如第一方面中任一实现方式描述的方法。
24.第四方面,本说明书实施例提供了一种计算设备,包括存储器和处理器,其中,该存储器中存储有可执行代码,该处理器执行该可执行代码时,实现如第一方面中任一实现方式描述的方法。
25.第五方面,本说明书实施例提供了一种计算机程序,其中,当该计算机程序在计算机中执行时,令该计算机执行如第一方面中任一实现方式描述的方法。
26.本说明书的上述实施例提供的修复异常任务的方法及装置,可以在确定rtos设备当前执行的任务将要从第一任务切换到第二任务时,检测第一任务是否发生缓冲区溢出,并在检测到第一任务发生缓冲区溢出时,将第一任务确定为异常任务,以及利用异常处理函数调用调试组件,使得调试组件将该异常任务的第一任务函数替换为目标函数。由此,可以在无须人为干预的情况下在线修复异常任务,使得rtos设备继续执行能正常执行的任务(如第二任务等),避免rtos设备一旦检测到缓冲区溢出就直接崩溃,整机重启。这样,能有效提高rtos设备的安全性。
附图说明
27.为了更清楚地说明本说明书披露的多个实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书披露的多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
28.图1是本说明书的一些实施例可以应用于其中的一个示例性系统架构图;
29.图2是修复异常任务的方法的一个实施例的流程图;
30.图3是异常任务修复过程的一个示意图;
31.图4是异常任务修复过程的一个示意图;
32.图5是修复异常任务的装置的一个结构示意图。
具体实施方式
33.下面结合附图和实施例对本说明书作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
34.需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本说明书中的实施例及实施例中的特征可以相互组合。另外,本说明书中的“第一”、“第二”等词,仅用于信息区分,不起任何限定作用。
35.如前所述,rtos相比其他操作系统更加注重实时与轻量,但在设计时并未考虑安全问题。近年来随着rtos设备的数量增多,安全漏洞的威胁也被放大。
36.基于此,本说明书的一些实施例提供了修复异常任务的方法,通过该方法,能有效提升rtos设备的安全性。具体地,图1示出了适用于这些实施例的示例性系统架构图。
37.如图1所示,系统架构可以包括rtos设备100。在一些实施例中,rtos设备100可以是嵌入式设备。在一些实施例中,rtos设备100可以是iot(internet of things,物联网)设备。
38.rtos设备100可以配置有异常处理函数和调试组件。异常处理函数可以用于进行异常处理,通常在识别出异常任务时调用。调试组件可以用于对rtos设备100进行调试,并且能供异常处理函数调用。需要指出,调试组件能使开发人员控制代码的执行流程、修改变
量值等。另外,调试组件可以包含由开发人员编写的针对异常任务的修复逻辑。
39.实践中,rtos设备100可以用于进行多任务处理,其在同一时刻处理多个任务中的一个任务。通常,rtos设备100中配置有调度器,调度器可以根据设定的调度策略,对多个任务进行调度。其中,调度策略一般是调度器用来决定哪个任务在哪个时间点执行的算法。例如,该多个任务包括如图1中示出的任务a和任务b,rtos设备100当前执行的任务为任务a,当任务b的执行时间到来时,调度器可以决定将当前执行的任务从任务a切换到任务b。
40.目前,攻击者可以通过任务的缓冲区溢出来实现设备崩溃、远程任意代码执行等。另外,如果任务的缓冲区空间较小,也容易导致任务发生缓冲区溢出。为了确保rtos设备100的安全性,在当前执行的任务将要从任务a切换到任务b时,rtos设备100可以通过检测任务a是否发生缓冲区溢出,来识别任务a是否为异常任务。在识别出任务a为异常任务时,rtos设备100可以利用异常处理函数调用调试组件,使得调试组件对该异常任务进行修复。
41.具体地,rtos设备100例如可以包括用于控制异常任务修复的组件(如图1中示出的修复处理组件)、装置或单元等。以修复处理组件为例,如图1所示,rtos设备100可以利用修复处理组件对任务a进行异常任务识别。当识别出任务a为异常任务时,修复处理组件可以调用异常处理函数,其中,异常处理函数的输入参数可以包括该异常任务的任务信息。该任务信息例如可以包括但不限于该异常任务的任务句柄、任务标识和/或任务名称。接着,异常处理函数可以调用调试组件,并将该任务信息作为该调试组件的输入参数,从而使得该调试组件根据该任务信息定位到该异常任务,并将该异常任务的任务函数替换为目标函数。
42.之后,rtos设备100可以继续将当前执行的任务切换到任务b,使得任务b正常执行。这样,可以避免rtos设备100一旦检测到缓冲区溢出就直接崩溃,整机重启。由此,能有效提高rtos设备100的安全性。
43.下面,结合具体的实施例,描述上述方法的具体实施步骤。需要说明,为了便于区分不同任务的任务函数,下文中将异常任务的任务函数称为第一任务函数。
44.参看图2,其示出了修复异常任务的方法的一个实施例的流程200。该方法的执行主体可以为搭载有rtos的设备(例如图1所示的rtos设备100),rtos,或者如前所述的修复处理组件等,在此不做具体限定。该方法包括以下步骤:
45.步骤202,响应于确定设备当前执行的任务将要从第一任务切换到第二任务,检测第一任务是否发生缓冲区溢出;
46.步骤204,若检测结果为是,则将第一任务确定为异常任务;
47.步骤208,利用异常处理函数调用调试组件,使得调试组件将异常任务的第一任务函数替换为目标函数。
48.下面,以rtos设备为执行主体为例,对以上各步骤做进一步说明。
49.在步骤202中,rtos设备可以响应于确定当前执行的任务将要从第一任务(如图1中示出的任务a)切换到第二任务(如图1中示出的任务b),检测第一任务是否发生缓冲区溢出。
50.实践中,rtos设备中的调度器在决定将当前执行的任务从第一任务切换到第二任务时,可以向rtos设备发送切换提示信息,rtos设备可以根据该切换提示信息,获知当前执行的任务将要从第一任务切换到第二任务。可选地,rtos设备中可以配置有起切换提示作
用的第一参数,调度器可以根据第一任务和第二任务更新第一参数的参数值。rtos设备可以通过读取第一参数的参数值,获知当前执行的任务将要从第一任务切换到第二任务。
51.第一任务的缓冲区可以包括栈空间(可称为任务栈,或简称为栈)和/或堆空间(可简称为堆)。实践中,堆和栈均是数据结构。堆用于存放任务函数中的对象,并且堆的生长方向为从低地址向高地址生长。栈用于存放任务函数的参数值、局部变量的值、返回地址等。栈的生长方向可以为从高地址向低地址生长,也可以为从低地址向高地址生长。目前,多数栈的生长方向为从高地址向低地址生长。另外,栈具有只能从栈的顶端存取数据,以及数据的存取符合后进先出的原则等特性。
52.基于以上对堆和栈的描述,检测第一任务是否发生缓冲区溢出可以包括,检测第一任务是否发生栈溢出,和/或检测第一任务是否发生堆溢出。具体地,对于第一任务的栈空间和堆空间,rtos设备可以先检测该栈空间和该堆空间中的任意一者是否发生溢出。若检测到该者发生溢出,则可以执行步骤204;否则,可以接着检测另一者是否发生溢出。若检测到该另一者发生溢出,则可以执行步骤204;否则,可以结束对上述流程200的执行。
53.在检测第一任务是否发生栈溢出时,rtos设备可以采用各种检测方法。
54.作为一种栈溢出检测实现方式,可以根据第一任务的栈空间的生长方向,修改栈空间的栈顶指针。而后,确定修改后的栈顶指针指向的地址是否包含在栈空间的地址范围内。若确定结果为是,则确定第一任务未发生栈溢出。若确定结果为否,则确定第一任务发生栈溢出。其中,当栈空间的生长方向为从高地址向低地址生长时,可以将栈顶指针递减1。当栈空间的生长方向为从低地址向高地址生长时,可以将栈顶指针递增1。
55.作为另一种栈溢出检测实现方式,可以确定栈空间栈底第一预设字节的内容是否与第一标记信息相同。其中,第一标记信息是栈空间进行初始化时,针对栈底第一预设字节的内容进行初始化的信息。若确定结果为是,则确定第一任务未发生栈溢出。若确定结果为否,则意味着栈空间中原有的第一标记信息已被覆盖,从而可确定第一任务发生栈溢出。需要指出,第一预设字节的长度,以及第一标记信息的具体内容,可根据实际需求设定,在此不做具体限定。
56.作为又一种栈溢出检测实现方式,为了确保栈溢出检测结果的准确度,可以结合前两种栈溢出检测实现方式,检测第一任务是否发生栈溢出。
57.例如,可以先采用第一种栈溢出检测实现方式,确定修改后的栈顶指针指向的地址是否包含在栈空间的地址范围内。若确定结果为否,则确定第一任务发生栈溢出。若确定结果为是,则接着采用第二种栈溢出检测实现方式,确定栈空间栈底第一预设字节的内容是否与第一标记信息相同;若二者相同,则确定第一任务未发生栈溢出;若二者不相同,则确定第一任务发生栈溢出。
58.再例如,可以先采用第二种栈溢出检测实现方式,确定栈空间栈底第一预设字节的内容是否与第一标记信息相同。若确定结果为否,则确定第一任务发生栈溢出。若确定结果为是,则接着采用第一种栈溢出检测实现方式,确定修改后的栈顶指针指向的地址是否包含在栈空间的地址范围内;若该指向的地址包含在该地址范围内,则确定第一任务未发生栈溢出;若该指向的地址未包含在该地址范围内,则确定第一任务发生栈溢出。
59.在检测第一任务是否发生堆溢出时,rtos设备也可以采用各种检测方法。
60.作为一种堆溢出检测实现方式,可以确定堆空间底部第二预设字节的内容是否与
第二标记信息相同。其中,第二标记信息是第一任务的堆空间进行初始化时,针对底部第二预设字节的内容进行初始化的信息。若确定结果为是,则确定第一任务未发生堆溢出。若确定结果为否,则意味着堆空间中原有的第二标记信息已被覆盖,从而可确定第一任务发生堆溢出。需要指出,第二预设字节的长度,以及第二标记信息的具体内容,可以根据实际需求设定,在此不做具体限定。
61.作为另一种堆溢出检测实现方式,可以确定堆空间中第一位置处的内容是否与第三标记信息相同。其中,第一位置原有的内容为第三标记信息,堆空间中第二位置原有的内容为指向其他函数的指针;第一位置和第二位置相邻,且第一位置的地址高于第二位置的地址。若确定结果为是,则确定第一任务未发生堆溢出。若确定结果为否,则意味着第一位置原有的第三标记信息已被覆盖,从而可确定第一任务发生堆溢出。需要指出,第三标记信息的具体内容,可以根据实际需求设定,在此不做具体限定。
62.应该理解,以上描述的栈溢出检测实现方式和堆溢出检测实现方式,仅是示例性的实现方式,实际应用中还可以采用其他检测方式,在此不做具体限定。
63.当在步骤202中检测到第一任务发生缓冲区溢出时,例如具体检测到第一任务发生栈溢出或堆溢出,可以接着执行步骤204,将第一任务确定为异常任务。
64.接着,在步骤208中,rtos设备可以利用异常处理函数调用调试组件,使得调试组件将异常任务的第一任务函数替换为目标函数。
65.作为一个示例,目标函数可以是预先设定的用于替换各种任务函数的通用函数。例如,目标函数可以为无限循环函数。其中,无限循环函数包括但不限于while(1)。
66.需要说明,异常处理函数可以是rtos自带的hook函数(也可称为钩子函数),或者开发人员编写的中断处理函数,在此不做具体限定。以现有的freertos为例,freertos自带的用于堆栈溢出处理的hook函数,一般为vapplicationstackoverflowhook()。
67.在一些实施例中,调试组件可以直接将第一任务函数替换为目标函数。
68.在一些实施例中,rtos设备可以包括arm处理器,arm处理器可以包括调试组件和fpb(flash patch breakpoint,闪存地址重载及断点单元),fpb可以包括重映射函数。该重映射函数一般为remap()。调试组件可以利用重映射函数,将第一任务函数重映射为目标函数。
69.在一些实施例中,目标函数也可以是rtos设备针对第一任务函数选定的。具体地,在步骤208之前,还可以包括:步骤206,从预设的函数集合中选取出一个函数作为目标函数。
70.其中,函数集合可以包括无限循环函数和/或与异常任务有关的第二任务函数。其中,当异常任务包括多个子任务时,第二任务函数可以是该多个子任务之一的任务函数。作为示例,假设异常任务用于处理多种报文,该多种报文的报文类别包括m1、m2、m3,异常任务的多个子任务分别为用于处理m1类别的报文的子任务1,用于处理m2类别的报文的子任务2,以及用于处理m3类别的报文的子任务3,第二任务函数可以是子任务1、子任务2和子任务3这三者中任一者的任务函数。
71.作为一种实现方式,当函数集合包括无限循环函数时,可以选取无限循环函数作为目标函数。
72.作为另一种实现方式,当函数集合包括第二任务函数时,若异常任务包括多个子
任务,并且第二任务函数是该多个子任务之一的任务函数,则可以选取第二任务函数作为目标函数。
73.作为又一种实现方式,当函数集合包括无限循环函数和第二任务函数时,确定第一任务函数是否与第二任务函数相同。若确定结果为是,则意味着第一任务函数实际上是替换后的任务函数,例如在此之前已利用第二任务函数对第一任务函数对应的原始任务函数进行替换,从而可选取无限循环函数作为目标函数。若确定结果为否,则选取第二任务函数作为目标函数。
74.需要说明,基于最后一种实现方式选定目标函数,可以实现如图3示出的异常任务修复过程。如图3所示,在异常任务包括多个子任务时,可以将异常任务的任务函数替换为该多个子任务之一的任务函数。这样,能对异常任务进行降级,从而改变rtos设备的功能。后续,若替换后的任务函数所属的任务再次被判定为异常任务,则可以将该替换后的任务函数替换为无限循环函数。
75.图2对应的实施例提供的修复异常任务的方法,可以将发生缓冲区溢出的任务确定为异常任务,并利用异常处理函数调用调试组件,使得调试组件将该异常任务的任务函数替换为目标函数。由此,可以在无须人为干预的情况下在线修复异常任务,使得rtos设备继续执行能正常执行的任务,避免rtos设备一旦检测到缓冲区溢出就直接崩溃,整机重启。这样,能有效提高rtos设备的安全性。
76.实践中,在步骤208执行完成后,调度器一般会挂起目标函数,并将当前执行的任务切换到第二任务,从而使得第二任务正常执行。
77.在一些实施例中,在目标函数为无限循环函数的情况下,在将第一任务函数替换为无限循环函数后,rtos设备可以向用户呈现用于进行异常提示的提示信息,和/或响应于检测到第二任务执行完成,控制设备重启。
78.具体地,在目标函数为无限循环函数的情况下,rtos设备可以执行如图4示出的异常任务修复过程。如图4所示,在rtos设备如标号402所示,将第一任务函数替换为无限循环函数后,可以接着如标号404所示,向用户呈现用于进行异常提示的提示信息。然后,可以如标号406所示,响应于检测到第二任务执行完成,控制设备重启。
79.采用图4示出的异常任务修复过程,不仅可以向用户进行异常提示,而且当第二任务不方便中断时,例如第二任务正在上传/下载大文件数据等,能进行应急,至少确保第二任务能正常执行完成。
80.需要说明,对提示信息的呈现,以及对设备重启的控制,可以具体由调试组件执行,在此不做具体限定。
81.进一步参考图5,本说明书提供了一种修复异常任务的装置的一个实施例,该装置可以应用于搭载有rtos的设备(例如图1所示的rtos设备100),或者rtos等。
82.如图5所示,本实施例的修复异常任务的装置500包括:检测单元501、确定单元502和修复单元503。其中,检测单元501被配置成响应于确定设备当前执行的任务将要从第一任务切换到第二任务,检测第一任务是否发生缓冲区溢出;确定单元502被配置成若检测单元501的检测结果为是,则将第一任务确定为异常任务;修复单元503被配置成利用异常处理函数调用调试组件,使得调试组件将异常任务的第一任务函数替换为目标函数。
83.在一些实施例中,上述装置500还可以包括:选取单元(图中未示出),被配置成从
预设的函数集合中选取出一个函数作为目标函数。
84.在一些实施例中,函数集合包括无限循环函数和/或与异常任务有关的第二任务函数。
85.在一些实施例中,选取单元可以进一步被配置成:当函数集合包括无限循环函数时,选取无限循环函数作为目标函数。
86.在一些实施例中,选取单元可以进一步被配置成:当函数集合包括第二任务函数时,若异常任务包括多个子任务,并且第二任务函数是该多个子任务之一的任务函数,则选取第二任务函数作为目标函数。
87.在一些实施例中,选取单元可以进一步被配置成:当函数集合包括无限循环函数和第二任务函数时,确定第一任务函数是否与第二任务函数相同;若确定结果为是,则选取无限循环函数作为目标函数;若确定结果为否,则选取第二任务函数作为目标函数。
88.在一些实施例中,上述设备包括arm处理器,arm处理器包括调试组件和闪存地址重载及断点单元fpb,fpb包括重映射函数;以及修复单元503可以进一步被配置成:利用重映射函数,将第一任务函数重映射为目标函数。
89.在一些实施例中,在将无限循环函数作为目标函数的情况下,修复单元503还可以被配置成:在将异常任务的第一任务函数替换为目标函数之后,向设备所属的用户呈现用于进行异常提示的提示信息。
90.在一些实施例中,在将无限循环函数作为目标函数的情况下,修复单元503还可以被配置成:在将异常任务的第一任务函数替换为目标函数之后,响应于检测到第二任务执行完成,控制设备重启。
91.需要说明,以上各单元的具体处理及其带来的技术效果可参考相关方法实施例中的相关说明,在此不再赘述。
92.本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,当该计算机程序在计算机中执行时,令计算机执行以上各方法实施例分别描述的修复异常任务的方法。
93.本说明书实施例还提供了一种计算设备,包括存储器和处理器,其中,该存储器中存储有可执行代码,该处理器执行该可执行代码时,实现以上各方法实施例分别描述的修复异常任务的方法。
94.本说明书实施例还提供了一种计算机程序,其中,当该计算机程序在计算机中执行时,令计算机执行以上各方法实施例分别描述的修复异常任务的方法。
95.本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书披露的多个实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
96.在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
97.以上所述的具体实施方式,对本说明书披露的多个实施例的目的、技术方案和有
益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书披露的多个实施例的具体实施方式而已,并不用于限定本说明书披露的多个实施例的保护范围,凡在本说明书披露的多个实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书披露的多个实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献