CN110532014A - 程序升级方法、装置、终端设备及计算机可读存储介质 - Google Patents
程序升级方法、装置、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110532014A CN110532014A CN201910771522.4A CN201910771522A CN110532014A CN 110532014 A CN110532014 A CN 110532014A CN 201910771522 A CN201910771522 A CN 201910771522A CN 110532014 A CN110532014 A CN 110532014A
- Authority
- CN
- China
- Prior art keywords
- program
- control program
- area
- upgrade
- upgrading
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 251
- 238000001514 detection method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000011084 recovery Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
Classifications
-
- 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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种程序升级方法,包括:接收并解析程序升级指令;当所述程序升级指令的升级对象为升级程序时,将升级程序区的程序升级标志字节设定为1,同时,将控制程序备份到控制程序备份区;下载新的升级程序,并将所述新的升级程序写入控制程序区;将所述新的升级程序写入所述升级程序区覆盖原升级程序,并将程序升级标志字节设定为2;将所述控制程序备份区的控制程序复制到所述控制程序区,并将升级程序区的程序升级标志字节清零;运行原控制程序。根据上述实施例的教导,本发明在原有的升级程序基础上,增加程序升级标志字节,使升级程序和控制程序通过设置该字节实现对自身的升级。本发明还提供了一种程序升级装置、终端设备及存储介质。
Description
技术领域
本发明涉及电子技术领域,尤其涉及程序升级方法、装置、终端设备及计算机可读存储介质。
背景技术
在智能家电产品中,如果发现微处理芯片(以下简称MCU)的控制程序有错(或需要升级),则可以通过网络进行控制程序的升级,把错误更改掉。但是,MCU中如果使用专门的升级程序,如BootLoader这样的升级程序来升级MCU中的控制程序,那么,当要升级MCU中BootLoader这样的升级程序时,目前还没有办法。
也就是说,现在已有的使用MCU中升级程序BootLoader升级的技术中,仅实现了控制程序的下载升级,没有对下载升级程序BootLoader的升级方法。
发明内容
本发明所要解决的技术问题在于,提供程序升级方法、装置、终端设备及计算机可读存储介质,能够实现对任意升级程序的下载升级。
本发明一实施例提供一种程序升级方法,包括;
接收并解析程序升级指令;
当所述程序升级指令的升级对象为升级程序时,将升级程序区的程序升级标志字节设定为1,同时,将控制程序备份到控制程序备份区;
下载新的升级程序,并将所述新的升级程序写入控制程序区;
将所述新的升级程序写入所述升级程序区覆盖原升级程序,并将程序升级标志字节设定为2;
将所述控制程序备份区的控制程序复制到所述控制程序区,并将升级程序区的程序升级标志字节清零;
运行原控制程序。
优选的,在将所述新的升级程序写入控制程序区之后,还包括:
检测写入控制程序区的升级程序是否正确,若否,则重新请求下载并写入新的升级程序。
优选的,所述的程序升级方法,还包括:
若写入失败的次数达到预设上限,则将升级程序区的程序升级标志字节清零,并恢复原升级程序;
运行原控制程序。
优选的,所述的程序升级方法,还包括:
当所述程序升级指令的升级对象为控制程序时,将升级程序区的程序升级标志字节清零,同时,将控制程序备份到控制程序备份区;
下载新的控制程序,并将所述新的控制程序写入控制程序区覆盖原控制程序;
运行新的控制程序。
优选的,在将所述新的控制程序写入控制程序区之后,还包括:
检测写入控制程序区的控制程序是否正确,若否,则将控制程序备份区的控制程序复制到控制程序区;
运行原控制程序。
本发明一实施例还提供一种程序升级装置,包括;
解析模块,用于接收并解析程序升级指令;
设定模块,用于当所述程序升级指令的升级对象为升级程序时,将升级程序区的程序升级标志字节设定为1;
备份模块,用于将控制程序备份到控制程序备份区;
下载模块,用于下载新的升级程序;
写模块,用于将所述新的升级程序写入控制程序区;还用于将所述新的升级程序写入所述升级程序区覆盖原升级程序,以使所述设定模块将程序升级标志字节设定为2;
恢复模块,用于将所述控制程序备份区的控制程序复制到所述控制程序区,并使所述设定模块将升级程序区的程序升级标志字节清零;
运行模块,用于运行原控制程序。
本发明一实施例还提供一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的程序升级方法。
本发明一实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的程序升级方法。
实施本发明实施例,具有如下有益效果:
本发明提供的一种程序升级方法,在原有的升级程序基础上,进行修改,并增加一个程序升级标志字节,使升级程序和控制程序通过设置该字节为1和2,以及清零该字节,区分控制程序的升级和升级程序的升级,以及在升级程序升级后的恢复原控制并正确运行原控制程序。本发明还提供了一种程序升级装置、终端设备及存储介质。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的程序升级方法的步骤流程图;
图2是本发明第一实施例提供的控制程序进入程序升级的流程框图;
图3是本发明第一实施例提供的MCUFlashROM区域的原有划分示意图;
图4是本发明第一实施例提供的增加升级程序标志字节的家电MCUFlashROM区域划分示意图;
图5是本发明第二实施例提供的程序升级方法的步骤流程图;
图6是本发明第二实施例提供的升级程序的升级处理流程框图;
图7是本发明第三实施例提供的程序升级方法的步骤流程图;
图8是本发明第四实施例提供的程序升级方法的步骤流程图;
图9是本发明第四实施例提供的控制程序的升级处理流程框图;
图10是本发明第五实施例提供的程序升级装置的结构示意图;
图11是本发明第六实施例提供的程序升级装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本发明第一实施例,请参阅图1-4:
如图1-2所示,一种程序升级方法,包括;
S101、接收并解析程序升级指令。
S102、当所述程序升级指令的升级对象为升级程序时,将升级程序区的程序升级标志字节设定为1,同时,将控制程序备份到控制程序备份区。
S103、下载新的升级程序,并将所述新的升级程序写入控制程序区。
S104、将所述新的升级程序写入所述升级程序区覆盖原升级程序,并将程序升级标志字节设定为2。
S105、将所述控制程序备份区的控制程序复制到所述控制程序区,并将升级程序区的程序升级标志字节清零。
S106、运行原控制程序。
现在已有的使用MCU中升级程序BootLoader升级的技术中,仅实现了控制程序的下载升级,没有对下载升级程序BootLoader的升级方法,而实际使用中,会遇到已有的升级程序不能满足要求时,就无法实现MCU新要求下的程序升级了。
为解决上述技术问题,在本发明的一具体的实施例当中,以升级程序BootLoader为例,在有BootLoader这样的升级程序系统中,程序空间被划分成3个区域,如图3-4所示。
家电MCU的升级程序BootLoader在出厂前就有了升级程序BootLoader的升级标志字节。通过该字节中的内容为0、1和2,实现MCU程序的正常运行、升级程序BootLoader的升级处理和恢复原控制程序以及恢复原控制程序的运行。
MCU接收升级程序端的升级程序BootLoader升级命令后,将升级程序BootLoader的升级标志字节设置为1,并从控制程序进入升级程序区运行。
MCU进入升级程序区运行后,首先,将相对地址区域为$1的控制程序备份到相对地址区域为$2的控制程序备份区。然后,MCU接收新的升级程序BootLoader并写入相对地址区域为$1的控制程序区。之后,软件复位MCU的运行,使MCU进入相对地址区域为$1的控制程序区运行。
当MCU进入相对地址区域为$1的控制程序区运行时,因升级程序BootLoader的升级标志字节为1,MCU将下载到控制程序区中的升级程序BootLoader复制到升级程序区$0中,即覆盖原来的升级程序BootLoader,并将升级程序BootLoader的升级标志字节改为2。
MCU进入升级后的升级程序BootLoader运行。因,此时升级程序BootLoader的升级标志字节为2,所以,升级程序BootLoader仅将相对地址区域为$2的控制程序备份复制到相对地址区域为$1的控制程序区,即,恢复原来的控制程序,并将升级程序BootLoader的升级标志字节清0。
软件复位MCU的运行,使MCU进入到相对地址区域为$1的控制程序区运行。因,$0区域中的升级程序BootLoader的升级标志字节为0,所以,MCU进入原来的控制程序进行正常运行。
根据上述实施例的教导,本发明能够完成升级程序BootLoader的升级,同时又不改变原有的控制程序,MCU进入原来的控制程序进行正常运行。
本发明第二实施例,在上述实施例的基础上,请参阅图5-6:
一种程序升级方法,包括;
S201、接收并解析程序升级指令。
S202、当所述程序升级指令的升级对象为升级程序时,将升级程序区的程序升级标志字节设定为1,同时,将控制程序备份到控制程序备份区。
S203、下载新的升级程序,并将所述新的升级程序写入控制程序区;
S204、检测写入控制程序区的升级程序是否正确,若否,则重新请求下载并写入新的升级程序;
在具体的实施例当中,若在写入失败的次数达到预设上限之前,检测写入控制程序区的升级程序是正确,则将所述新的升级程序写入所述升级程序区覆盖原升级程序,并将程序升级标志字节设定为2。将所述控制程序备份区的控制程序复制到所述控制程序区,并将升级程序区的程序升级标志字节清零。运行原控制程序。
S205、若写入失败的次数达到预设上限,则将升级程序区的程序升级标志字节清零,并恢复原升级程序;
S206、运行原控制程序。
在具体的实施例当中,当程序升级端进行升级程序BootLoader的升级时,具体执行步骤如下:
1)MCU运行控制程序区的控制程序时,收到程序升级端发来的控制程序升级程序命令,将程序升级标志字节设置为1。因进行升级程序BootLoader的升级处理,而进入升级程序BootLoader运行。
2)进入升级程序BootLoader运行后,检测程序升级标志字节为1还是为2还是其它数值,分别执行步骤3)-11),12)、14)-15)和13)-15)。
3)如果程序升级标志字节为1,将控制程序备份到控制程序备份区$2。
4)下载新的升级程序BootLoader,并写入控制程序区$1。
5)下载完升级程序后,检测控制程序区$1中的下载程序是否正确,并根据检测结果执行步骤6)或7)。
6)不正确,检查下载次数是否达到规定的次数。达到规定的次数,报告程序升级端,下载错误,执行步骤12)。未达到规定的次数,执行步骤4)。
7)正确,软件复位,使MCU进入控制程序区运行控制程序。
8)如果程序升级标志字节为1,执行步骤9)。否则,执行步骤13)和14)。
9)将升级程序中升级后的BootLoader程序写入升级程序区$0。
10)程序升级标志字节为2。
11)执行步骤2)。
12)将控制程序备份区$2的控制程序复制到控制程序区$1,执行步骤14)。
13)报告程序升级端,升级标志异常。
14)程序升级标志字节清零。
15)软件复位,退出升级程序,返回控制程序区$1的控制程序运行。
至此,完成了正确下载升级程序BootLoader的升级处理和恢复原控制程序的运行,或不正确下载升级程序后恢复原升级程序并运行原控制程序的过程。
本发明第三实施例,在上述实施例的基础上,请参阅图7:
一种程序升级方法,包括;
S301、接收并解析程序升级指令。
S302、当所述程序升级指令的升级对象为控制程序时,将升级程序区的程序升级标志字节清零,同时,将控制程序备份到控制程序备份区。
S303、下载新的控制程序,并将所述新的控制程序写入控制程序区覆盖原控制程序;
S304、运行新的控制程序。
在具体的实施例当中,当程序升级端升级控制程序时,具体执行步骤如下:
1)MCU运行控制程序区$1的控制程序时,收到程序升级端发来的控制程序升级程序命令,将程序升级标志字节清0。因进行控制程序的升级处理,需要进入升级程序BootLoader运行。
2)进入升级程序BootLoader运行后,将控制程序备份到控制程序备份区$2。
3)下载升级程序(新的控制程序),并写入控制程序区$1。
4)软件复位MCU运行,使MCU返回控制程序区$1运行控制程序。
至此,完成了控制程序的下载升级处理和运行新程序。
本发明第四实施例,在上述实施例的基础上,请参阅图8-9:
一种程序升级方法,包括;
S401、接收并解析程序升级指令。
S402、当所述程序升级指令的升级对象为控制程序时,将升级程序区的程序升级标志字节清零,同时,将控制程序备份到控制程序备份区。
S403、下载新的控制程序,并将所述新的控制程序写入控制程序区覆盖原控制程序;
S404、检测写入控制程序区的控制程序是否正确,若否,则将控制程序备份区的控制程序复制到控制程序区。
S405、运行原控制程序。
在具体的实施例当中,当程序升级端升级控制程序时,具体执行步骤如下:
1)MCU运行控制程序区$1的控制程序时,收到程序升级端发来的控制程序升级程序命令,将程序升级标志字节清0。因进行控制程序的升级处理,需要进入升级程序BootLoader运行。
2)进入升级程序BootLoader运行后,将控制程序备份到控制程序备份区$2。
3)下载升级程序(新的控制程序),并写入控制程序区$1。
4)完成程序下载后,检查下载到控制程序区$1的程序是否正确,并根据检测结果执行步骤5)或6)。
5)将控制程序备份区$2的控制程序复制到控制程序区$1,执行步骤6)。
6)软件复位MCU运行,使MCU返回控制程序区$1运行控制程序。
至此,完成了控制程序的下载升级处理和运行新程序,或下载有错恢复原控制程序处理和运行原程序。
对下载程序进行检验。如果下载程序正确,运行在相对地址区域为$0的升级程序BootLoader会软件复位,使MCU进入相对地址区域为$1的控制程序区域,运行新的控制程序。如果,下载程序错误,则运行在相对地址区域为$0的升级程序BootLoader会将相对地址区域为$2的控制程序备份区的程序覆盖相对地址区域为$1的控制程序区的下载程序,并进行软件复位,使MCU运行老程序,避免下载程序错误,造成家电运行错误。
本发明第一、第二实施例与本发明第三、第四实施例对升级程序和控制程序的升级过程的不同之处在于:
1)升级程序BootLoader的升级,多进入一次升级程序区运行。
2)升级程序BootLoader的升级,最后需要将控制程序从控制程序备份区$2复制到控制程序区$1;而控制程序的升级,仅在控制程序升级失败后,才将控制程序备份区$2的控制程序复制到控制程序区$1。
3)升级程序成功下载到控制程序区域后,升级程序BootLoader的升级,还需要将该区域的升级程序BootLoader的升级程序写入升级程序区;而控制程序的升级仅到此就完成了下载。
本发明第五实施例:
请参阅图10,
本发明一实施例还提供一种程序升级装置,包括;
解析模块10,用于接收并解析程序升级指令;
设定模块20,用于当所述程序升级指令的升级对象为升级程序时,将升级程序区的程序升级标志字节设定为1;
备份模块30,用于将控制程序备份到控制程序备份区;
下载模块40,用于下载新的升级程序;
写模块50,用于将所述新的升级程序写入控制程序区;还用于将所述新的升级程序写入所述升级程序区覆盖原升级程序,以使所述设定模块20将程序升级标志字节设定为2;
恢复模块60,用于将所述控制程序备份区的控制程序复制到所述控制程序区,并使所述设定模块20将升级程序区的程序升级标志字节清零;
运行模块70,用于运行原控制程序。
现在已有的使用MCU中升级程序BootLoader升级的技术中,仅实现了控制程序的下载升级,没有对下载升级程序BootLoader的升级方法,而实际使用中,会遇到已有的升级程序不能满足要求时,就无法实现MCU新要求下的程序升级了。
为解决上述技术问题,在本发明的一具体的实施例当中,以升级程序BootLoader为例,在有BootLoader这样的升级程序系统中,程序空间被划分成3个区域,如图3-4所示。
家电MCU的升级程序BootLoader在出厂前就有了升级程序BootLoader的升级标志字节。通过该字节中的内容为0、1和2,实现MCU程序的正常运行、升级程序BootLoader的升级处理和恢复原控制程序以及恢复原控制程序的运行。
MCU接收升级程序端的升级程序BootLoader升级命令后,将升级程序BootLoader的升级标志字节设置为1,并从控制程序进入升级程序区运行。
MCU进入升级程序区运行后,首先,将相对地址区域为$1的控制程序备份到相对地址区域为$2的控制程序备份区。然后,MCU接收新的升级程序BootLoader并写入相对地址区域为$1的控制程序区。之后,软件复位MCU的运行,使MCU进入相对地址区域为$1的控制程序区运行。
当MCU进入相对地址区域为$1的控制程序区运行时,因升级程序BootLoader的升级标志字节为1,MCU将下载到控制程序区中的升级程序BootLoader复制到升级程序区$0中,即覆盖原来的升级程序BootLoader,并将升级程序BootLoader的升级标志字节改为2。
MCU进入升级后的升级程序BootLoader运行。因,此时升级程序BootLoader的升级标志字节为2,所以,升级程序BootLoader仅将相对地址区域为$2的控制程序备份复制到相对地址区域为$1的控制程序区,即,恢复原来的控制程序,并将升级程序BootLoader的升级标志字节清0。
软件复位MCU的运行,使MCU进入到相对地址区域为$1的控制程序区运行。因,$0区域中的升级程序BootLoader的升级标志字节为0,所以,MCU进入原来的控制程序进行正常运行。
根据上述实施例的教导,本发明能够完成升级程序BootLoader的升级,同时又不改变原有的控制程序,MCU进入原来的控制程序进行正常运行。
在一优选的实施例当中,所述程序升级装置在将所述新的升级程序写入控制程序区之后,还检测写入控制程序区的升级程序是否正确,若否,则重新请求下载并写入新的升级程序。
在具体的实施例当中,若在写入失败的次数达到预设上限之前,检测写入控制程序区的升级程序是正确,则将所述新的升级程序写入所述升级程序区覆盖原升级程序,并将程序升级标志字节设定为2。将所述控制程序备份区的控制程序复制到所述控制程序区,并将升级程序区的程序升级标志字节清零。运行原控制程序。
若写入失败的次数达到预设上限,则将升级程序区的程序升级标志字节清零,并恢复原升级程序;运行原控制程序。
在具体的实施例当中,当程序升级端进行升级程序BootLoader的升级时,具体执行步骤如下:
1)MCU运行控制程序区的控制程序时,收到程序升级端发来的控制程序升级程序命令,将程序升级标志字节设置为1。因进行升级程序BootLoader的升级处理,而进入升级程序BootLoader运行。
2)进入升级程序BootLoader运行后,检测程序升级标志字节为1还是为2还是其它数值,分别执行步骤3)-11),12)、14)-15)和13)-15)。
3)如果程序升级标志字节为1,将控制程序备份到控制程序备份区$2。
4)下载新的升级程序BootLoader,并写入控制程序区$1。
5)下载完升级程序后,检测控制程序区$1中的下载程序是否正确,并根据检测结果执行步骤6)或7)。
6)不正确,检查下载次数是否达到规定的次数。达到规定的次数,报告程序升级端,下载错误,执行步骤12)。未达到规定的次数,执行步骤4)。
7)正确,软件复位,使MCU进入控制程序区运行控制程序。
8)如果程序升级标志字节为1,执行步骤9)。否则,执行步骤13)和14)。
9)将升级程序中升级后的BootLoader程序写入升级程序区$0。
10)程序升级标志字节为2。
11)执行步骤2)。
12)将控制程序备份区$2的控制程序复制到控制程序区$1,执行步骤14)。
13)报告程序升级端,升级标志异常。
14)程序升级标志字节清零。
15)软件复位,退出升级程序,返回控制程序区$1的控制程序运行。
至此,完成了正确下载升级程序BootLoader的升级处理和恢复原控制程序的运行,或不正确下载升级程序后恢复原升级程序并运行原控制程序的过程。
本发明第六实施例:
请参阅图11,在上述实施例的基础上,所述的程序升级装置,还包括:
所述设定模块20,还用于当所述程序升级指令的升级对象为控制程序时,将升级程序区的程序升级标志字节清零;
所述备份模块30,还用于将控制程序备份到控制程序备份区;
所述下载模块40,还用于下载新的控制程序;
所述写模块50,还用于将所述新的控制程序写入控制程序区覆盖原控制程序;
所述运行模块70,还用于运行新的控制程序。
在具体的实施例当中,当程序升级端升级控制程序时,具体执行步骤如下:
1)MCU运行控制程序区$1的控制程序时,收到程序升级端发来的控制程序升级程序命令,将程序升级标志字节清0。因进行控制程序的升级处理,需要进入升级程序BootLoader运行。
2)进入升级程序BootLoader运行后,将控制程序备份到控制程序备份区$2。
3)下载升级程序(新的控制程序),并写入控制程序区$1。
4)软件复位MCU运行,使MCU返回控制程序区$1运行控制程序。
至此,完成了控制程序的下载升级处理和运行新程序。
在一优选的实施例当中,所述的程序升级装置,还包括:
检测模块80,用于检测写入控制程序区的控制程序是否正确;
恢复模块60,用于在检测结果为不正确时,将控制程序备份区的控制程序复制到控制程序区;
所述运行模块70,还用于运行原控制程序。
在具体的实施例当中,当程序升级端升级控制程序时,具体执行步骤如下:
1)MCU运行控制程序区$1的控制程序时,收到程序升级端发来的控制程序升级程序命令,将程序升级标志字节清0。因进行控制程序的升级处理,需要进入升级程序BootLoader运行。
2)进入升级程序BootLoader运行后,将控制程序备份到控制程序备份区$2。
3)下载升级程序(新的控制程序),并写入控制程序区$1。
4)完成程序下载后,检查下载到控制程序区$1的程序是否正确,并根据检测结果执行步骤5)或6)。
5)将控制程序备份区$2的控制程序复制到控制程序区$1,执行步骤6)。
6)软件复位MCU运行,使MCU返回控制程序区$1运行控制程序。
至此,完成了控制程序的下载升级处理和运行新程序,或下载有错恢复原控制程序处理和运行原程序。
对下载程序进行检验。如果下载程序正确,运行在相对地址区域为$0的升级程序BootLoader会软件复位,使MCU进入相对地址区域为$1的控制程序区域,运行新的控制程序。如果,下载程序错误,则运行在相对地址区域为$0的升级程序BootLoader会将相对地址区域为$2的控制程序备份区的程序覆盖相对地址区域为$1的控制程序区的下载程序,并进行软件复位,使MCU运行老程序,避免下载程序错误,造成家电运行错误。
对升级程序和控制程序的升级过程的不同之处在于:
1)升级程序BootLoader的升级,多进入一次升级程序区运行。
2)升级程序BootLoader的升级,最后需要将控制程序从控制程序备份区$2复制到控制程序区$1;而控制程序的升级,仅在控制程序升级失败后,才将控制程序备份区$2的控制程序复制到控制程序区$1。
3)升级程序成功下载到控制程序区域后,升级程序BootLoader的升级,还需要将该区域的升级程序BootLoader的升级程序写入升级程序区;而控制程序的升级仅到此就完成了下载。
本发明一实施例还提供一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的程序升级方法。
需要说明的是,终端设备包括网络空调、网络冰箱、网络酒柜、网络洗衣机等网络家电产品,即智能家电或智能终端。
终端设备可作为一种数据处理设备,可以理解为装载有处理器的终端设备。该处理器可经由总线从其它元件(例如,存储器、I/O接口、显示器、通信接口等)接收(例如)指令,破译接收到的指令,并执行与破译后的指令相应的操作或数据处理。处理器可以包括中央处理器(Central Processing Unit,CPU)、图形处理器mraphics Processing Unit,GPW、数字信号处理器(digital signal processor,DSP)和图像信号处理器(Image SignalProcessor,ISP)中至少一项,例如可以包括CPU、GPU、DSP和ISP。
该终端设备还包括存储器,可存储从处理器或其它元件(例如,I/O接口、显示器、通信接口等)接收到的或由处理器或其它元件产生的指令或数据。存储器可包括(例如)编程模块,诸如内核、中间件、应用编程接口(API)、应用等。该编程模块均可使用软件、固件、硬件或者软件、固件、硬件中的两个或更多个的组合配置。
内核可控制或管理用于执行在其余的该编程模块(例如,中间件、API或应用)中实施的操作或功能的系统资源(例如,总线、处理器或存储器等)。此外,内核可提供允许中间件、API或应用接入电子装置的各个元件并对其进行控制或管理的接口。
中间件可执行中介作用使得API或应用可与内核进行通信以提供和获取数据。此外,与从应用接收到的任务请求相关联,中间件可使用(例如)向应用中的至少一个分配可使用该电子装置的系统资源(例如,总线、处理器或存储器等)的优先级的方法来执行针对任务请求的控制。
API是允许应用控制由内核或中间件提供的功能的接口,并且可包括用于文件控制、窗口控制、图像处理或字符控制等的至少一个接口或功能(例如,指令)。
本发明一实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的程序升级方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可监听存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种程序升级方法,其特征在于,包括;
接收并解析程序升级指令;
当所述程序升级指令的升级对象为升级程序时,将升级程序区的程序升级标志字节设定为1,同时,将控制程序备份到控制程序备份区;
下载新的升级程序,并将所述新的升级程序写入控制程序区;
将所述新的升级程序写入所述升级程序区覆盖原升级程序,并将程序升级标志字节设定为2;
将所述控制程序备份区的控制程序复制到所述控制程序区,并将升级程序区的程序升级标志字节清零;
运行原控制程序。
2.根据权利要求1所述的程序升级方法,其特征在于,在将所述新的升级程序写入控制程序区之后,还包括:
检测写入控制程序区的升级程序是否正确,若否,则重新请求下载并写入新的升级程序。
3.根据权利要求2所述的程序升级方法,其特征在于,还包括:
若写入失败的次数达到预设上限,则将升级程序区的程序升级标志字节清零,并恢复原升级程序;
运行原控制程序。
4.根据权利要求1所述的程序升级方法,其特征在于,还包括:
当所述程序升级指令的升级对象为控制程序时,将升级程序区的程序升级标志字节清零,同时,将控制程序备份到控制程序备份区;
下载新的控制程序,并将所述新的控制程序写入控制程序区覆盖原控制程序;
运行新的控制程序。
5.根据权利要求4所述的程序升级方法,其特征在于,在将所述新的控制程序写入控制程序区之后,还包括:
检测写入控制程序区的控制程序是否正确,若否,则将控制程序备份区的控制程序复制到控制程序区;
运行原控制程序。
6.一种程序升级装置,其特征在于,包括;
解析模块,用于接收并解析程序升级指令;
设定模块,用于当所述程序升级指令的升级对象为升级程序时,将升级程序区的程序升级标志字节设定为1;
备份模块,用于将控制程序备份到控制程序备份区;
下载模块,用于下载新的升级程序;
写模块,用于将所述新的升级程序写入控制程序区;还用于将所述新的升级程序写入所述升级程序区覆盖原升级程序,以使所述设定模块将程序升级标志字节设定为2;
恢复模块,用于将所述控制程序备份区的控制程序复制到所述控制程序区,并使所述设定模块将升级程序区的程序升级标志字节清零;
运行模块,用于运行原控制程序。
7.根据权利要求6所述的程序升级装置,其特征在于,还包括:
所述设定模块,还用于当所述程序升级指令的升级对象为控制程序时,将升级程序区的程序升级标志字节清零;
所述备份模块,还用于将控制程序备份到控制程序备份区;
所述下载模块,还用于下载新的控制程序;
所述写模块,还用于将所述新的控制程序写入控制程序区覆盖原控制程序;
所述运行模块,还用于运行新的控制程序。
8.根据权利要求7所述的程序升级装置,其特征在于,还包括:
检测模块,用于检测写入控制程序区的控制程序是否正确;
恢复模块,用于在检测结果为不正确时,将控制程序备份区的控制程序复制到控制程序区;
所述运行模块,还用于运行原控制程序。
9.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-5所述的程序升级方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1-5所述的程序升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910771522.4A CN110532014B (zh) | 2019-08-20 | 2019-08-20 | 程序升级方法、装置、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910771522.4A CN110532014B (zh) | 2019-08-20 | 2019-08-20 | 程序升级方法、装置、终端设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532014A true CN110532014A (zh) | 2019-12-03 |
CN110532014B CN110532014B (zh) | 2023-06-30 |
Family
ID=68663844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910771522.4A Active CN110532014B (zh) | 2019-08-20 | 2019-08-20 | 程序升级方法、装置、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532014B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459508A (zh) * | 2020-03-27 | 2020-07-28 | 北京经纬恒润科技有限公司 | 一种BootLoader自升级的方法及系统 |
CN111928438A (zh) * | 2020-07-31 | 2020-11-13 | 海信(山东)空调有限公司 | 改写空调控制参数的方法和空调器 |
CN113672257A (zh) * | 2021-08-05 | 2021-11-19 | 深圳市道通智能汽车有限公司 | 一种微控制单元软件升级方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002084484A2 (en) * | 2001-04-18 | 2002-10-24 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
CN102023908A (zh) * | 2010-12-03 | 2011-04-20 | 中兴通讯股份有限公司 | 一种引导程序备份方法及装置 |
CN102902556A (zh) * | 2012-09-06 | 2013-01-30 | 深圳市共进电子股份有限公司 | 一种嵌入式设备的多级引导加载方法 |
-
2019
- 2019-08-20 CN CN201910771522.4A patent/CN110532014B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002084484A2 (en) * | 2001-04-18 | 2002-10-24 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
CN102023908A (zh) * | 2010-12-03 | 2011-04-20 | 中兴通讯股份有限公司 | 一种引导程序备份方法及装置 |
CN102902556A (zh) * | 2012-09-06 | 2013-01-30 | 深圳市共进电子股份有限公司 | 一种嵌入式设备的多级引导加载方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459508A (zh) * | 2020-03-27 | 2020-07-28 | 北京经纬恒润科技有限公司 | 一种BootLoader自升级的方法及系统 |
CN111459508B (zh) * | 2020-03-27 | 2023-12-01 | 北京经纬恒润科技股份有限公司 | 一种BootLoader自升级的方法及系统 |
CN111928438A (zh) * | 2020-07-31 | 2020-11-13 | 海信(山东)空调有限公司 | 改写空调控制参数的方法和空调器 |
CN113672257A (zh) * | 2021-08-05 | 2021-11-19 | 深圳市道通智能汽车有限公司 | 一种微控制单元软件升级方法、电子设备及存储介质 |
CN113672257B (zh) * | 2021-08-05 | 2024-05-28 | 深圳市塞防科技有限公司 | 一种微控制单元软件升级方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110532014B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106569847B (zh) | 一种用于车载系统基于移动网络实现iap远程升级的方法 | |
CN104090796B (zh) | 一种嵌入式设备程序更新方法和系统 | |
CN110532014A (zh) | 程序升级方法、装置、终端设备及计算机可读存储介质 | |
CN106502717B (zh) | 应用程序运行方法及装置 | |
CN101815988A (zh) | 固件映像更新和管理 | |
CN109189445A (zh) | 一种物联网设备程序升级的方法 | |
CN108509215B (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN103793248A (zh) | 一种应用程序升级的方法及装置 | |
CN102486733A (zh) | 引导程序的升级方法和装置 | |
KR100782856B1 (ko) | 디지털 방송 수신기의 소프트웨어 업그레이드 방법 및 장치 | |
US20210279083A1 (en) | Method and device for loading minus-one screen, terminal, and computer readable storage medium | |
CN108196877A (zh) | 组件发布管理的方法和装置以及计算设备 | |
CN102722408B (zh) | 一种通讯设备软件更新的方法及装置 | |
CN108989103A (zh) | 设备升级方法、调试器、网络设备和网络系统 | |
CN111273924A (zh) | 软件更新方法及装置 | |
CN112130926A (zh) | 应用程序运行的方法、装置、终端设备及存储介质 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN113778391A (zh) | 原生应用程序的页面处理方法、装置及设备 | |
CN104951348B (zh) | 一种可中断的recovery升级方法及装置 | |
CN114385124A (zh) | 基于Vue框架的独立页面的跳转方法、装置及设备 | |
CN102196308A (zh) | 一种基于数字电视的多硬件接口兼容驱动系统 | |
CN106708569B (zh) | 一种跨线列车中vobc配置文件的热加载方法及装置 | |
EP3321808B1 (en) | Verification system and verification method | |
CN113176996A (zh) | 故障处理方法、引擎、插件化探针、设备及可读存储介质 | |
CN105472418A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |