CN116302690A - 智能设备及其系统程序切换控制方法 - Google Patents
智能设备及其系统程序切换控制方法 Download PDFInfo
- Publication number
- CN116302690A CN116302690A CN202310151097.5A CN202310151097A CN116302690A CN 116302690 A CN116302690 A CN 116302690A CN 202310151097 A CN202310151097 A CN 202310151097A CN 116302690 A CN116302690 A CN 116302690A
- Authority
- CN
- China
- Prior art keywords
- upgrade
- system program
- data
- frame
- version number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种智能设备及其系统程序切换控制方法。方法应用于一智能设备。智能设备包括存储器,所述存储器存放第一系统程序和第二系统程序,其中,所述第一系统程序为能够被所述处理器运行且能够被更新升级的系统程序,所述第二系统程序为预先设置的能够被所述处理器运行的系统程序,所述处理器用于:判断所述第一系统程序是否能够正常运行;在确定所述第一系统程序能够正常运行时,运行所述第一系统程序来控制所述智能设备工作;在确定所述第一系统程序不能够正常运行时,跳转运行所述第二系统程序来控制所述智能设备工作。从而,可以避免因为第一系统程序不能运行所导致的宕机问题。
Description
技术领域
本申请涉及一种系统升级领域,特别涉及一种智能设备及其系统程序切换控制方法。
背景技术
现有技术中,智能设备,例如,智能滑板车、智能机器人、智能手表等,在有新的系统版本需要更新升级时,需要通过智能终端,例如手机,将新的系统版本的数据传输给待升级的智能设备以对智能设备中的系统版本进行升级。然而,现有技术中,在进行系统版本升级时,如果出现升级失败,容易出现宕机问题,另外,如果当前系统版本出现运行故障时,也容易出现宕机问题。系统宕机会导致智能设备不能使用。
发明内容
有鉴于此,本申请提供一种智能设备及其系统程序切换控制方法,在出现系统宕机时,可以切换运行备份区的第二系统程序,以解决上述技术问题。
第一方面,本申请提供一种系统程序切换控制方法,应用于一智能设备,所述智能设备存储有第一系统程序和第二系统程序,所述第一系统程序为能够被所述智能设备运行且能够被更新升级的系统程序,所述第二系统程序为预先设置的能够被所述智能设备运行的系统程序,所述系统程序切换控制方法包括步骤:
判断所述第一系统程序是否能够正常运行;
在确定所述第一系统程序能够正常运行时,运行所述第一系统程序来控制所述智能设备工作;
在确定所述第一系统程序不能够正常运行时,跳转至运行所述第二系统程序来控制所述智能设备工作。
第二方面,本申请提供一种智能设备,包括处理器和存储器,所述存储器与所述处理器电性连接,所述存储器存放第一系统程序和第二系统程序,其中,所述第一系统程序为能够被所述处理器运行且能够被更新升级的系统程序,所述第二系统程序为预先设置的能够被所述处理器运行的系统程序,所述处理器用于:
判断所述第一系统程序是否能够正常运行;
在确定所述第一系统程序能够正常运行时,运行所述第一系统程序来控制所述智能设备工作;
在确定所述第一系统程序不能够正常运行时,跳转运行所述第二系统程序来控制所述智能设备工作。
第三方面,本申请提供一种系统升级控制方法,所述方法应用于一智能设备,所述智能设备存储有第一系统程序,所述系统更新方法包括步骤:
在接收到由一智能终端发送的升级指令时,确定当前是否可以进行升级
当确认可以升级时,向所述智能终端反馈可以升级并接收由所述智能终端发送的升级包,所述升级包包括多帧数据;
每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验;
如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备以实现对所述第一系统程序的升级。
优选地,所述方法还包括:在该帧数据的数据接收校验失败时,向所述智能终端反馈校验失败信息以使得所述智能终端重新发送该帧数据;再次对该帧数据进行数据传输校验并在数据传输校验成功时,将该帧数据写入到所述智能设备并将该帧数据的校验值存储在所述智能设备内。
优选地,所述方法还包括:当所述升级包的所有帧数据都写入所述智能设备时,对写入所述智能设备的升级包的每帧数据进行存储数据校验;
在所述升级包的每帧数据的存储数据校验成功后,确认对所述第一系统程序的升级成功。
优选地,所述方法还包括:在所述升级包的任何一帧数据的存储数据校验失败时,确定对所述第一系统程序的升级失败,并记录当前存储数据校验的失败帧以及所述升级包的第一升级版本号,且确定所述第一系统程序不能够正常运行。
优选地,所述方法还包括:在接收到下一次升级指令时,确定该下一次升级指令中所包含的第二升级版本号;
将该下一次升级指令中所包含的第二升级版本号与上一次失败所记录的第一升级版本号进行比较;
如果所述第二升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第二升级版本号所对应的第二升级包中与所述失败帧的位置相对应的位置处开始进行所述第二升级包的剩余帧数据的逐一传输;
所述智能设备在每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备以对所述第一系统程序从上次升级失败的位置进行重新升级。
优选地,所述方法还包括:在接收到又一升级指令时,判断当前是运行所述第一系统程序还是运行所述第二系统程序;
如果当前运行所述第一系统程序,则对所述第一系统程序从头开始升级;
如果当前运行所述第二系统程序,则判断所述升级指令中所包括的第三升级版本号与上一次失败所记录的第一升级版本号是否相同;
如果所述第三升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输;
所述智能设备在每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备以对所述第一系统程序从上次升级失败的位置进行重新升级。
第四方面,本申请还提供一种智能设备,所述智能设备包括处理器和存储器,所述存储器存储有计算机程序和第一系统程序,所述处理器运行所述计算机程序而执行:
在接收到由一智能终端发送的升级指令时,确定当前是否可以进行升级
当确认可以升级时,向所述智能终端反馈可以升级并接收由所述智能终端发送的升级包,所述升级包包括多帧数据;
每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验;
如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备以实现对所述第一系统程序的升级。
优选地,所述存储器包括工作区,所述工作区存放所述第一系统程序。
优选地,所述存储器还包括升级区,所述升级区存储所述计算机程序,所述计算机程序为系统升级控制程序。
优选地,所述存储器还包括数据区,所述处理器运行所述计算机程序还执行:
在该帧数据的数据接收校验失败时,向所述智能终端反馈校验失败信息以使得所述智能终端重新发送该帧数据;再次对该帧数据进行数据传输校验并在数据传输校验成功时,将该帧数据写入到所述工作区内并将该帧数据的校验值存储在所述数据区内。
优选地,所述处理器运行所述计算机程序还执行:当所述升级包的所有帧数据都写入所述工作区内时,对写入所述工作区的升级包的每帧数据进行存储数据校验;
在所述升级包的每帧数据的存储数据校验成功后,确认对所述第一系统程序的升级成功。
优选地,所述处理器运行所述计算机程序还执行:在所述升级包的任何一帧数据的存储数据校验失败时,确定对所述第一系统程序的升级失败,并记录当前存储数据校验的失败帧以及所述升级包的第一升级版本号,且确定所述第一系统程序不能够正常运行。
优选地,所述处理器运行所述计算机程序还执行:在接收到下一次升级指令时,确定该下一次升级指令中所包含的第二升级版本号;
将该下一次升级指令中所包含的第二升级版本号与上一次失败所记录的第一升级版本号进行比较;
如果所述第二升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第二升级版本号所对应的第二升级包中与所述失败帧的位置相对应的位置处开始进行所述第二升级包的剩余帧数据的逐一传输;
在每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备以对所述第一系统程序从上次升级失败的位置进行重新升级。
优选地,所述处理器运行所述计算机程序还执行:在接收到又一升级指令时,判断当前是运行所述第一系统程序还是运行所述第二系统程序;
如果当前运行所述第一系统程序,则对所述第一系统程序从头开始升级;
如果当前运行所述第二系统程序,则判断所述升级指令中所包括的第三升级版本号与上一次失败所记录的第一升级版本号是否相同;
如果所述第三升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输;
在每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述工作区以对所述第一系统程序从上次升级失败的位置进行重新升级。
从而,本申请中,当所述第一系统程序不能正常运行时,可以跳转运行所述第二系统程序,来控制所述智能设备的正常工作,避免因为所述第一系统程序不能运行所导致的宕机问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例中的智能设备的模块示意图。
图2为本申请一实施例中的系统程序切换控制方法的流程示意图。
图3为本申请一实施例中的系统程序切换控制方法中有关系统升级的流程示意图。
图4为本申请另一实施例中的系统程序切换控制方法中有关系统升级的流程示意图。
图5为本申请一实施例中的系统升级控制方法的流程示意图。
图6为本申请另一实施例中的系统升级控制方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本申请。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。本申请中使用的“一个”、“一”或“该”等类似词语也不表示数量限制,而只是用来表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词语前面的元件或物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其它元件或物件。“连接”或者相连等类似的词语并非限定于物理的或者机械的连接,而是可以包含电性的连接,不管是直接的还是间接的。
在本说明书的描述中,参考术语“实施例”、“具体实施例”、“示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
请参考图1,图1为本申请一实施例中的智能设备的模块示意图。所述智能设备1可以是但不限于智能滑板车、智能机器人、智能手表等需要通过智能终端2进行系统更新升级的电子设备。所述智能终端2可以是但不限于手机、平板电脑等智能终端。所述智能设备1包括处理器11和存储器12。在一些实施例中,所述处理器11和所述存储器12为可以集成在一体的处理器芯片,例如,CPU,也就是说,所述存储器12为该处理器芯片内置的存储空间。在其它实施例中,所述存储器12可以为独立于处理器芯片但与该处理器芯片电连接的存储设备。所述存储器12用于存放第一系统程序和第二系统程序,所述第一系统程序为能够被所述处理器11运行且能够被更新升级的系统程序。所述第二系统程序为预先设置的能够被所述处理器11运行的系统程序。所述处理器11用于判断所述第一系统程序是否能够正常运行。所述处理器11在确定所述第一系统程序能够正常运行时,运行所述第一系统程序来控制所述智能设备1工作;所述处理器11在确定所述第一系统程序不能够正常运行时,跳转至运行所述第二系统程序来控制所述智能设备1工作。
从而,本申请中,通过预设有备份的第二系统程序,即,原始系统程序版本,在所述第一系统程序不能正常运行时,可以跳转运行所述第二系统程序来控制所述智能设备1的正常工作,避免因为所述第一系统程序不能运行所导致的宕机问题,可以有效确保智能设备1能够可靠地运行。
其中,所述第一系统程序和所述第二系统程序在出厂时是相同的系统程序,即,都为原始系统程序版本。然而,所述第一系统程序为系统默认运行的能够被更新升级的系统程序,所述第二系统程序为出厂时预存的系统程序,其不能被更新升级,因此,所述第一系统程序可以在后续使用的过程中被一次或者多次更新升级,并且,随着所述第一系统程序被持续的更新升级,所述第一系统程序将不同于所述第二系统程序。
其中,所述第一系统程序不能正常运行的情形包括但不限于所述第一系统程序运行异常和所述第一系统程序升级失败的其中至少一种。其中,所述第一系统程序运行异常可以包括但不限于所述第一系统程序在运行的过程中出现了卡顿、死机、运行过慢等情况,卡顿和死机可以是因为剩余内存太小导致、环境温度过低或者过高所导致等。所述第一系统程序升级失败的情况可以包括但不限于用于更新升级的数据在传输过程中和/或数据存储过程中出现错误导致升级失败的情况。
在一些实施例中,所述存储器12包括工作区121和备份区122。其中,所述工作区121用于存放所述第一系统程序,所述备份区122用于存放所述第二系统程序。
从而,通过在所述存储器12上划分工作区121和备份区122,将所述第一系统程序和所述第二系统程序分开存放,使得所述第一系统程序和所述第二系统程序的运行以及更新互不干扰,也方便后续对所述第一系统程序的更新、扩展以及后续的系统维护操作。
在一些实施例中,所述存储器12还包括升级区123,所述升级区123存储有系统升级控制程序,所述处理器11用于接收由一智能终端2发送的升级指令时,确定当前是否可以进行升级,以及当确认可以升级时,运行所述系统升级控制程序以对所述第一系统程序的升级过程的控制。
从而,所述存储器12还单独分出一个升级区123,用于存储系统升级控制程序,在需要升级的时候,通过运行该升级控制程序来实现对所述第一系统程序的升级过程的控制,通过分区存储,分区控制,方便对每个区的程序的管理、更新和维护。
其中,所述智能设备1是否可以升级主要根据所述智能设备1当前的工作状态是否可以打断来判断。一些情况下,所述智能设备1在正常工作状态则不可以被打断,比如,扫地机器人在扫地状态、滑板车在骑行状态、智能手表在正常使用状态,可以理解的是,一些实施例中,智能手表的正常使用状态是指未充电且正常开机运行的状态,比如,有些智能手表只有在充电状态才可以进行软件的更新升级。所述智能设备1在待机状态则可以被打断,比如,扫地机器人待在基站,滑板车停止状态、智能手表处于充电状态等。
在一些实施例中,所述处理器11还用于向所述智能终端2反馈是否可以升级。
从而,通过所述智能设备1和所述智能终端2的交互,可以确认所述智能设备1当前是否可以升级,以让所述智能终端2知悉所述智能设备1当前是否可以升级,以方便进行后续的升级控制。
在一些实施例中,所述智能设备1还包括通讯单元13,所述通讯单元13与所述处理器11电性连接。所述通讯单元13可以是但不限于蓝牙单元、WIFI单元等短距离通讯模块。当然,所述通讯单元13还可以是长距离通讯模块,在此不做限定。所述处理器11用于:控制所述通讯单元13接收由所述智能终端2发送的升级包,所述升级包包括多帧数据;对接收到的所述升级包的多帧数据进行数据传输校验,并在数据传输校验成功后,将所述升级包的多帧数据依次写入到所述工作区121。
从而,在所述智能设备1可升级时,通过所述通讯单元13接收由所述智能终端2发送的升级包,所述升级包包括多帧数据;通过对接收到的所述升级包的多帧数据进行数据传输校验,并在数据传输校验成功后,将所述升级包的多帧数据依次写入到所述工作区121,可以实现对所述第一系统程序的升级过程的控制。
在一些实施例中,所述处理器11还用于:通过所述通讯单元13每次接收到由所述智能终端2发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述工作区121以对所述第一系统程序进行升级。
从而,通过上述方法,可以实现对所述升级包中的每帧数据实现边传输边校验边写入以实现对所述第一系统程序的升级,有效地提高升级速率。可以理解的是,所述升级包的数据写入到所述工作区121的过程本身就是对所述第一系统程序升级的过程。此外,由于所述通讯单元13一般为蓝牙,而且,蓝牙最大传输的字节数只有几十个字节且传输过程中容易存在数据传输错误,因此,需要每次传输一帧数据后,对该帧数据进行数据传输校验,待数据传输校验成功后,将该帧数据写入到所述工作区121以对所述第一系统程序进行升级,因此,通过数据传输校验可以校验每帧数据的数据传输过程中可能存在的错误。
具体地,每帧数据的传输格式为帧头+程序数据+校验值+帧尾。其中,帧头表示帧开始;程序数据表示该数据是升级包的数据,是需要存储到工作区121;校验值表示通过计算帧数据得出;帧尾表示帧的结束。
在一些实施例中,每帧数据中都包括一个校验值。所述存储器12还包括数据区124,所述数据区124用于存储每帧数据的校验值,其中,该校验值是基于该帧数据在所述智能终端2内未被传送之前的数据计算得出,并在计算得出后将其写入该帧数据的校验值位。在帧数据传输过程中,校验是否存在数据传输错误的方法为:所述处理器11根据接收到的该帧数据计算校验值,并用计算出来的校验值跟该帧数据自带的校验值进行比对,如果计算出来的校验值跟该帧数据自带的校验值一致的话,则说明该帧数据校验成功。所述处理器11在该帧数据校验成功后,控制将该帧数据的校验值存储在所述数据区124内。
在一些实施例中,所述处理器11在该帧数据的数据传输校验失败时,向所述智能终端2反馈校验失败信息以使得所述智能终端2重新发送该帧数据至所述智能设备1,所述智能设备1通过所述通讯单元13再次接收该帧数据,再次对该帧数据再次进行数据传输校验,并在数据传输校验成功时,将该帧数据写入到所述工作区121以对所述第一系统程序进行升级并将该帧数据的校验值存储在所述数据区124内。
从而,当出现数据传输校验失败时,可以向所述智能终端2反馈数据校验传输失败,所述智能终端2会重新发送该帧数据,所述智能设备1通过所述通讯单元13在再次接收到该帧数据之后,会再次对该帧数据进行数据传输校验,如此反复,直至数据传输校验成功时,将该帧数据写入到所述工作区121并将该帧数据的校验值存储在所述数据区124内,实现了断点重传,重新写入,确保了升级包在传输过程中的准确性,避免了升级包在数据传输过程中的数据丢失所导致的程序不稳定,提高了效率。
可以理解的是,在其它实施例中,所述智能设备1还可以在通过所述通讯单元13接收所述升级包的所有帧数据后,再进行所述升级包的每帧数据的数据传输校验,并在所有帧数据校验完成且校验成功后,将所述升级包的所有帧数据一次性写入所述工作区121以完成对所述第一系统程序的升级,即先完成数据传输再完成数据校验最后进行数据写入以完成对所述第一系统程序的升级。
可以理解的是,在其它实施例中,所述智能设备1还可以在通过所述通讯单元13每接收所述升级包的一帧数据时,边对该帧数据进行数据传输校验,但需要等到所述升级包的所有帧数据完成校验且校验成功后,将所述升级包的所有帧数据一次性写入所述工作区121以完成对所述第一系统程序的升级,即边传输边校验且在完成数据传输校验后进行升级包数据的统一写入,可以在一定程序上提高升级速度。
可以理解的是,在其它实施例中,所述智能设备1还可以通过所述通讯单元13一次性接收所述升级包的所有帧数据之后,再进行所述升级包的所有帧数据的数据传输校验,并且每完成一帧数据的校验且校验成功后,将该帧数据写入所述工作区121以所述第一系统程序进行升级,直至所述升级包的所有帧数据完成校验时便可以完成对该帧数据的校验以及对所述升级包的写入升级,即完成数据传输后再进行边校验边写入,可以在一定程序上提高升级速度。
在一些实施例中,所述处理器11还用于:对写入所述工作区121的升级包的每帧数据进行存储数据校验;在所述升级包的每帧数据的存储数据校验成功后,确认对所述第一系统程序升级成功。
具体地,所述升级包的所有帧数据传输完成后,所述处理器11还对所述升级包的每帧数据进行数据存储校验以判断数据存储过程是否出错,具体操作是按帧校验,即将每帧数据所对应的存储到所述数据区124的校验值和计算存入工作区121的对应帧数据的校验值进行对比,每帧数据的计算校验值和存储在数据区124的对应校验值都相等则确定所述第一系统程序升级成功。
从而,在所述升级包的所有帧数据全部写入后,再次验证写入所述工作区121的所有帧数据的数据存储可靠性,有效确保了所述第一系统程序升级的可靠性。
在一些实施例中,所述处理器11还用于在所述升级包的任何一帧数据的存储数据校验失败时,确定所述第一系统程序升级失败,并记录当前存储数据校验的失败帧以及所述升级包的第一升级版本号,并确定所述工作区121的第一系统程序不能够正常运行。从而,所述处理器11在确定所述工作区121的第一系统程序不能够正常运行时,跳转至所述备份区122运行所述第二系统程序来控制所述智能设备工作。
在一些实施例中,所述当前存储数据校验的失败帧以及所述升级包的第一升级版本号存储在所述数据区124内。当然,在其它实施例中,所述当前存储数据校验的失败帧以及所述升级包的第一升级版本号存储在所述存储器12的其它位置,在此不做限定。
在一些实施例中,在所述第一系统程序升级失败时,会记录当前存储数据校验的失败帧以及所述升级包的第一升级版本号,以方便在接收到下一次升级指令时,确定该下一次升级指令中所包含的第二升级版本号;将该下一次升级指令中所包含的第二升级版本号与上一次失败所记录的第一升级版本号进行比较,如果所述第二升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第二升级版本号所对应的第二升级包中与所述失败帧的位置相对应的位置处开始进行所述第二升级包的剩余帧数据的逐一传输;所述智能设备1在每次接收到由所述智能终端2发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备以对所述第一系统程序从上次升级失败的位置进行重新升级,以实现断点重传和断点升级。
从而,当确定升级失败时,智能设备1会记录当前存储数据校验失败的帧以及所述升级包的第一升级版本号,并且失败帧前的帧数据和校验值也分别存储在工作区121和数据区124。当智能终端2下发再次升级的升级指令时,会在升级指令中携带新程序的第二升级版本号。智能设备1会将当前第二版本号和上次记录的第一版本号对比。如果为同一版本号,则使用断点机制,即,智能终端2可以从失败帧处开始传输帧数据,不用从头开始传输,提高效率,因为都是同一版本。它们的失败帧前面的数据都是一样的,没必要重新从头开始传输。如果不是为同一版本,智能终端2需要从第一帧开始重新传输,因为不是同一版本,它们的失败点前面的数据不一样了。例如,第一次升级版本为1.0,第二次升级版本为1.0,则为同一版本可使用断点重传和断点升级机制。如第一次升级版本为1.0,第二次升级版本为2.0,则为不同版本,断点位置为0,需要从第一帧开始进行传输升级。
在一些实施例中,在所述智能设备1接收到又一升级指令时,判断当前是运行所述工作区的第一系统程序还是运行所述备份区的第二系统程序;如果当前运行所述第一系统程序,则对所述第一系统程序从头开始升级;如果当前运行所述第二系统程序,则判断所述升级指令中所包括的第三升级版本号与上一次失败所记录的第一升级版本号是否相同;如果所述第三升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输;所述智能设备1在每次接收到由所述智能终端2发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备1以对所述第一系统程序从上次升级失败的位置进行重新升级。
从而,通过提前确认当前运行所述第一系统程序还是所述第二系统程序,可以确定出上次是否升级失败,一般正常来说,如果所述智能设备1不是初次使用,运行在所述第二系统程序一般是上次升级失败或者出现了其他异常,因此,如果当前运行所述第二系统程序,则可以获取上次升级失败时的第一升级版本号,并与当前待升级的程序版本的第三升级版本号进行比较,确定第一升级版本号和第三升级版本号是否相同,如果第一升级版本号和第三升级版本号相同,则告知智能终端2上次记录的失败帧,以使得所述智能终端2从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输,所述智能设备1在每次接收到由所述智能终端2发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备1以对所述第一系统程序从上次升级失败的位置进行重新升级,以进行断点重传和断点升级,无需从头开始升级,有效提高了升级效率。
在一些实施例中,所述处理器11该帧数据写入到所述工作区121的过程包括:每传输校验正确后就擦除工作区121的一帧数据,即在升级过程中擦除一帧数据,其他时间不可擦除,并将数据传输校验成功的该帧数据写入擦除数据的位置,从而,每完成一帧数据的数据传输校验,就擦除工作区121原有第一系统程序的一帧数据,然后写入该帧数据,待所述升级包的所有帧数据完成写入后,将所述工作区121内的升级前的第一系统程序未被擦除但属于多余需要擦除的数据一并擦除,从而完成所述升级包的写入。
请参考图2,图2为本申请一实施例中的系统程序切换控制方法的流程示意图。所述系统程序切换控制方法应用于所述智能设备1,所述智能设备1存放第一系统程序和第二系统程序,其中,所述第一系统程序为能够被更新升级的系统程序,所述第二系统程序为预先设置的系统程序。所述系统程序切换方法包括:
步骤21:判断所述第一系统程序是否能够正常运行,如果能正常运行,则进入步骤22,否则,如果不能正常运行,则进入步骤23。
步骤22:在确定所述第一系统程序能够正常运行时,运行所述第一系统程序来控制所述智能设备1工作。
步骤23:在确定所述第一系统程序不能够正常运行时,跳转至运行所述第二系统程序来控制所述智能设备1工作。
从而,本申请中,通过在所述智能设备1内预先存放有备份的第二系统程序,即,原始系统程序版本,在所述第一系统程序不能正常运行时,可以跳转至运行所述第二系统程序来控制所述智能设备1的正常工作,避免因为所述第一系统程序不能运行所导致的宕机问题,可以有效确保智能设备1能够可靠地运行。
其中,所述第一系统程序和所述第二系统程序在出厂时是相同的系统程序,即,都为原始系统程序版本。然而,所述第一系统程序为系统默认运行的能够被更新升级的系统程序,所述第二系统程序为出厂时预存的系统程序,其不能被更新升级,因此,所述第一系统程序可以在后续使用的过程中被一次或者多次更新升级,并且,随着所述第一系统程序被持续的更新升级,所述第一系统程序将不同于所述第二系统程序。
其中,所述第一系统程序存储在所述智能设备1的存储器12的工作区121内,所述第二系统程序存储在所述智能设备1的存储器12的备份区122内。
请参考图3,图3为本申请一实施例中的系统程序切换控制方法中有关系统升级的流程示意图。所述系统程序切换方法包括:
步骤31:接收由一智能终端2发送的升级指令时,响应所述升级指令确认当前是否可以升级,如果可以升级,则执行步骤32,否则,保持当前的工作状态。
其中,所述智能设备1是否可以升级主要根据所述智能设备1当前的工作状态是否可以打断来判断。比如,一些情况下,所述智能设备1在正常工作状态则不可以被打断,比如,扫地机器人在扫地状态、滑板车在骑行状态、智能手表在正常使用状态,可以理解的是,一些实施例中,智能手表的正常使用状态是指未充电且正常开机运行的状态,比如,有些智能手表只有在充电状态才可以进行软件的更新升级。所述智能设备1在待机状态则可以被打断,比如,扫地机器人待在基站,滑板车停止状态、智能手表处于充电状态等。
步骤32:向所述智能终端2反馈可升级回复,并开始接收由所述智能终端2发送的升级包,其中,所述升级包包括多帧数据,每次传输一帧数据。
其中,一些实施例中,所述第一系统程序的升级过程由存储在所述处理器11运行存储在所述智能设备1的存储器12的升级区123的系统升级控制程序来实现。当需要升级时,所述处理器11跳转至所述升级区123运行所述系统升级程序来接收由所述智能终端2发送的升级包。
步骤33:每次接收到一帧数据时对该帧数据进行数据传输校验,判断数据传输校验是否成功;如果数据传输校验成功,则进入步骤34,否则,如果数据传输校验失败,则进入步骤35。
步骤34:将该帧数据写入到所述智能设备1。
具体地,一些实施例中,将该帧数据写入到所述智能设备1的存储器12的工作区121内。
步骤35:向所述智能终端2反馈校验失败信息以使得所述智能终端2重新发送升级包至所述智能设备1,并回到步骤33。
步骤36:当所述升级包的所有帧数据已经写入所述智能设备1后,还对写入所述智能设备1的所有帧数据进行一一比对的数据存储校验,判断所有帧数据的数据存储校验是否通过,如果数据存储校验成功,则进入步骤37,否则,进入步骤38。
具体地,一些实施例中,当所述升级包的所有帧数据已经写入所述工作区121后,还对写入所述工作区121的所有帧数据进行一一比对的数据存储校验,判断所有帧数据的数据存储校验是否通过,如果数据存储校验成功,则进入步骤37,否则,进入步骤38。
步骤37:确定所述升级包的所有帧数据的数据存储校验成功,升级成功,并控制运行更新后的所述第一系统程序。
步骤38:如果某一帧的数据存储校验失败,则确定升级失败,并记录当前的失败的帧以及升级版本号,同时控制运行所述第二系统程序。
具体地,一些实施例中,同时控制运行所述备份区122的第二系统程序。
步骤39:在接收到下一次升级指令时,如果待升级的版本的第二升级版本号与上一次升级失败的第一升级版本号相同,则确定上次记录的失败帧,从所述第二升级版本号所对应的第二升级包中与所述失败帧的位置相对应的位置处开始进行所述第二升级包的剩余帧数据的逐一传输,并回到步骤33。
从而,在所述智能设备1可升级时,通过所述通讯单元13接收由所述智能终端2发送的升级包,所述升级包包括多帧数据;通过对接收到的所述升级包的多帧数据进行数据传输校验,并在数据传输校验成功后,将所述升级包的多帧数据依次写入到所述智能设备1,可以实现对所述第一系统程序的升级过程的控制。而且,通过上述方法,可以实现对所述升级包中的每帧数据实现边传输边校验边写入升级,有效地提高升级速率。此外,由于所述通讯单元13一般为蓝牙,而且,蓝牙最大传输的字节数只有几十个字节且传输过程中容易存在数据传输错误,因此,需要每次传输一帧数据后,对该帧数据进行数据传输校验,待数据传输校验成功后,将该帧数据写入到所述智能设备1,通过数据传输校验可以校验每帧数据的数据传输过程中可能存在的错误。当出现数据传输校验失败时,可以向所述智能终端2反馈数据校验传输失败,所述智能终端2会重新发送该帧数据,所述智能设备1在再次接收到该帧数据之后,会再次对该帧数据进行数据传输校验,如此反复,直至数据传输校验成功时,将该帧数据写入到所述智能设备1并将该帧数据的校验值存储在所述智能设备1内,实现了断点重传,重新写入,确保了升级包在传输过程中的准确性,提高了效率。在所述升级包的所有帧数据全部写入后,再次验证写入所述智能设备1的所有帧数据的数据存储可靠性,有效确保了程序升级的可靠性。在升级失败时,会记录当前存储数据校验失败的帧以及所述升级包的第一升级版本号,以方便再次升级时将该下一次升级指令中所包含的第二升级版本号与上一次失败所记录的第一升级版本号进行比较,如果该下一次升级指令中所包含的第二升级版本号与上一次失败所记录的第一升级版本号一致,则确定上次记录的存储数据校验失败的帧,从所述第二升级版本号所对应的第二升级包中与所述失败帧的位置相对应的位置处开始进行所述第二升级包的剩余帧数据的逐一传输,所述智能设备1在每次接收到由所述智能终端2发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备1以对所述第一系统程序从上次升级失败的位置进行重新升级,以进行断点重传和断点升级,无需从头开始升级,有效提高了升级效率。
请参考图4,图4为本申请另一实施例中的系统程序切换控制方法中有关系统升级的流程示意图。所述系统程序切换控制方法应用于所述智能设备1,所述智能设备1存放第一系统程序和第二系统程序,其中,所述第一系统程序为能够被更新升级的系统程序,所述第二系统程序为预先设置的系统程序。所述系统程序切换方法包括:
步骤41:接收由一智能终端2发送的升级指令时,响应所述升级指令确认当前是否可以升级,如果可以升级,则执行步骤42,否则,保持当前的工作状态。
其中,所述智能设备1是否可以升级主要根据所述智能设备1当前的工作状态是否可以打断来判断。比如,一些情况下,所述智能设备1在正常工作状态则不可以被打断,比如,扫地机器人在扫地状态、滑板车在骑行状态、智能手表在正常使用状态,可以理解的是,一些实施例中,智能手表的正常使用状态是指未充电且正常开机运行的状态,比如,有些智能手表只有在充电状态才可以进行软件的更新升级。所述智能设备1在待机状态则可以被打断,比如,扫地机器人待在基站,滑板车停止状态、智能手表处于充电状态等。
步骤42:判断当前是否运行所述第一系统程序。如果是,则执行步骤43;否则,如果当前运行所述第二系统程序,则执行步骤50。
其中,一些实施例中,所述第一系统程序的升级过程由存储在所述处理器11运行存储在所述智能设备1的存储器12的升级区123的系统升级控制程序来实现。当需要升级时,所述处理器11跳转至所述升级区123运行所述系统升级程序来接收由所述智能终端2发送的升级包。
步骤43:向所述智能终端2反馈可升级回复,并开始接收由所述智能终端2发送的升级包,其中,所述升级包包括多帧数据,每次传输一帧数据。
其中,一些实施例中,所述第一系统程序的升级过程由存储在所述处理器11运行存储在所述智能设备1的存储器12的升级区123的系统升级控制程序来实现。当需要升级时,所述处理器11跳转至所述升级区123运行所述系统升级程序来接收由所述智能终端2发送的升级包。
步骤44:每次接收到一帧数据时对该帧数据进行数据传输校验,判断数据传输校验是否成功;如果是,则进入步骤45,否则,如果数据传输校验失败,则进入步骤46。
步骤45:将该帧数据写入到所述智能设备1。
具体地,一些实施例中,将该帧数据写入到所述智能设备1的存储器12的工作区121内。
步骤46:向所述智能终端2反馈校验失败信息以使得所述智能终端2重新发送升级包至所述智能设备1,并回到步骤44。
步骤47:当所述升级包的所有帧数据已经写入所述智能设备1后,还对写入所述智能设备1的所有帧数据进行一一比对的数据存储校验,判断所有帧数据的数据存储校验是否通过,如果是,则进入步骤48,否则,进入步骤49。
具体地,一些实施例中,当所述升级包的所有帧数据已经写入所述工作区121后,还对写入所述工作区121的所有帧数据进行一一比对的数据存储校验,如果数据存储校验成功,则进入步骤48,否则,如果某一帧的数据存储校验失败,则进入步骤49。
步骤48:确定所述升级包的所有帧数据的数据存储校验成功,所述第一系统程序升级成功,并控制运行更新后的所述第一系统程序。
步骤49:确定升级失败,并记录当前的失败的帧以及第一升级版本号,同时控制运行所述第二系统程序。
具体地,一些实施例中,同时控制运行所述备份区122的第二系统程序。
步骤50:在接收到下一次升级指令时,获取上次升级失败时的第一升级版本号,并与当前待升级的程序版本的第三升级版本号进行比较,确定是否相同。如果是,则执行步骤51,如果否,则执行步骤43。
步骤51:向智能终端2反馈可升级回复,并告知智能终端2上次记录的失败帧,以使得所述智能终端2从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输,然后回到步骤44。
从而,在进一步的实施例中,通过提前确认当前运行第二系统程序还是第一系统程序,从而可以确定出上次是否升级失败,一般正常来说,如果所述智能设备1不是初次使用,运行第二系统程序一般是上次升级失败或者出现了其他异常,因此,如果当前运行第一系统程序,则可以获取上次升级失败时的第一升级版本号,并与当前待升级的程序版本的第三升级版本号进行比较,确定是否相同,则告知智能终端2上次记录的失败帧,以使得所述智能终端2从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输,所述智能设备1在每次接收到由所述智能终端2发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备1以对所述第一系统程序从上次升级失败的位置进行重新升级,以进行断点重传和断点升级,无需从头开始升级,有效提高了升级效率。
请参考图5,图5为本申请一实施例中的系统升级控制方法的流程示意图。所述系统升级方法应用于一智能设备1。所述智能设备1包括存储器12,所述存储器12包括工作区121、备份区122、升级区123和数据区124,所述工作区121存放第一系统程序,所述备份区122存放第二系统程序,其中,所述第一系统程序为能够被更新升级的系统程序,所述第二系统程序为预先设置的系统程序。所述升级区123存储系统升级控制程序,所述数据区124用于存储校验数据以及其它的数据。所述系统升级方法包括:
步骤510:接收由一智能终端2发送的升级指令时,响应所述升级指令确认当前是否可以升级,如果可以升级,则执行步骤52,否则,保持当前的工作状态。
其中,所述智能设备1是否可以升级主要根据所述智能设备1当前的工作状态是否可以打断来判断。比如,一些情况下,所述智能设备1在正常工作状态则不可以被打断,比如,扫地机器人在扫地状态、滑板车在骑行状态、智能手表在正常使用状态,可以理解的是,一些实施例中,智能手表的正常使用状态是指未充电且正常开机运行的状态,比如,有些智能手表只有在充电状态才可以进行软件的更新升级。所述智能设备1在待机状态则可以被打断,比如,扫地机器人待在基站,滑板车停止状态、智能手表处于充电状态等。
步骤52:向所述智能终端2反馈可升级回复,并开始跳转至所述升级区123运行所述系统升级控制程序来接收由所述智能终端2发送的升级包,其中,所述升级包包括多帧数据,每次传输一帧数据。
步骤53:每次接收到一帧数据时对该帧数据进行数据传输校验,判断数据传输校验是否成功;如果数据传输校验成功,则进入步骤54,否则,如果数据传输校验失败,则进入步骤55。
步骤54:将该帧数据写入到所述工作区121。
步骤55:向所述智能终端2反馈校验失败信息以使得所述智能终端2重新发送升级包至所述智能设备1,并回到步骤53。
步骤56:当所述升级包的所有帧数据已经写入所述工作区121后,还对写入所述工作区121的所有帧数据进行一一比对的数据存储校验,判断所有帧数据的数据存储校验是否通过,如果是,则进入步骤57,否则,进入步骤58。
步骤57:确定所述升级包的所有帧数据的数据存储校验成功,所述第一系统程序升级成功,并控制运行更新后的所述第一系统程序。
步骤58:确定所述第一系统程序升级失败,并记录当前的失败的帧以及第一升级版本号,同时控制运行所述备份区122的第二系统程序。
步骤59:在接收到下一次升级指令时,如果待升级的版本的第二升级版本号与上一次升级失败的第一升级版本号相同,则确定上次记录的失败帧,从所述第二升级版本号所对应的第二升级包中与所述失败帧的位置相对应的位置处开始进行所述第二升级包的剩余帧数据的逐一传输,并回到步骤53。
从而,在所述智能设备1可升级时,通过所述通讯单元13接收由所述智能终端2发送的升级包,所述升级包包括多帧数据;通过对接收到的所述升级包的多帧数据进行数据传输校验,并在数据传输校验成功后,将所述升级包的多帧数据依次写入到所述智能设备1,可以实现对所述第一系统程序的升级过程的控制。而且,通过上述方法,可以实现对所述升级包中的每帧数据实现边传输边校验边写入升级,有效地提高升级速率。此外,由于所述通讯单元13一般为蓝牙,而且,蓝牙最大传输的字节数只有几十个字节且传输过程中容易存在数据传输错误,因此,需要每次传输一帧数据后,对该帧数据进行数据传输校验,待数据传输校验成功后,将该帧数据写入到所述智能设备1,通过数据传输校验可以校验每帧数据的数据传输过程中可能存在的错误。当出现数据传输校验失败时,可以向所述智能终端2反馈数据校验传输失败,所述智能终端2会重新发送该帧数据,所述智能设备1在再次接收到该帧数据之后,会再次对该帧数据进行数据传输校验,如此反复,直至数据传输校验成功时,将该帧数据写入到所述智能设备1并将该帧数据的校验值存储在所述智能设备1内,实现了断点重传,重新写入,确保了升级包在传输过程中的准确性,提高了效率。在所述升级包的所有帧数据全部写入后,再次验证写入所述智能设备1的所有帧数据的数据存储可靠性,有效确保了程序升级的可靠性。在升级失败时,会记录当前存储数据校验失败的帧以及所述升级包的第一升级版本号,以方便再次升级时将该下一次升级指令中所包含的第二升级版本号与上一次失败所记录的第一升级版本号进行比较,如果该下一次升级指令中所包含的第二升级版本号与上一次失败所记录的第一升级版本号一致,则确定上次记录的存储数据校验失败的帧,从所述第二升级版本号所对应的第二升级包中与所述失败帧的位置相对应的位置处开始进行所述第二升级包的剩余帧数据的逐一传输,所述智能设备1在每次接收到由所述智能终端2发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备1以对所述第一系统程序从上次升级失败的位置进行重新升级,以进行断点重传和断点升级,无需从头开始升级,有效提高了升级效率。
图6为本申请另一实施例中的系统升级控制方法的流程示意图。所述系统升级方法应用于一智能设备1。所述智能设备1包括存储器12,所述存储器12包括工作区121、备份区122、升级区123和数据区124,所述工作区121存放第一系统程序,所述备份区122存放第二系统程序,其中,所述第一系统程序为能够被更新升级的系统程序,所述第二系统程序为预先设置的系统程序。所述升级区123存储系统升级控制程序,所述数据区124用于存储校验数据以及其它的数据。所述系统升级控制方法包括:
步骤61:接收由一智能终端2发送的升级指令时,响应所述升级指令确认当前是否可以升级,如果可以升级,则执行步骤62,否则,保持当前的工作状态。
其中,所述智能设备1是否可以升级主要根据所述智能设备1当前的工作状态是否可以打断来判断。比如,一些情况下,所述智能设备1在正常工作状态则不可以被打断,比如,扫地机器人在扫地状态、滑板车在骑行状态、智能手表在正常使用状态,可以理解的是,一些实施例中,智能手表的正常使用状态是指未充电且正常开机运行的状态,比如,有些智能手表只有在充电状态才可以进行软件的更新升级。所述智能设备1在待机状态则可以被打断,比如,扫地机器人待在基站,滑板车停止状态、智能手表处于充电状态等。
步骤62:判断当前是否运行工作区121的第一系统程序。如果是,则执行步骤63,否则,如果当前运行所述备份区122的所述第二系统程序,则执行步骤70。
步骤63:向所述智能终端2反馈可升级回复,并跳转至所述升级区123来接收由所述智能终端2发送的升级包,其中,所述升级包包括多帧数据,每次传输一帧数据。
步骤64:每次接收到一帧数据时对该帧数据进行数据传输校验,判断数据传输校验是否成功;如果是,则进入步骤65,否则,如果数据传输校验失败,则进入步骤66。
步骤65:将该帧数据写入到所述工作区121。
步骤66:向所述智能终端2反馈校验失败信息以使得所述智能终端2重新发送升级包至所述智能设备1,并回到步骤64。
步骤67:当所述升级包的所有帧数据已经写入所述工作区121后,还对写入所述工作区121的所有帧数据进行一一比对的数据存储校验,判断所有帧数据的数据存储校验是否通过,如果是,则进入步骤68,否则,进入步骤69。
步骤68:确定所述升级包的所有帧数据的数据存储校验成功,所述第一系统程序升级成功,并控制运行更新后的所述第一系统程序。
步骤69:确定升级失败,并记录当前的失败帧以及第一升级版本号,同时控制运行所述备份区122的所述第二系统程序。
步骤70:在接收到下一次升级指令时,获取上次升级失败时的第一升级版本号,并与当前待升级的程序版本的第三升级版本号进行比较,确定是否相同。如果是,则执行步骤71,否则,如果不同,则执行步骤63。
步骤71:向智能终端2反馈可升级回复,并告知智能终端2上次记录的失败帧,以使得所述智能终端2从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输,然后回到步骤64。
从而,在进一步的实施例中,通过提前确认当前运行在工作区121还是备份区122,从而可以确定出上次是否升级失败,一般正常来说,如果所述智能设备1不是初次使用,运行在备份区122一般是上次升级失败或者出现了其他异常,因此,如果当前运行在备份区122,则可以获取上次升级失败时的第一升级版本号,并与当前待升级的程序版本的第三升级版本号进行比较,确定是否相同,则告知智能终端2上次记录的失败帧,以使得所述智能终端2从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输,所述智能设备1在每次接收到由所述智能终端2发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备1以对所述第一系统程序从上次升级失败的位置进行重新升级,以进行断点重传和断点升级,无需从头开始升级,有效提高了升级效率。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种系统程序切换控制方法或者系统升级控制方法的步骤的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。存储器12可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。处理器11可以是通用处理器、数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。处理器可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。处理器可以是图像处理器、微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,例如处理器11可读取存储器中的应用程序、计算机指令或数据,结合其硬件完成上述方法的步骤。
以上所述的仅是本申请的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本申请创造构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。
Claims (25)
1.一种系统程序切换控制方法,应用于一智能设备,其特征在于,所述智能设备存储有第一系统程序和第二系统程序,所述第一系统程序为能够被所述智能设备运行且能够被更新升级的系统程序,所述第二系统程序为预先设置的能够被所述智能设备运行的系统程序,所述系统程序切换控制方法包括步骤:
判断所述第一系统程序是否能够正常运行;
在确定所述第一系统程序能够正常运行时,运行所述第一系统程序来控制所述智能设备工作;
在确定所述第一系统程序不能够正常运行时,跳转至运行所述第二系统程序来控制所述智能设备工作。
2.根据权利要求1所述的系统程序切换控制方法,其特征在于,所述确定所述第一系统程序不能够正常运行,包括:
在确定发生所述第一系统程序运行异常和所述第一系统程序升级失败中的至少一种情况时,确定所述第一系统程序不能够正常运行。
3.根据权利要求1所述的系统程序切换控制方法,其特征在于,所述智能设备内存储有系统升级控制程序,所述系统程序切换控制方法还包括步骤:
在接收到由一智能终端发送的升级指令时,确定当前是否可以进行升级;以及
当确认可以升级时,运行所述系统升级控制程序以对所述第一系统程序的升级过程的控制。
4.根据权利要求3所述的系统程序切换控制方法,其特征在于,所述方法还包括:
响应所述升级指令向所述智能终端反馈是否可以升级。
5.根据权利要求3所述的系统程序切换控制方法,其特征在于,所述运行所述系统升级控制程序以对所述第一系统程序的升级过程的控制,包括:
接收由所述智能终端发送的升级包,所述升级包包括多帧数据;
对接收到的所述升级包的多帧数据进行数据传输校验,并在数据传输校验成功后,将所述升级包的多帧数据依次写入所述智能设备以对所述第一系统程序进行升级。
6.根据权利要求5所述的系统程序切换控制方法,其特征在于,所述对接收到的所述升级包的多帧数据进行数据传输校验,并在数据传输校验成功后,将所述升级包的多帧数据依次写入到所述智能设备以对所述第一系统程序进行升级,包括:
所述智能设备在每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备以对所述第一系统程序进行升级。
7.根据权利要求5或6所述的系统程序切换控制方法,其特征在于,所述运行所述系统升级控制程序以对所述第一系统程序的升级过程的控制,还包括:
每对一帧数据完成数据传输校验且校验成功时,将该帧数据的校验值存储在所述智能设备内。
8.根据权利要求7所述的系统程序切换控制方法,其特征在于,所述系统程序切换控制方法还包括步骤:
在该帧数据的数据接收校验失败时,向所述智能终端反馈校验失败信息以使得所述智能终端重新发送该帧数据;
再次对该帧数据进行数据传输校验并在数据传输校验成功时,将该帧数据写入到所述智能设备并将该帧数据的校验值存储在所述智能设备内。
9.根据权利要求1至6任一项所述的系统程序切换控制方法,其特征在于,所述系统程序切换控制方法包括步骤:
当所述升级包的所有帧数据都写入所述智能设备时,对写入所述智能设备的升级包的每帧数据进行存储数据校验;
在所述升级包的每帧数据的存储数据校验成功后,确认对所述第一系统程序的升级成功。
10.根据权利要求9所述的系统程序切换控制方法,其特征在于,所述系统程序切换控制方法包括步骤:
在所述升级包的任何一帧数据的存储数据校验失败时,确定对所述第一系统程序的升级失败,并记录当前存储数据校验的失败帧以及所述升级包的第一升级版本号,且确定所述第一系统程序不能够正常运行。
11.根据权利要求1至6任一项所述的系统程序切换控制方法,其特征在于,所述系统程序切换控制方法包括步骤:
在接收到下一次升级指令时,确定该下一次升级指令中所包含的第二升级版本号;
将该下一次升级指令中所包含的第二升级版本号与上一次失败所记录的第一升级版本号进行比较;
如果所述第二升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第二升级版本号所对应的第二升级包中与所述失败帧的位置相对应的位置处开始进行所述第二升级包的剩余帧数据的逐一传输;
所述智能设备在每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备以对所述第一系统程序从上次升级失败的位置进行重新升级。
12.根据权利要求1至6任一项所述的系统程序切换控制方法,其特征在于,所述系统程序切换控制方法包括步骤:
在接收到又一升级指令时,判断当前是运行所述第一系统程序还是运行所述第二系统程序;
如果当前运行所述第一系统程序,则对所述第一系统程序从头开始升级;
如果当前运行所述第二系统程序,则判断所述升级指令中所包括的第三升级版本号与上一次失败所记录的第一升级版本号是否相同;
如果所述第三升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输;
所述智能设备在每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述智能设备以对所述第一系统程序从上次升级失败的位置进行重新升级。
13.一种智能设备,其特征在于,包括处理器和存储器,所述存储器与所述处理器电性连接,所述存储器存放第一系统程序和第二系统程序,其中,所述第一系统程序为能够被所述处理器运行且能够被更新升级的系统程序,所述第二系统程序为预先设置的能够被所述处理器运行的系统程序,所述处理器用于:
判断所述第一系统程序是否能够正常运行;
在确定所述第一系统程序能够正常运行时,运行所述第一系统程序来控制所述智能设备工作;
在确定所述第一系统程序不能够正常运行时,跳转运行所述第二系统程序来控制所述智能设备工作。
14.根据权利要求13所述的智能设备,其特征在于,所述第一系统程序不能正常运行的情形包括所述第一系统程序运行异常和所述第一系统程序升级失败的其中至少一种。
15.根据权利要求13所述的智能设备,其特征在于,所述存储器包括工作区和备份区,所述工作区用于存放所述第一系统程序,所述备份区用于存放所述第二系统程序。
16.根据权利要求15所述的智能设备,其特征在于,所述存储器还包括升级区,所述升级区内存储有系统升级控制程序,所述智能设备还包括通讯单元,所述通讯单元与所述处理器电性连接,所述处理器还用于:
在通过所述通讯单元接收由一智能终端发送的升级指令时,确定当前是否可以进行升级;以及
当确认可以升级时,运行所述系统升级控制程序以对所述第一系统程序的升级过程的控制。
17.根据权利要求16所述的智能设备,其特征在于,所述处理器还用于:
响应所述升级指令向所述智能终端反馈是否可以升级。
18.根据权利要求16所述的智能设备,其特征在于,所述处理器还用于:
通过所述通讯单元接收由所述智能终端发送的升级包,所述升级包包括多帧数据;
对接收到的所述升级包的多帧数据进行数据传输校验,并在数据传输校验成功后,将所述升级包的多帧数据依次写入到所述工作区以对所述第一系统程序进行升级。
19.根据权利要求18所述的智能设备,其特征在于,所述处理器还用于:
每次通过所述通讯单元接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述工作区以对所述第一系统程序进行升级。
20.根据权利要求18或19任一项所述的智能设备,其特征在于,所述存储器还包括数据区,所述处理器用于:
每对一帧数据完成数据传输校验且校验成功时,将该帧数据的校验值存储在所述数据区内。
21.根据权利要求20所述的智能设备,其特征在于,所述处理器还用于:
在该帧数据的数据接收校验失败时,向所述智能终端反馈校验失败信息以使得所述智能终端重新发送该帧数据;
再次对该帧数据进行数据传输校验并在数据传输校验成功时,将该帧数据写入到所述工作区以对所述第一系统程序进行升级并将该帧数据的校验值存储在所述数据区内。
22.根据权利要求15至19任一项所述的智能设备,其特征在于,所述处理器用于:
对写入所述工作区的升级包的每帧数据进行存储数据校验;
在所述升级包的每帧数据的存储数据校验成功后,确认所述第一系统程序升级成功。
23.根据权利要求22所述的智能设备,其特征在于,所述处理器还用于:
在所述升级包的任何一帧数据的存储数据校验失败时,确定所述第一系统程序升级失败,并记录当前存储数据校验的失败帧以及所述升级包的第一升级版本号,且确定所述工作区的第一系统程序不能够正常运行。
24.根据权利要求15至19任一项所述的智能设备,其特征在于,所述处理器用于:
在接收到下一次升级指令时,确定该下一次升级指令中所包含的第二升级版本号;
将该下一次升级指令中所包含的第二升级版本号与上一次失败所记录的第一升级版本号进行比较;
如果所述第二升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第二升级版本号所对应的第二升级包中与所述失败帧的位置相对应的位置处开始进行所述第二升级包的剩余帧数据的逐一传输;
在每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述工作区以对所述第一系统程序从上次升级失败的位置进行重新升级。
25.根据权利要求15至19任一项所述的智能设备,所述处理器用于:
在接收到又一升级指令时,判断当前是运行所述第一系统程序还是运行所述第二系统程序;
如果当前运行所述第一系统程序,则对所述第一系统程序从头开始升级;
如果当前运行所述第二系统程序,则判断所述升级指令中所包括的第三升级版本号与上一次失败所记录的第一升级版本号是否相同;
如果所述第三升级版本号和所述第一升级版本号相同,则确定上次记录的存储数据校验的失败帧,从所述第三升级版本号所对应的第三升级包中与所述失败帧的位置相对应的位置处开始进行所述第三升级包的剩余帧数据的逐一传输;
在每次接收到由所述智能终端发送的一帧数据时,对该帧数据进行数据传输校验,如果该帧数据的数据传输校验成功,则将该帧数据写入到所述工作区以对所述第一系统程序从上次升级失败的位置进行重新升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310151097.5A CN116302690A (zh) | 2023-02-14 | 2023-02-14 | 智能设备及其系统程序切换控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310151097.5A CN116302690A (zh) | 2023-02-14 | 2023-02-14 | 智能设备及其系统程序切换控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302690A true CN116302690A (zh) | 2023-06-23 |
Family
ID=86784459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310151097.5A Pending CN116302690A (zh) | 2023-02-14 | 2023-02-14 | 智能设备及其系统程序切换控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302690A (zh) |
-
2023
- 2023-02-14 CN CN202310151097.5A patent/CN116302690A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101557583B (zh) | 直放站设备嵌入式软件的远程升级与版本切换方法 | |
JP6390644B2 (ja) | プログラム更新システム、プログラム更新方法及びコンピュータプログラム | |
US20050289291A1 (en) | Mobile electronic equipment | |
JP2009053920A (ja) | 車載用電子制御ユニットのプログラム管理システム | |
CN107179909A (zh) | 软件升级方法、装置及计算机可读存储介质 | |
CN112947977A (zh) | 一种软件在线升级方法及系统 | |
JP2006264877A (ja) | エレベータ制御装置 | |
CN110187909B (zh) | 一种基于安卓系统的单片机固件升级方法 | |
KR101533813B1 (ko) | 파워 릴레이 어셈블리 제어 장치 및 방법 | |
CN113094072A (zh) | 车辆升级方法、装置、电子装置及存储介质 | |
CN115840579A (zh) | Fpga远程更新方法、系统、贴片机及存储介质 | |
CN112416411B (zh) | 升级方法及装置、设备端、服务器、计算机可读介质 | |
CN117687664A (zh) | 一种dsp的在线升级配置方法及装置 | |
CN114489732A (zh) | 一种更新设备的fpga固件的方法、装置及电子设备 | |
US20220179746A1 (en) | Electronic apparatus and boot method thereof | |
CN116302690A (zh) | 智能设备及其系统程序切换控制方法 | |
US20090064129A1 (en) | Suspend and resume mechanisms on a flash memory | |
WO2024168522A1 (zh) | 智能设备及其系统程序切换控制方法 | |
CN114281390A (zh) | 一种基于Zynq 7000的在线升级系统及方法 | |
US20070288809A1 (en) | Method for updating nonvolatile memory | |
CN114546455A (zh) | 一种双分区的mcu软件升级方法及装置 | |
CN113342385A (zh) | 软件升级方法及装置、空调控制面板 | |
CN111813597A (zh) | 一种空调器 | |
CN112882731A (zh) | 嵌入式软件升级方法和装置 | |
CN110096047B (zh) | 一种机器人运动控制系统的升级方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |