CN106502718A - 程序的升级方法和装置、控制器 - Google Patents
程序的升级方法和装置、控制器 Download PDFInfo
- Publication number
- CN106502718A CN106502718A CN201610843661.XA CN201610843661A CN106502718A CN 106502718 A CN106502718 A CN 106502718A CN 201610843661 A CN201610843661 A CN 201610843661A CN 106502718 A CN106502718 A CN 106502718A
- Authority
- CN
- China
- Prior art keywords
- controller
- code
- file
- cache area
- check code
- 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
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
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种程序的升级方法和装置、控制器。其中,该方法包括:控制器读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,其中,校验文件中存储了机组标识信息和bin文件校验码;控制器将读取到的机组标识信息与控制器自身的标识信息进行匹配;在匹配成功的情况下,控制器在代码缓存区复制移动存储装置中存储的更新文件;控制器根据写入到代码缓存区的更新文件计算代码缓存区的校验码;在代码缓存区的校验码与bin文件校验码匹配成功的情况下,控制器使用更新文件进行更新。本发明解决了现有技术中基于USB的程序升级方法容易发生文件误更新的技术问题。
Description
技术领域
本发明涉及软件领域,具体而言,涉及一种程序的升级方法和装置、控制器。
背景技术
软件开发者在编写软件的时候,由于考虑不全面或程序功能不完善,在软件发行后,通过对程序的修改或加入新的功能后,以补丁的形式发布。程序升级是为了更好地满足用户的需求和防止病毒的入侵,通过在之前的软件上进行更新或修改,确保用户安全方便地使用。
程序升级的方法多种多样,有远程升级方式、串口升级方式、USB升级方式等。
发明人发现,以上程序升级方式均存在缺陷:
远程升级需要网络链路支持以及上位机操作,速度较慢,且受通信质量影响较大,不利于数据完整性;串口升级速率太慢;USB升级方式只要识别到U盘,就开始读写文件进行更新,但是有时候U盘存储的更新文件是错误的,这就会造成文件误更新。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种程序的升级方法和装置、控制器,以至少解决现有技术中基于USB的程序升级方法容易发生文件误更新的技术问题。
根据本发明实施例的一个方面,提供了一种程序的升级方法,包括:控制器读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,其中,所述校验文件中存储了所述机组标识信息和所述bin文件校验码;所述控制器将读取到的所述机组标识信息与所述控制器自身的标识信息进行匹配;在匹配成功的情况下,所述控制器在代码缓存区复制所述移动存储装置中存储的更新文件;所述控制器根据写入到所述代码缓存区的更新文件计算所述代码缓存区的校验码;在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,所述控制器使用所述更新文件进行更新。
进一步地,所述机组标识信息为机型信息,所述校验文件中存储了机型信息,所述控制器将读取到的所述机组标识信息与自身的标识信息进行匹配包括:所述控制器将从所述校验文件中读取到的机型信息与所述控制器自身的机型信息进行匹配。
进一步地,所述机型信息为机型ID,所述校验文件中存储了机型ID,所述控制器将从所述校验文件中读取到的机型信息与所述控制器自身的机型信息进行匹配包括:所述控制器将从所述校验文件中读取到的机型ID与所述控制器自身的机型ID进行匹配。
进一步地,所述机组标识信息为机组功能码,所述校验文件中存储了机组功能码,所述控制器将读取到的所述机组标识信息与自身的标识信息进行匹配包括:所述控制器将从所述校验文件中读取到的机组功能码与所述控制器自身的机组功能码进行匹配。
进一步地,在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,所述控制器使用所述更新文件进行更新包括:在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,所述控制器置位升级标志,以使所述控制器重启之后根据所述升级标志确定使用所述更新文件进行更新。
进一步地,所述控制器根据写入到所述代码缓存区的更新文件计算所述代码缓存区的校验码包括:所述控制器检测写入到所述代码缓存区的更新文件的长度;所述控制器根据写入到所述代码缓存区的更新文件的长度计算所述代码缓存区的校验码。
进一步地,在匹配成功的情况下,所述控制器在代码缓存区复制所述移动存储装置中存储的更新文件包括:在匹配成功的情况下,所述控制器擦除所述代码缓存区的预设扇区存储的数据;所述控制器将所述更新文件写入所述预设扇区。
根据本发明实施例的另一方面,还提供了一种程序的升级装置,包括:读取单元,用于读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,其中,所述校验文件中存储了所述机组标识信息和所述bin文件校验码;匹配单元,用于将读取到的所述机组标识信息与控制器自身的标识信息进行匹配;复制单元,用于在匹配成功的情况下,在代码缓存区复制所述移动存储装置中存储的更新文件;计算单元,用于根据写入到所述代码缓存区的更新文件计算所述代码缓存区的校验码;更新单元,用于在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,使用所述更新文件进行更新。
进一步地,所述机组标识信息为机型信息,所述校验文件中存储了机型信息,所述匹配单元包括:第一匹配子单元,用于将从所述校验文件中读取到的机型信息与所述控制器自身的机型信息进行匹配。
进一步地,所述机型信息为机型ID,所述校验文件中存储了机型ID,所述第一匹配子单元包括:匹配模块,用于将从所述校验文件中读取到的机型ID与所述控制器自身的机型ID进行匹配。
进一步地,所述机组标识信息为机组功能码,所述校验文件中存储了机组功能码,所述匹配单元包括:第二匹配子单元,用于将从所述校验文件中读取到的机组功能码与所述控制器自身的机组功能码进行匹配。
进一步地,所述更新单元包括:更新子单元,用于在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,置位升级标志,以根据所述升级标志确定使用所述更新文件进行更新。
进一步地,所述计算单元包括:检测子单元,用于检测写入到所述代码缓存区的更新文件的长度;计算子单元,用于根据写入到所述代码缓存区的更新文件的长度计算所述代码缓存区的校验码。
进一步地,在匹配成功的情况下,所述复制单元包括:擦除子单元,用于在匹配成功的情况下,擦除所述代码缓存区的预设扇区存储的数据;复制子单元,用于将所述更新文件写入所述预设扇区。
根据本发明实施例的另一方面,还提供了一种控制器,包括:上述程序的升级装置。
在本发明实施例中,控制器读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,控制器将读取到的机组标识信息与控制器自身的标识信息进行匹配。在匹配失败的情况下,说明移动存储装置中存储的更新文件与控制器不对应,此时结束操作。在匹配成功的情况下,说明移动存储装置中存储的更新文件与控制器相对应,控制器在代码缓存区复制移动存储装置中存储的更新文件。复制完成后,控制器根据写入到代码缓存区的更新文件计算代码缓存区的校验码。控制器将代码缓存区的校验码与从移动存储装置中读取出的bin文件校验码进行匹配。如果代码缓存区的校验码与bin文件校验码匹配失败,说明在控制器复制更新文件的过程中产生了错误,在此种情况下,结束操作。如果代码缓存区的校验码与bin文件校验码匹配成功,说明控制器复制更新文件的过程中没有出现问题,在此种情况下,控制器使用代码缓存区的更新文件进行更新,这就保证了程序升级的过程是安全的,不会出现文件误更新的情况,达到了降低基于USB的程序升级方法发生文件误更新的概率的技术效果,进而解决了现有技术中基于USB的程序升级方法容易发生文件误更新的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种程序的升级方法的流程图;
图2是根据本发明实施例的程序升级方法的硬件连接的示意图;
图3根据本发明实施例的另一种程序的升级方法的流程图;
图4根据本发明实施例的flash的分段示意图;
图5是根据本发明实施例的程序的升级装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种程序的升级方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种程序的升级方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,控制器读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,其中,校验文件中存储了机组标识信息和bin文件校验码。
步骤S104,控制器将读取到的机组标识信息与控制器自身的标识信息进行匹配。
步骤S106,在匹配成功的情况下,控制器在代码缓存区复制移动存储装置中存储的更新文件。
步骤S108,控制器根据写入到代码缓存区的更新文件计算代码缓存区的校验码。
步骤S110,在代码缓存区的校验码与bin文件校验码匹配成功的情况下,控制器使用更新文件进行更新。
移动存储装置可以是U盘、移动硬盘等。移动存储装置存储着校验文件和更新文件。机组标识信息可以是机型信息、机组功能码等能够表征机组的机型、功能等的参数。代码缓存区可以是flash。系统运行中,程序会从通信数据中获取到控制器自身的标识信息,例如获取到控制器自身的机型信息。
在本发明实施例中,控制器读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,控制器将读取到的机组标识信息与控制器自身的标识信息进行匹配。在匹配失败的情况下,说明移动存储装置中存储的更新文件与控制器不对应,此时结束操作。在匹配成功的情况下,说明移动存储装置中存储的更新文件与控制器相对应,控制器在代码缓存区复制移动存储装置中存储的更新文件。复制完成后,控制器根据写入到代码缓存区的更新文件计算代码缓存区的校验码。控制器将代码缓存区的校验码与从移动存储装置中读取出的bin文件校验码进行匹配。如果代码缓存区的校验码与bin文件校验码匹配失败,说明在控制器复制更新文件的过程中产生了错误,在此种情况下,结束操作。如果代码缓存区的校验码与bin文件校验码匹配成功,说明控制器复制更新文件的过程中没有出现问题,在此种情况下,控制器使用代码缓存区的更新文件进行更新,这就保证了程序升级的过程是安全的,不会出现文件误更新的情况,解决了现有技术中基于USB的程序升级方法容易发生文件误更新的技术问题,达到了降低基于USB的程序升级方法发生文件误更新的概率的技术效果。
可选地,机组标识信息可以为机型信息、机组功能码等。
当机组标识信息为机型信息时,控制器读取移动存储装置中存储的校验文件,得到机型信息和bin文件校验码,控制器将读取到的机型信息与控制器自身的机型信息进行匹配。在匹配失败的情况下,说明移动存储装置中存储的更新文件与控制器机型不对应,此时结束操作。在匹配成功的情况下,说明移动存储装置中存储的更新文件与控制器机型对应,之后,控制器在代码缓存区复制移动存储装置中存储的更新文件。
可选地,机型信息为机型ID。当机型信息为机型ID时,校验文件中存储了机型ID,控制器读取移动存储装置中存储的校验文件,得到机型ID和bin文件校验码,控制器将读取到的机型ID与控制器自身的机型ID进行匹配。在匹配失败的情况下,说明移动存储装置中存储的更新文件与控制器机型不对应,此时结束操作。在匹配成功的情况下,说明移动存储装置中存储的更新文件与控制器机型对应,之后,控制器在代码缓存区复制移动存储装置中存储的更新文件。
可选地,机组标识信息为机组功能码。当机组标识信息为机组功能码时,校验文件中存储了机组功能码,控制器读取移动存储装置中存储的校验文件,得到机组功能码和bin文件校验码,控制器将读取到的机组功能码与控制器自身的机组功能码进行匹配。在匹配失败的情况下,说明移动存储装置中存储的更新文件与控制器的功能不对应,此时结束操作。在匹配成功的情况下,说明移动存储装置中存储的更新文件与控制器的功能对应,之后,控制器在代码缓存区复制移动存储装置中存储的更新文件。
控制器将读取到的机组标识信息与控制器自身的标识信息进行匹配。在匹配成功的情况下,控制器在代码缓存区复制移动存储装置中存储的更新文件。控制器在代码缓存区复制移动存储装置中存储的更新文件这个过程中,可能会出现复制更新文件出错的情况,此时,如果直接使用代码缓存区的更新文件,就会出现错误更新。
为了避免以上问题,在本发明实施例中,控制器在代码缓存区复制移动存储装置中存储的更新文件之后,控制器根据写入到代码缓存区的更新文件的长度计算代码缓存区的校验码。如果代码缓存区的校验码与bin文件校验码匹配失败,则说明控制器在代码缓存区复制移动存储装置中存储的更新文件这个过程出现了问题,代码缓存区的更新文件是错误的,此时停止操作。如果代码缓存区的校验码与bin文件校验码匹配成功,则说明写入到代码缓存区的更新文件是正确的,此时控制器使用写入到代码缓存区的更新文件进行更新。这就避免了使用错误的更新文件进行程序升级的情况。
可选地,在代码缓存区的校验码与bin文件校验码匹配成功的情况下,控制器置位升级标志,以使控制器重启之后根据升级标志确定使用更新文件进行更新。
可以根据代码缓存区的校验码与bin文件校验码是否匹配成功,将升级标志设置为不同的标识或数值。当控制器重启之后,控制器检查升级标志,根据升级标志的值判断是否需要升级程序。例如,假设如果代码缓存区的校验码与bin文件校验码匹配成功,则将升级标志设置为1。如果代码缓存区的校验码与bin文件校验码匹配失败,将升级标志设置为0。当控制器重启之后,控制器检查升级标志。如果发现升级标志是1,则控制器能够确定代码缓存区存储的更新文件正确,在这种情况下,需要使用代码缓存区存储的更新文件来升级程序。如果发现升级标志是0,则控制器能够确定代码缓存区存储的更新文件错误,在这种情况下,控制器不会使用代码缓存区存储的更新文件来升级程序。
通过根据代码缓存区的校验码与bin文件校验码是否匹配成功,将升级标志设置为不同的标识或数值,控制器在重启之后能够根据升级标志判断代码缓存区存储的更新文件是否正确,从而确定是否使用代码缓存区存储的更新文件来升级程序,从而降低了程序升级过程中文件误更新的概率,并且能够使控制器在重启之后也能得知代码缓存区存储的更新文件是否正确。
获取代码缓存区的校验码的过程可以是这样的:控制器检测写入到代码缓存区的更新文件的长度;控制器根据写入到代码缓存区的更新文件的长度计算代码缓存区的校验码。计算出代码缓存区的校验码之后,控制器将代码缓存区的校验码与从移动存储装置中读取出的bin文件校验码进行匹配。如果代码缓存区的校验码与bin文件校验码匹配成功,说明控制器复制更新文件的过程中没有出现问题,在此种情况下,控制器使用写入到代码缓存区的更新文件进行更新。
图2是根据本发明实施例的程序升级方法的硬件连接的示意图。如图2所示,控制器1上具有USB接口11,U盘2通过USB接口11与控制器1相连接。U盘2中存储着更新文件和校验文件。
控制器1通过USB接口11读取U盘2中存储的校验文件,得到机组标识信息和bin文件校验码,控制器1将读取到的机组标识信息与控制器1自身的标识信息进行匹配。在匹配失败的情况下,说明U盘2中存储的更新文件与控制器1不对应,此时结束操作。在匹配成功的情况下,控制器1在代码缓存区复制U盘2中存储的更新文件。复制完成后,控制器1根据写入到代码缓存区的更新文件计算代码缓存区的校验码。控制器1将计算出的代码缓存区的校验码与从U盘2中读取出的bin文件校验码进行匹配。如果代码缓存区的校验码与bin文件校验码匹配失败,说明在控制器1复制更新文件的过程中产生了错误,在此种情况下,结束操作。如果代码缓存区的校验码与bin文件校验码匹配成功,说明控制器1复制更新文件的过程中没有出现问题,在此种情况下,控制器1使用写入到代码缓存区的更新文件进行更新,这就保证了升级程序的过程是安全的,不会出现文件误更新的情况,解决了现有技术中基于USB的程序升级方法容易发生文件误更新的技术问题,达到了降低基于USB的程序升级方法发生文件误更新的概率的技术效果。
图3根据本发明实施例的另一种程序的升级方法的流程图,如图3所示,该方法包括如下步骤:
步骤S302,创建一个名为fatfs的工作区。即,控制器创建一个名为fatfs的工作区。
步骤S304,打开update.bin文件(更新文件)。
控制器打开移动存储装置存储的update.bin文件。在打开update.bin文件失败的情况下,方法结束;在打开update.bin文件成功的情况下,执行步骤S306。移动存储装置可以是U盘、移动硬盘等设备。
步骤S306,打开key.txt文件(校验文件)。
控制器打开移动存储装置存储的key.txt文件。在打开key.txt文件失败的情况下,方法结束;在打开key.txt文件成功的情况下,执行步骤S308。
步骤S308,计算update.bin文件的长度。计算update.bin文件的长度的目的是为了在将update.bin文件写入到代码缓存区之前,事先知道需要多大的存储空间。
步骤S310,读key.txt文件,得到bin文件校验码和机型ID校验码。控制器读移动存储装置存储的key.txt文件,得到bin文件校验码和机型ID校验码。
步骤S312,对比机型ID校验码。控制器将读取key.txt文件得到的机型ID校验码与控制器自身的机型ID进行对比,如果读取key.txt文件得到的机型ID校验码与控制器自身的机型ID相等(匹配),则升级文件和机型是对应的,则执行步骤S314;若不相等(不匹配),升级文件和机型无法对应,方法结束。
步骤S314,擦除代码缓存区9、10、11扇区(预设扇区)。
对flash进行三段划分,预留足够的数据缓存区以确保数据在移入缓存过程中的准确性,即升级数据从U盘中复制到缓存区,校验完成后则锁定flash,数据安全性再次得到了保障。其中flash的分段表如图4所示。其中第一段为bootloader以及测试代码区,0x08040000—0x080A0000为应用代码区,0x080A0000—0x080FFFFF为bin文件缓存区。flash总大小为1MB。
步骤S316,将bin文件写入代码缓存区。
步骤S318,计算代码缓存区的校验码并与bin文件校验码对比。根据写入到代码缓存区的更新文件计算代码缓存区的校验码。如果计算出的代码缓存区的校验码与bin文件校验码一致(匹配),说明控制器复制更新文件的过程中没有出现问题,说明控制器复制到代码缓存区的更新文件是正确的,执行步骤S320;如果代码缓存区的校验码与bin文件校验码不一致(不匹配),说明控制器复制到代码缓存区的更新文件是错误的,方法结束。
其中,可用MD5或者其他用于软件代码的校验方式来获取校验码。通过将代码缓存区的校验码与bin文件校验码对比,可以更加确保代码复制的准确性,同时后续也可以采用类似的方法从芯片内置flash中将代码读出来,保存在USB设备中用来备份,可用于同类机组的代码复制功能,可行性强。
步骤S320,设置更新标志位,在0x080FFFFF处写0x01。通过根据代码缓存区的校验码与bin文件校验码是否匹配成功,将升级标志设置为不同的标识或数值,控制器在重启之后能够根据升级标志判断代码缓存区存储的更新文件是否正确,从而确定是否使用代码缓存区存储的更新文件来升级程序,从而降低了程序升级过程中文件误更新的概率,并且能够使控制器在重启之后也能得知代码缓存区存储的更新文件是否正确。
步骤S322,注销该工作区。程序升级完成,注销fatfs工作区。
步骤S324,进入状态指示循环,500ms闪绿灯。通过闪绿灯告知用户程序升级完成。
步骤S326,移除设备则终止循环,任务继续扫描USB端口。当将设备(移动存储装置)从控制器的USB端口移除之后,终止循环,任务继续扫描USB端口。这样当下一次将移动存储装置通过USB端口与控制器相连接时,控制器能够很快识别出移动存储装置。
本发明实施例提供的程序升级方法通过文件加密,识别具体机型并进行加密校验,多次校验能够有效地防止文件误更新,能够有效地提高安全性,步骤简单,便于操作,且由于USB接口具有较高的传输速率,能够实现大文件的快速读写,用于IAP功能具有较高的可行性。
作为一种可选的实施例,对应于升级文件的校验文件也可以采用插入的方式写入到bin文件中,与bin文件进行合并,这样只需要USB设备中有一个文件即可完成升级,同时也兼顾了安全校验功能。
根据本发明实施例,还提供了一种程序的升级装置。该程序的升级装置可以执行上述程序的升级方法,上述程序的升级方法也可以通过该程序的升级装置实施。
图5是根据本发明实施例的程序的升级装置的示意图。如图5所示,该装置包括:读取单元10、匹配单元20、复制单元30、计算单元40、更新单元50。
读取单元10,用于读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,其中,校验文件中存储了机组标识信息和bin文件校验码。
匹配单元20,用于将读取到的机组标识信息与控制器自身的标识信息进行匹配。
复制单元30,用于在匹配成功的情况下,在代码缓存区复制移动存储装置中存储的更新文件。
计算单元40,用于根据写入到代码缓存区的更新文件计算代码缓存区的校验码。
更新单元50,用于在代码缓存区的校验码与bin文件校验码匹配成功的情况下,使用更新文件进行更新。
可选地,机组标识信息为机型信息,校验文件中存储了机型信息,匹配单元20包括:第一匹配子单元。第一匹配子单元,用于将从校验文件中读取到的机型信息与控制器自身的机型信息进行匹配。
可选地,机型信息为机型ID,校验文件中存储了机型ID,第一匹配子单元包括:匹配模块。匹配模块,用于将从校验文件中读取到的机型ID与控制器自身的机型ID进行匹配。
可选地,机组标识信息为机组功能码,校验文件中存储了机组功能码,匹配单元20包括:第二匹配子单元。第二匹配子单元,用于将从校验文件中读取到的机组功能码与控制器自身的机组功能码进行匹配。
可选地,更新单元50包括:更新子单元。更新子单元,用于在代码缓存区的校验码与bin文件校验码匹配成功的情况下,置位升级标志,以根据升级标志确定使用更新文件进行更新。
可选地,计算单元40包括:检测子单元、计算子单元。检测子单元,用于检测写入到代码缓存区的更新文件的长度。计算子单元,用于根据写入到代码缓存区的更新文件的长度计算代码缓存区的校验码。
可选地,在匹配成功的情况下,复制单元30包括:擦除子单元、复制子单元。擦除子单元,用于在匹配成功的情况下,擦除代码缓存区的预设扇区存储的数据。复制子单元,用于将更新文件写入预设扇区。
根据本发明实施例,还提供了一种控制器,该控制器包括上述的程序的升级装置。
控制器读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,其中,校验文件中存储了机组标识信息和bin文件校验码。控制器将读取到的机组标识信息与控制器自身的标识信息进行匹配。在匹配成功的情况下,控制器在代码缓存区复制移动存储装置中存储的更新文件。控制器根据更新文件和校验文件获取代码缓存区的校验码。在代码缓存区的校验码与bin文件校验码匹配成功的情况下,控制器使用更新文件进行更新。移动存储装置可以是U盘、移动硬盘等。移动存储装置存储着校验文件和更新文件。机组标识信息可以是机型信息、机组功能码等能够表征机组的机型、功能等的参数。代码缓存区可以是flash。系统运行中,程序会从通信数据中获取到控制器自身的标识信息,例如获取到控制器自身的机型信息。
在本发明实施例中,控制器读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,控制器将读取到的机组标识信息与控制器自身的标识信息进行匹配。在匹配失败的情况下,说明移动存储装置中存储的更新文件与控制器不对应,此时结束操作。在匹配成功的情况下,说明移动存储装置中存储的更新文件与控制器相对应,控制器在代码缓存区复制移动存储装置中存储的更新文件。复制完成后,控制器根据写入到代码缓存区的更新文件的长度计算代码缓存区的校验码。控制器将代码缓存区的校验码与从移动存储装置中读取出的bin文件校验码进行匹配。如果代码缓存区的校验码与bin文件校验码匹配失败,说明在控制器复制更新文件的过程中产生了错误,在此种情况下,结束操作。如果代码缓存区的校验码与bin文件校验码匹配成功,说明控制器复制更新文件的过程中没有出现问题,在此种情况下,控制器使用代码缓存区的更新文件进行更新,这就保证了程序升级的过程是安全的,不会出现文件误更新的情况,解决了现有技术中基于USB的程序升级方法容易发生文件误更新的技术问题,达到了降低基于USB的程序升级方法发生文件误更新的概率的技术效果。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种程序的升级方法,其特征在于,所述方法包括:
控制器读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,其中,所述校验文件中存储了所述机组标识信息和所述bin文件校验码;
所述控制器将读取到的所述机组标识信息与所述控制器自身的标识信息进行匹配;
在匹配成功的情况下,所述控制器在代码缓存区复制所述移动存储装置中存储的更新文件;
所述控制器根据写入到所述代码缓存区的更新文件计算所述代码缓存区的校验码;
在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,所述控制器使用所述更新文件进行更新。
2.根据权利要求1所述的方法,其特征在于,所述机组标识信息为机型信息,所述校验文件中存储了机型信息,所述控制器将读取到的所述机组标识信息与自身的标识信息进行匹配包括:
所述控制器将从所述校验文件中读取到的机型信息与所述控制器自身的机型信息进行匹配。
3.根据权利要求2所述的方法,其特征在于,所述机型信息为机型ID,所述校验文件中存储了机型ID,所述控制器将从所述校验文件中读取到的机型信息与所述控制器自身的机型信息进行匹配包括:
所述控制器将从所述校验文件中读取到的机型ID与所述控制器自身的机型ID进行匹配。
4.根据权利要求1所述的方法,其特征在于,所述机组标识信息为机组功能码,所述校验文件中存储了机组功能码,所述控制器将读取到的所述机组标识信息与自身的标识信息进行匹配包括:
所述控制器将从所述校验文件中读取到的机组功能码与所述控制器自身的机组功能码进行匹配。
5.根据权利要求1所述的方法,其特征在于,在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,所述控制器使用所述更新文件进行更新包括:
在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,所述控制器置位升级标志,以使所述控制器重启之后根据所述升级标志确定使用所述更新文件进行更新。
6.根据权利要求1所述的方法,其特征在于,所述控制器根据写入到所述代码缓存区的更新文件计算所述代码缓存区的校验码包括:
所述控制器检测写入到所述代码缓存区的更新文件的长度;
所述控制器根据写入到所述代码缓存区的更新文件的长度计算所述代码缓存区的校验码。
7.根据权利要求1所述的方法,其特征在于,在匹配成功的情况下,所述控制器在代码缓存区复制所述移动存储装置中存储的更新文件包括:
在匹配成功的情况下,所述控制器擦除所述代码缓存区的预设扇区存储的数据;
所述控制器将所述更新文件写入所述预设扇区。
8.一种程序的升级装置,其特征在于,所述装置包括:
读取单元,用于读取移动存储装置中存储的校验文件,得到机组标识信息和bin文件校验码,其中,所述校验文件中存储了所述机组标识信息和所述bin文件校验码;
匹配单元,用于将读取到的所述机组标识信息与控制器自身的标识信息进行匹配;
复制单元,用于在匹配成功的情况下,在代码缓存区复制所述移动存储装置中存储的更新文件;
计算单元,用于根据写入到所述代码缓存区的更新文件计算所述代码缓存区的校验码;
更新单元,用于在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,使用所述更新文件进行更新。
9.根据权利要求8所述的装置,其特征在于,所述机组标识信息为机型信息,所述校验文件中存储了机型信息,所述匹配单元包括:
第一匹配子单元,用于将从所述校验文件中读取到的机型信息与所述控制器自身的机型信息进行匹配。
10.根据权利要求9所述的装置,其特征在于,所述机型信息为机型ID,所述校验文件中存储了机型ID,所述第一匹配子单元包括:
匹配模块,用于将从所述校验文件中读取到的机型ID与所述控制器自身的机型ID进行匹配。
11.根据权利要求8所述的装置,其特征在于,所述机组标识信息为机组功能码,所述校验文件中存储了机组功能码,所述匹配单元包括:
第二匹配子单元,用于将从所述校验文件中读取到的机组功能码与所述控制器自身的机组功能码进行匹配。
12.根据权利要求8所述的装置,其特征在于,所述更新单元包括:
更新子单元,用于在所述代码缓存区的校验码与所述bin文件校验码匹配成功的情况下,置位升级标志,以根据所述升级标志确定使用所述更新文件进行更新。
13.根据权利要求8所述的装置,其特征在于,所述计算单元包括:
检测子单元,用于检测写入到所述代码缓存区的更新文件的长度;
计算子单元,用于根据写入到所述代码缓存区的更新文件的长度计算所述代码缓存区的校验码。
14.根据权利要求8所述的装置,其特征在于,在匹配成功的情况下,所述复制单元包括:
擦除子单元,用于在匹配成功的情况下,擦除所述代码缓存区的预设扇区存储的数据;
复制子单元,用于将所述更新文件写入所述预设扇区。
15.一种控制器,其特征在于,包括权利要求8至14任一项所述的程序的升级装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610843661.XA CN106502718B (zh) | 2016-09-22 | 2016-09-22 | 程序的升级方法和装置、控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610843661.XA CN106502718B (zh) | 2016-09-22 | 2016-09-22 | 程序的升级方法和装置、控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106502718A true CN106502718A (zh) | 2017-03-15 |
CN106502718B CN106502718B (zh) | 2019-05-31 |
Family
ID=58290548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610843661.XA Active CN106502718B (zh) | 2016-09-22 | 2016-09-22 | 程序的升级方法和装置、控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106502718B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168872A (zh) * | 2017-05-11 | 2017-09-15 | 网易(杭州)网络有限公司 | 代码检查的方法、装置、存储介质和处理器 |
CN107977222A (zh) * | 2017-12-21 | 2018-05-01 | 北京京存技术有限公司 | 适用于eMMC的升级文件的转换、生成方法及装置 |
CN110597534A (zh) * | 2019-08-26 | 2019-12-20 | 珠海格力电器股份有限公司 | 智能设备及应用程序更新方法、更新辅助方法和装置 |
CN113778493A (zh) * | 2021-09-28 | 2021-12-10 | 冠捷显示科技(厦门)有限公司 | 一种软件智能配置系统升级方法 |
CN114043053A (zh) * | 2021-11-22 | 2022-02-15 | 常州九圣焊割设备股份有限公司 | 一种等离子切割系统的控制方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315605A (zh) * | 2008-06-26 | 2008-12-03 | 四川长虹电器股份有限公司 | 基于usb端口的平板电视软件自动升级方法 |
CN101620542A (zh) * | 2009-07-30 | 2010-01-06 | 深圳市蓝韵实业有限公司 | 一种超声成像设备软件数据的兼容更新方法 |
CN102662697A (zh) * | 2012-03-27 | 2012-09-12 | 深圳市开立科技有限公司 | 一种软件升级方法及装置 |
CN105045633A (zh) * | 2015-08-10 | 2015-11-11 | 广东欧珀移动通信有限公司 | 一种扫描升级包的方法及装置 |
-
2016
- 2016-09-22 CN CN201610843661.XA patent/CN106502718B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315605A (zh) * | 2008-06-26 | 2008-12-03 | 四川长虹电器股份有限公司 | 基于usb端口的平板电视软件自动升级方法 |
CN101620542A (zh) * | 2009-07-30 | 2010-01-06 | 深圳市蓝韵实业有限公司 | 一种超声成像设备软件数据的兼容更新方法 |
CN102662697A (zh) * | 2012-03-27 | 2012-09-12 | 深圳市开立科技有限公司 | 一种软件升级方法及装置 |
CN105045633A (zh) * | 2015-08-10 | 2015-11-11 | 广东欧珀移动通信有限公司 | 一种扫描升级包的方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168872A (zh) * | 2017-05-11 | 2017-09-15 | 网易(杭州)网络有限公司 | 代码检查的方法、装置、存储介质和处理器 |
CN107977222A (zh) * | 2017-12-21 | 2018-05-01 | 北京京存技术有限公司 | 适用于eMMC的升级文件的转换、生成方法及装置 |
CN110597534A (zh) * | 2019-08-26 | 2019-12-20 | 珠海格力电器股份有限公司 | 智能设备及应用程序更新方法、更新辅助方法和装置 |
CN113778493A (zh) * | 2021-09-28 | 2021-12-10 | 冠捷显示科技(厦门)有限公司 | 一种软件智能配置系统升级方法 |
CN114043053A (zh) * | 2021-11-22 | 2022-02-15 | 常州九圣焊割设备股份有限公司 | 一种等离子切割系统的控制方法和装置 |
CN114043053B (zh) * | 2021-11-22 | 2023-09-08 | 常州九圣焊割设备股份有限公司 | 一种等离子切割系统的控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106502718B (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502718A (zh) | 程序的升级方法和装置、控制器 | |
CN103970585B (zh) | 创建虚拟机的方法及装置 | |
CN109343790A (zh) | 一种基于nand flash的数据存储方法、终端设备及存储介质 | |
CN103176863B (zh) | 使用冗余虚拟机的错误检测 | |
CN104461641B (zh) | 一种数据烧写方法、系统、烧写设备以及目标设备 | |
CN108415853A (zh) | 一种垃圾回收的方法、装置及存储设备 | |
CN103198122B (zh) | 重启内存数据库的方法和装置 | |
CN109062598A (zh) | 一种安全的ota升级方法及系统 | |
CN103392164A (zh) | 存储系统和存储控制方法 | |
CN102934089A (zh) | 针对文件的错误检测 | |
CN108108193A (zh) | 一种安全易用的固件升级方法及系统 | |
CN105354059A (zh) | 空调系统的控制器的升级方法及装置 | |
CN109992285A (zh) | 区块链代码块独立升级方法、装置及电子设备 | |
CN102890647B (zh) | 一种数据的存储与更新方法及装置 | |
CN106789249A (zh) | 热更新方法、客户端及服务器 | |
CN107526608A (zh) | 一种ota升级包升级方法及设备 | |
CN103823703B (zh) | 一种同一固件兼容不同设备的方法及装置 | |
CN110083379A (zh) | 一种服务器部件升级方法及相关装置 | |
CN107908417A (zh) | 固件升级方法及电子设备 | |
CN104636480B (zh) | 重建备机数据库的方法及其装置 | |
CN110007941A (zh) | 一种智能垃圾分类回收系统的mcu固件及升级方法 | |
CN108389600A (zh) | 数据储存装置以及参数改写方法 | |
CN106935272B (zh) | 开启eMMC后门调试的方法和装置 | |
CN107643937A (zh) | 一种虚拟机监视器升级方法及装置 | |
CN103020051B (zh) | 一种插入设备的数据转移方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |