CN109471656A - 一种程序刷新方法及装置 - Google Patents
一种程序刷新方法及装置 Download PDFInfo
- Publication number
- CN109471656A CN109471656A CN201710796263.1A CN201710796263A CN109471656A CN 109471656 A CN109471656 A CN 109471656A CN 201710796263 A CN201710796263 A CN 201710796263A CN 109471656 A CN109471656 A CN 109471656A
- Authority
- CN
- China
- Prior art keywords
- program
- refreshed
- memory block
- program data
- data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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)
- Stored Programmes (AREA)
Abstract
一种程序刷新方法及装置,所述方法包括:比较旧版本程序的程序数据与新版本程序的程序数据,以确定并提取至少一个变更点的地址信息,所述旧版本程序的程序数据存储于待刷新器件的多个存储块中;根据每一所述变更点的地址信息确定所述变更点所属的存储块,以作为待刷新的存储块;基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块。通过本发明提供的技术方案能够有效减少进行程序刷新时的数据刷新量,极大地降低了程序刷新的用时,进而更好地提高嵌入式控制模块的使用效率。
Description
技术领域
本发明涉及嵌入式系统技术领域,具体地涉及一种程序刷新方法及装置。
背景技术
对于嵌入式控制模块(以下简称控制模块)而言,当用户需要刷新这些控制模块中运行的程序时,一般做法是将本地的刷新执行工具通过外部设备连接到待刷新终端(例如,汽车的电子零部件)的控制模块上,以对该控制模块的存储单元上存储的程序数据进行更新。
现有的程序刷新方案主要包括以下这几个步骤:首先,获取该控制模块中,当前运行的待刷新版本程序数据在存储单元上对应的首地址,以及所述待刷新版本程序数据在所述存储单元中所占的存储空间;然后,根据前述步骤获取的信息清除存储单元中原始存储的待刷新版本程序数据的内容;接下来,传输刷新版本程序数据;最后,将刷新版本程序数据写入存储单元。
在实际应用中,随着控制模块上的功能日益综合化,其尺寸逐渐增大;同时,为了满足用户对电子器件的功能的多样化需求,程序提供方需要不断开发并刷新控制模块上运行的控制程序,以及时为用户提供多种多样的服务。
上述种种原因都会导致现有终端上运行的程序的规模日益增大,但是,随着控制程序规模的增大,控制程序暴露出的问题也越来越多,这些问题同样需要通过程序刷新来解决。因此,控制模块程序的刷新也变得更加频繁。
另一方面,伴随着控制模块程序规模的增大,连接待刷新终端的外部设备的数据传输速率却没有明显的改善,这直接造成了在程序刷新上所花费的时间逐渐增大,这一问题正变得日趋突出急待解决。
在现阶段,对嵌入式控制模块进行程序刷新时,普遍需要耗费大量的时间,影响了控制模块的使用效率。
发明内容
本发明解决的技术问题是现有技术在对嵌入式控制模块进行程序刷新时耗时过多,影响了控制模块的使用效率的问题。
为解决上述技术问题,本发明实施例提供一种程序刷新方法,包括:比较旧版本程序的程序数据与新版本程序的程序数据,以确定并提取至少一个变更点的地址信息,所述旧版本程序的程序数据存储于待刷新器件的多个存储块中;根据每一所述变更点的地址信息确定所述变更点所属的存储块,以作为待刷新的存储块;基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块。
可选的,所述旧版本程序的程序数据还存储于除所述待刷新器件外的其他模块中,在所述比较旧版本程序的程序数据与新版本程序的程序数据之前,包括:从所述待刷新器件处获取所述旧版本程序的版本信息;根据所述版本信息从所述其他模块中获取所述旧版本程序的程序数据。
可选的,所述其他模块的访问速度高于所述待刷新器件的访问速度。
可选的,每一存储块包括至少一个存储单元,不同存储块中包含的存储单元的数量相同或不同。
可选的,根据每一所述变更点的地址信息确定所述变更点所属的存储块包括:判断所述变更点的地址信息是否落在所述多个存储块各自对应的地址区间内;当判断结果表明所述变更点的地址信息落在其中一个存储块对应的地址区间内时,确定所述存储块为所述变更点所属的存储块。
可选的,基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块包括:根据所述待刷新的存储块的地址区间,从所述新版本程序的程序数据中提取与所述待刷新的存储块的地址区间相对应的程序数据;对所述程序数据进行格式处理;基于处理后的所述程序数据刷新所述待刷新的存储块。
可选的,对所述程序数据进行格式处理包括:根据所述待刷新的存储块各自的地址区间将所述程序数据划分为至少一个程序文件,使得所述待刷新的存储块与程序文件一一对应。
可选的,对所述程序数据进行格式处理包括:对所述程序数据进行格式转换,使得格式转换后的所述程序数据与所述待刷新器件能够解析的格式适配。
本发明实施例还提供一种程序刷新装置,包括:比较模块,用于比较旧版本程序的程序数据与新版本程序的程序数据,以确定并提取至少一个变更点的地址信息,所述旧版本程序的程序数据存储于待刷新器件的多个存储块中;确定模块,用于根据每一所述变更点的地址信息确定所述变更点所属的存储块,以作为待刷新的存储块;刷新模块,用于基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块。
可选的,所述旧版本程序的程序数据还存储于除所述待刷新器件外的其他模块中,所述程序刷新装置还包括:第一获取模块,用于在比较旧版本程序的程序数据与新版本程序的程序数据之前,从所述待刷新器件处获取所述旧版本程序的版本信息;第二获取模块,用于根据所述版本信息从所述其他模块中获取所述旧版本程序的程序数据。
可选的,所述其他模块的访问速度高于所述待刷新器件的访问速度。
可选的,每一存储块包括至少一个存储单元,不同存储块中包含的存储单元的数量相同或不同。
可选的,所述确定模块包括:判断子模块,用于判断所述变更点的地址信息是否落在所述多个存储块各自对应的地址区间内;确定子模块,当判断结果表明所述变更点的地址信息落在其中一个存储块对应的地址区间内时,确定所述存储块为所述变更点所属的存储块。
可选的,所述刷新模块包括:提取子模块,用于根据所述待刷新的存储块的地址区间,从所述新版本程序的程序数据中提取与所述待刷新的存储块的地址区间相对应的程序数据;格式处理子模块,用于对所述程序数据进行格式处理;刷新子模块,用于基于处理后的所述程序数据刷新所述待刷新的存储块。
可选的,所述格式处理子模块包括:划分单元,用于根据所述待刷新的存储块各自的地址区间将所述程序数据划分为至少一个程序文件,使得所述待刷新的存储块与程序文件一一对应。
可选的,所述格式处理子模块包括:格式转换单元,用于对所述程序数据进行格式转换,使得格式转换后的所述程序数据与所述待刷新器件能够解析的格式适配。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
比较旧版本程序的程序数据与新版本程序的程序数据,以确定并提取至少一个变更点的地址信息,其中,所述旧版本程序的程序数据存储于待刷新器件的多个存储块中,根据每一所述变更点的地址信息确定所述变更点所属的存储块,以作为待刷新的存储块,并基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块。较之现有清空待刷新器件上旧版本程序的全部程序数据后,在写入新版本程序的全部程序数据的技术方案,本发明实施例的技术方案通过对本次待刷新的新版本程序的程序数据与所述待刷新器件(例如待刷新的控制模块)中当前运行的旧版本程序的程序数据进行比较,抽出两者间的区别点作为所述变更点,根据所述变更点的地址信息,仅对所述旧版本程序的程序数据中需要变更的部分进行刷新,从而有效减少程序刷新操作时的数据刷新量,更好地解决现有技术刷新费时的问题,极大地降低了程序刷新的用时,进而更好地提高嵌入式控制模块的使用效率。
进一步,所述旧版本程序的程序数据可以存储于除所述待刷新器件外的其他模块中,则本发明实施例的技术方案优选地从所述待刷新器件处获取所述旧版本程序的版本信息,并根据所述版本信息从所述其他模块中获取所述旧版本程序的程序数据,所述其他模块的访问速度高于所述待刷新器件的访问速度,使得基于本发明实施例的技术方案进行程序刷新时,能够更好的减少刷新用时,提高效率。
附图说明
图1是本发明的第一实施例的一种程序刷新方法的流程图;
图2是采用本发明第一实施例的一种地址空间的分配示意图;
图3是采用本发明第一实施例的新旧版本程序的程序数据的部分示意图;
图4是本发明的第二实施例的一种程序刷新装置的结构示意图;
图5是采用本发明实施例的一个典型的应用场景的系统结构示意图。
具体实施方式
本领域技术人员理解,如背景技术所言,现有的对嵌入式控制模块上运行的程序进行刷新的程序刷新方案仍局限于对所述程序的全部程序数据进行刷新,在实际应用时太过费时,影响了嵌入式控制模块的使用效率。
为了解决上述技术问题,本发明实施例的技术方案比较旧版本程序的程序数据与新版本程序的程序数据,以确定并提取至少一个变更点的地址信息,其中,所述旧版本程序的程序数据存储于待刷新器件的多个存储块中,根据每一所述变更点的地址信息确定所述变更点所属的存储块,以作为待刷新的存储块,并基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块。
本领域技术人员理解,本发明实施例的技术方案通过对本次待刷新的新版本程序的程序数据与嵌入式控制模块(即所述待刷新器件)中当前运行的旧版本程序的程序数据进行比较,抽出两者间的区别点作为所述变更点,根据所述变更点的地址信息,重点对所述旧版本程序的程序数据中需要变更的部分进行刷新,从而有效减少程序刷新操作时的数据刷新量,更好地解决现有技术刷新费时的问题,极大地降低了程序刷新的用时,进而更好地提高嵌入式控制模块的使用效率。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明的第一实施例的一种程序刷新方法的流程图。其中,本发明实施例的技术方案刷新的程序可以是运行于嵌入式控制模块上的程序;所述嵌入式控制模块可以包括汽车上的电子零部件,还可以包括其他安装有嵌入式程序的电子器件。
具体地,在本实施例中,首先执行步骤S101,比较旧版本程序的程序数据与新版本程序的程序数据,以确定并提取至少一个变更点的地址信息,所述旧版本程序的程序数据存储于待刷新器件的多个存储块中;然后执行步骤S102,根据每一所述变更点的地址信息确定所述变更点所属的存储块,以作为待刷新的存储块;接下来执行步骤S103,基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块。
进一步地,在所述步骤S101中,所述旧版本程序可以是所述嵌入式控制模块上当前运行的程序;所述新版本程序可以是本次需要采用本发明实施例的技术方案进行刷新的程序。
进一步地,每一存储块包括至少一个存储单元,不同存储块中包含的存储单元的数量相同或不相同。接下来,结合图2示出的地址空间的分配示意图对所述存储块和存储单元做进一步阐述,其中,所述存储模块与所述待刷新器件相对应。在一个优选例中,图2示出的所述存储模块24可以用于存储所述旧版本程序的程序数据,在图2示出的示意图中,所述存储模块24可以是闪速只读存储器24(Flash Read-Only Memory,简称Flash ROM),其根据分配到的地址空间可以划分为至少一个存储块,每一个存储块又可以根据所述地址空间划分为至少一个存储单元。例如,存储空间2根据各个存储部件占用的地址空间进行划分,例如可以大致划分为至少一个输入输出21(Input Output,简称IO)的地址空间、至少一个电可擦可编程只读存储器22(Electrically Erasable Programmable Read-Only Memory,简称EEPROM)的地址空间、至少一个随机存取存储器23(Random-Access Memory,简称RAM)的地址空间以及闪速只读存储器24的地址空间。其中,第一个输入输出21分配到的地址空间可以包括00000000-0003FFFF,第一个电可擦可编程只读存储器22分配到的地址空间可以包括08000000-0803FFFF,第一个随机存取存储器23分配到的地址空间可以包括EF000000-EF03FFFF,所述闪速只读存储器24分配到的地址空间可以包括FFEE0000-FFFFFFFF。、。
在一个典型的应用场景中,所述闪速只读存储器24可以根据所述地址空间划分为六个存储块(对应图2所示的存储块241至246),根据现有技术中所述闪速只读存储器24的工作原理,本发明实施例的技术方案可以以所述存储块为最小单位进行程序数据的刷新。优选地,所述存储单元可以以字节(byte)为单位,相应的,每一所述存储块包括至少一个字节。优选地,不同存储块中包含的字节数可以相同或不相同,即不同存储块的容量可以相同或不相同。
进一步地,继续结合图2,在一个优选地应用场景中,对于连接在访问速率(也可称为访问速度)为125Kbps的控制器局域网络(Controller Area Network,简称CAN)总线上的控制器模块(即嵌入式控制模块),其根据功能结构可以划分为17KB的开机(BOOT)区块、21KB的校准(Calibration)区块以及997KB的编程语言(A Programming Language,简称APL)区块。前述三个区块在控制模块中的地址分配如图2所示。
在本应用场景中,运行于所述待刷新器件上的旧版本程序的程序数据存储于6个存储块241至246中,其中,所述存储块241和存储块242可以各自包括64K个字节,所述存储块243至存储块246可以各自包括256K个字节。优选地,本领域技术人员可以根据所采用的存储模块的不同,变化出更多旧版本程序的程序数据的存储状态,这并不影响本发明的技术内容。
进一步地,所述旧版本程序的程序数据和新版本程序的程序数据在本质上可以是一串数据,并且每一个数据包括各自的地址信息。例如,结合图2示出的地址空间的分配示意图中可以看出,所述存储块241分配到的地址空间(即对应的地址区间)包括FFEE:0000-FFEE:FFFF,其用于存储地址信息为FFEE0000-FFEEFFFF上64K个字节的数据;又例如,所述存储块242对应地址区间FFEF:0000-FFEF:FFFF,其用于存储地址信息为FFEF0000-FFEFFFFF上64K个字节的数据;所述存储块243至246各自对应的地址区间如图2所示,在此不予赘述。
进一步地,所述旧版本程序和新版本程序的程序数据可以以.mot或.hex等格式进行存储。
在一个优选例中,所述步骤S101通过比较相同地址信息的新旧版本程序各自对应的数据是否相同,来确定所述变更点,进而提取所述变更点的地址信息。例如,图3示出了以.mot格式进行存储的新旧版本程序的部分程序数据,其中,记录在S315后的FFFE0000和FFFE0010可以是其各自所在行数据的地址信息。进一步地,结合图3可以看出,新旧版本程序的程序数据在所述地址信息FFFE0010上的六个字节的数据存在差异,进而可以确定所述六个字节为所述变更点,所述地址信息FFFE0010为所述变更点的地址信息。
又例如,对于以.hex格式存储的新旧版本程序的程序数据,所述地址信息可以是字符“:10”之后的四位数据。
进一步地,所述变更点可以与所述字节相对应,例如,一个字节就是一个变更点。在一个变化例中,还可以将连续多个字节作为一个变更点,所述连续多个字节对应的地址信息可以相同,也可以不相同。
作为一个变化例,所述新旧版本程序的程序数据可以不包括地址信息,则本发明实施例可以从预设位置开始以字节为单位比较新版本程序的程序数据和旧版本程序的程序数据,通过比较相同位置上的数据是否相同来确定所述变更点以及变更点的地址信息。例如,当所述新旧版本程序的程序数据以.bin格式存储时,由于所述.bin格式的数据是以纯二进制形式存储的,用户可以预先约定从0地址开始比较,以确定所述变更点,以及所述变更点是从0地址开始的第几个数据。优选地,在实际应用中所述新旧版本程序的程序数据可以不从0地址开始书写,相应的,本领域技术人员可以根据实际需要约定所述预设位置,这并不影响本发明的技术内容。
继续结合图3,在通过执行所述步骤S101确定所述变更点的地址信息为FFFE0010后,本发明实施例的技术方案进一步执行所述步骤S102,判断所述变更点的地址信息FFFE0010是否落在图2所示存储模块包括的多个存储块241至246各自对应的地址区间内,结合图2,所述变更点的地址信息FFFE0010落在所述存储块246对应的地址区间(FFFC0000-FFFFFFFF),从而可以确定所述存储块246为所述变更点所属的存储块,所述存储块246即为本次程序刷新操作中待刷新的存储块。
进一步地,在图3示出的新旧版本程序的部分程序数据中,xx和yy可以是任意16进制数据。
进一步地,执行所述步骤S103,根据所述待刷新的存储块(即所述存储块246)的地址区间,从所述新版本程序的程序数据中提取与所述存储块246的地址区间对应的程序数据,在对所述程序数据进行格式处理后,基于处理后的所述程序数据刷新所述存储块246。本领域技术人员理解,由于所述新版本程序的程序数据中存储的数据同样包括地址信息,因而可以基于作为最小刷新单位的存储块246的地址区间确定需要刷新至所述存储块246的新版本程序的程序数据。
进一步地,在实际应用中,为了提高传输效率,可以在读取与所述存储块246的地址区间相对应的程序数据时,对读取出的所述程序数据进行变形,使得读取出的所述程序数据的数据量最小化。例如,所述新版本程序的程序数据是以.hex格式存储的,本实施例在做取出操作时可能将其变形为其他格式数据以提高传输效率,但是所述存储块246只能解析.hex格式的程序数据,因而在基于所述程序数据刷新所述存储块246之前,需要先对取出的所述程序数据进行格式转换,使得格式转换后的所述程序数据与所述待刷新器件能够解析的格式适配。
进一步地,若确定本次程序刷新中待刷新的存储块为多个,则还可以将取出的程序数据根据所述多个待刷新的存储块各自的地址区间进行划分,使得所述待刷新的存储块与划分后的程序文件能够一一对应。
进一步地,在所述步骤S103中,可以根据预设顺序逐一对所述待刷新的存储块进行程序刷新。
在本实施例的一个变化例中,所述旧版本程序的程序数据还存储于除所述待刷新器件外的其他模块中,相应的,在执行所述步骤S101之前,还包括步骤:从所述待刷新器件处获取所述旧版本程序的版本信息;根据所述版本信息从所述其他模块中获取所述旧版本程序的程序数据。优选地,所述其他模块的访问速度高于所述待刷新器件的访问速度。本领域技术人员理解,虽然可以直接从所述待刷新器件获取所述旧版本程序的程序数据,但是在实际应用时,这样的方案可以受限于所述待刷新器件的访问速度,进而拖慢了实施本发明实施例的技术方案的整体用时。因而,本变化例可以将所述待刷新器件历史上运行过的所有版本程序的程序数据均存储在所述其他模块中,在采用本发明实施例的技术方案进行程序刷新时,可以从所述待刷新器件上获取其当前运行程序的版本号,然后从所述其他模块中获取与所述版本号对应的程序数据,由于所述其他模块的访问速度高于所述待刷新器件的访问速度,采用本变化例的技术方案能够更进一步地提高程序刷新速度。
进一步地,所述其他模块还可以以数据库的形式存储于服务器或本地数据缓存上,其中,所述数据库的访问速度高于所述待刷新器件的访问速度。
本领域技术人员理解,仍以图2示出的嵌入式控制模块为例,在采用现有技术对所述嵌入式控制模块进行程序刷新时,需要对地址区间为FFEE0000至FFFFFFFF之间的所有1088KB数据都进行程序刷新,若所述控制器局域网络的总线上每秒能够传输1000条报文,则基于现有技术需要139秒才能完成对所述嵌入式控制模块的程序刷新。
而若采用本发明第一实施例的技术方案,只需刷新从FFFC0000至FFFFFFFF这一段地址区间上的数据(共256KB),仍以所述控制器局域网络的总线上每秒能够传输1000条报文计算,只需33秒就可以完成整个程序刷新操作,其花费的时间约为现有技术的25%,极大地降低了程序刷新的用时,进而更好地提高嵌入式控制模块的使用效率。
进一步地,采用本发明实施例的技术方案进行程序刷新的总用时,与基于现有技术进行程序刷新的总用时之间的关系可以基于如下公式表示:
其中,Tnew为采用本发明实施例的技术方案进行程序刷新的总用时;Told为基于现有技术进行程序刷新的总用时;Scy为第y个待刷新的存储块的容量;m为所述待刷新的存储块的数量;Si为第i个存储块的容量;n为所述待刷新器件包括的存储块数量。
优选地,所述嵌入式控制模块上运行的程序数据所占存储单元空间越大(即所述存储块的容量越大),所述控制器包括的存储块分块越小(即所述待刷新器件包括的存储块数量越多),采用本发明实施例的技术方案进行程序刷新的效果越显著。
图4是本发明的第二实施例的一种程序刷新装置的结构示意图。本领域技术人员理解,本实施例所述程序刷新装置4用于实施上述图1所示实施例中所述的方法技术方案。具体地,在本实施例中,所述程序刷新装置4包括比较模块43,用于比较旧版本程序的程序数据与新版本程序的程序数据,以确定并提取至少一个变更点的地址信息,所述旧版本程序的程序数据存储于待刷新器件的多个存储块中;确定模块44,用于根据每一所述变更点的地址信息确定所述变更点所属的存储块,以作为待刷新的存储块;刷新模块45,用于基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块。
进一步地,所述旧版本程序的程序数据还存储于除所述待刷新器件外的其他模块中,所述程序刷新装置4还包括第一获取模块41,用于在比较旧版本程序的程序数据与新版本程序的程序数据之前,从所述待刷新器件处获取所述旧版本程序的版本信息;第二获取模块42,用于根据所述版本信息从所述其他模块中获取所述旧版本程序的程序数据。
优选地,所述其他模块的访问速度高于所述待刷新器件的访问速度。
优选地,每一存储块包括至少一个存储单元,不同存储块中包含的存储单元的数量相同或不同。
进一步地,所述确定模块44包括判断子模块441,用于判断所述变更点的地址信息是否落在所述多个存储块各自对应的地址区间内;确定子模块442,当判断结果表明所述变更点的地址信息落在其中一个存储块对应的地址区间内时,确定所述存储块为所述变更点所属的存储块。
进一步地,所述刷新模块45包括提取子模块451,用于根据所述待刷新的存储块的地址区间,从所述新版本程序的程序数据中提取与所述待刷新的存储块的地址区间相对应的程序数据;格式处理子模块452,用于对所述程序数据进行格式处理;刷新子模块453,用于基于处理后的所述程序数据刷新所述待刷新的存储块。
优选地,所述格式处理子模块452包括划分单元4521,用于根据所述待刷新的存储块各自的地址区间将所述程序数据划分为至少一个程序文件,使得所述待刷新的存储块与程序文件一一对应。
进一步地,所述格式处理子模块452包括格式转换单元4522,用于对所述程序数据进行格式转换,使得格式转换后的所述程序数据与所述待刷新器件能够解析的格式适配。
关于所述程序刷新装置4的工作原理、工作方式的更多内容,可以参照图1的相关描述,这里不再赘述。
图5是采用本发明实施例的一个典型应用场景的数据流通图。在本应用场景中,待刷新器件上历史运行过的各版本程序的程序数据存储在以往版本程序数据库521中,所述待刷新器件包括的存储块信息(例如,用于存储所述旧版本程序的程序数据的存储块数量,以及所述存储块各自对应的地址区间等)存储在控制模块存储单元信息数据库524中。其中,所述以往版本程序数据库521和控制模块存储单元信息数据库524可以以软件或硬件形式作为在上述图4所示程序刷新装置(对应图5示出的程序刷新装置52)的一部分,以便所述程序刷新装置52执行上述图1所述方法技术方案进行程序刷新。或者,所述以往版本程序数据库521和控制模块存储单元信息数据库524也可以外设于所述程序刷新装置52,并在执行本发明实施例的技术方案时被所述程序刷新装置52访问以调用所需数据。
例如,在读入新版本程序的程序数据51(也可称为数据文档)后,所述程序刷新装置52调用数据比较功能块522从控制模块程序版本取得功能块53处获取所述待刷新器件当前运行程序的版本信息,从而基于所述版本信息从所述以往版本程序数据库521中获取对应的程序数据。然后,所述数据比较功能块522基于地址信息将所述程序数据与读入的新版本程序的程序数据51相比较,以确定并提取至少一个变更点的地址信息,并将所述至少一个变更点的地址信息以及所述新版本程序的程序数据51一同发送至刷新存储块确定功能块525。其中,所述数据比较功能块522可以对应上述图4示出的所述第一获取模块41、第二获取模块42以及比较模块43。
进一步地,最小存储块抽取功能块523可以从所述控制模块存储单元信息数据库524中获取所述存储块信息,并将所述存储块信息发送至所述刷新存储块确定功能块525。
进一步地,所述刷新存储块确定功能块525根据接收到的所述至少一个变更点的地址信息和所述存储块信息,确定每一变更点所属的存储块(即待刷新的存储块),并基于所述待刷新的存储块的地址区间从所述新版本程序的程序数据中提取相对应的程序数据,在将所述程序数据做成符合程序刷新处理功能块54能够解析的格式数据后,将其传送给所述程序刷新处理功能块54开始刷新流程。其中,所述刷新存储块确定功能块525可以对应上述图4示出的所述确定模块44和刷新模块45。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (16)
1.一种程序刷新方法,其特征在于,包括:
比较旧版本程序的程序数据与新版本程序的程序数据,以确定并提取至少一个变更点的地址信息,所述旧版本程序的程序数据存储于待刷新器件的多个存储块中;
根据每一所述变更点的地址信息确定所述变更点所属的存储块,以作为待刷新的存储块;
基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块。
2.根据权利要求1所述的程序刷新方法,其特征在于,所述旧版本程序的程序数据还存储于除所述待刷新器件外的其他模块中,在所述比较旧版本程序的程序数据与新版本程序的程序数据之前,包括:
从所述待刷新器件处获取所述旧版本程序的版本信息;
根据所述版本信息从所述其他模块中获取所述旧版本程序的程序数据。
3.根据权利要求2所述的程序刷新方法,其特征在于,所述其他模块的访问速度高于所述待刷新器件的访问速度。
4.根据权利要求1所述的程序刷新方法,其特征在于,每一存储块包括至少一个存储单元,不同存储块中包含的存储单元的数量相同或不同。
5.根据权利要求1所述的程序刷新方法,其特征在于,根据每一所述变更点的地址信息确定所述变更点所属的存储块包括:
判断所述变更点的地址信息是否落在所述多个存储块各自对应的地址区间内;
当判断结果表明所述变更点的地址信息落在其中一个存储块对应的地址区间内时,确定所述存储块为所述变更点所属的存储块。
6.根据权利要求1所述的程序刷新方法,其特征在于,基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块包括:
根据所述待刷新的存储块的地址区间,从所述新版本程序的程序数据中提取与所述待刷新的存储块的地址区间相对应的程序数据;
对所述程序数据进行格式处理;
基于处理后的所述程序数据刷新所述待刷新的存储块。
7.根据权利要求6所述的程序刷新方法,其特征在于,对所述程序数据进行格式处理包括:
根据所述待刷新的存储块各自的地址区间将所述程序数据划分为至少一个程序文件,使得所述待刷新的存储块与程序文件一一对应。
8.根据权利要求6所述的程序刷新方法,其特征在于,对所述程序数据进行格式处理包括:
对所述程序数据进行格式转换,使得格式转换后的所述程序数据与所述待刷新器件能够解析的格式适配。
9.一种程序刷新装置,其特征在于,包括:
比较模块,用于比较旧版本程序的程序数据与新版本程序的程序数据,以确定并提取至少一个变更点的地址信息,所述旧版本程序的程序数据存储于待刷新器件的多个存储块中;
确定模块,用于根据每一所述变更点的地址信息确定所述变更点所属的存储块,以作为待刷新的存储块;
刷新模块,用于基于所述新版本程序中对应于所述待刷新的存储块的程序数据,刷新所述待刷新的存储块。
10.根据权利要求9所述的程序刷新装置,其特征在于,所述旧版本程序的程序数据还存储于除所述待刷新器件外的其他模块中,所述程序刷新装置还包括:
第一获取模块,用于在比较旧版本程序的程序数据与新版本程序的程序数据之前,从所述待刷新器件处获取所述旧版本程序的版本信息;
第二获取模块,用于根据所述版本信息从所述其他模块中获取所述旧版本程序的程序数据。
11.根据权利要求10所述的程序刷新装置,其特征在于,所述其他模块的访问速度高于所述待刷新器件的访问速度。
12.根据权利要求9所述的程序刷新装置,其特征在于,每一存储块包括至少一个存储单元,不同存储块中包含的存储单元的数量相同或不同。
13.根据权利要求9所述的程序刷新装置,其特征在于,所述确定模块包括:
判断子模块,用于判断所述变更点的地址信息是否落在所述多个存储块各自对应的地址区间内;
确定子模块,当判断结果表明所述变更点的地址信息落在其中一个存储块对应的地址区间内时,确定所述存储块为所述变更点所属的存储块。
14.根据权利要求9所述的程序刷新装置,其特征在于,所述刷新模块包括:
提取子模块,用于根据所述待刷新的存储块的地址区间,从所述新版本程序的程序数据中提取与所述待刷新的存储块的地址区间相对应的程序数据;
格式处理子模块,用于对所述程序数据进行格式处理;
刷新子模块,用于基于处理后的所述程序数据刷新所述待刷新的存储块。
15.根据权利要求14所述的程序刷新装置,其特征在于,所述格式处理子模块包括:
划分单元,用于根据所述待刷新的存储块各自的地址区间将所述程序数据划分为至少一个程序文件,使得所述待刷新的存储块与程序文件一一对应。
16.根据权利要求14所述的程序刷新装置,其特征在于,所述格式处理子模块包括:
格式转换单元,用于对所述程序数据进行格式转换,使得格式转换后的所述程序数据与所述待刷新器件能够解析的格式适配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710796263.1A CN109471656A (zh) | 2017-09-06 | 2017-09-06 | 一种程序刷新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710796263.1A CN109471656A (zh) | 2017-09-06 | 2017-09-06 | 一种程序刷新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109471656A true CN109471656A (zh) | 2019-03-15 |
Family
ID=65657932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710796263.1A Pending CN109471656A (zh) | 2017-09-06 | 2017-09-06 | 一种程序刷新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471656A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581109A (zh) * | 2003-08-12 | 2005-02-16 | 联想(北京)有限公司 | 一种刷新嵌入式系统中非易失性存储器的方法 |
CN1926513A (zh) * | 2004-03-02 | 2007-03-07 | 西门子公司 | 用于通过数据传输更新计算机程序的方法和数据处理设备 |
CN101872306A (zh) * | 2009-04-21 | 2010-10-27 | 京信通信系统(中国)有限公司 | 一种实现软件更新和软件备份的嵌入式系统及其实现方法 |
CN105468404A (zh) * | 2015-11-16 | 2016-04-06 | 广州日滨科技发展有限公司 | 一种支架控制器程序远程更新方法及装置 |
CN106250168A (zh) * | 2015-06-15 | 2016-12-21 | 李尔公司 | 包括差分更新包的远程信息处理控制单元 |
US20170090902A1 (en) * | 2015-09-30 | 2017-03-30 | Apple Inc. | Software Updating |
-
2017
- 2017-09-06 CN CN201710796263.1A patent/CN109471656A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581109A (zh) * | 2003-08-12 | 2005-02-16 | 联想(北京)有限公司 | 一种刷新嵌入式系统中非易失性存储器的方法 |
CN1926513A (zh) * | 2004-03-02 | 2007-03-07 | 西门子公司 | 用于通过数据传输更新计算机程序的方法和数据处理设备 |
CN101872306A (zh) * | 2009-04-21 | 2010-10-27 | 京信通信系统(中国)有限公司 | 一种实现软件更新和软件备份的嵌入式系统及其实现方法 |
CN106250168A (zh) * | 2015-06-15 | 2016-12-21 | 李尔公司 | 包括差分更新包的远程信息处理控制单元 |
US20170090902A1 (en) * | 2015-09-30 | 2017-03-30 | Apple Inc. | Software Updating |
CN105468404A (zh) * | 2015-11-16 | 2016-04-06 | 广州日滨科技发展有限公司 | 一种支架控制器程序远程更新方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109523117A (zh) | 风险预测方法、装置、计算机设备和存储介质 | |
CN110674052B (zh) | 内存管理方法、服务器及可读存储介质 | |
CN110866152A (zh) | 一种故障码检索方法、装置和电子设备及可读存储介质 | |
CN113268403A (zh) | 时间序列的分析预测方法、装置、设备及存储介质 | |
CN110018845B (zh) | 元数据版本对比方法及装置 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN111475494A (zh) | 一种海量数据处理方法、系统、终端及存储介质 | |
CN107391672A (zh) | 数据的读写方法及消息化的分布式文件系统 | |
CN109783321A (zh) | 监控数据管理方法、装置、终端设备 | |
CN104657248A (zh) | Java线程堆栈分析方法及系统 | |
CN113344074A (zh) | 模型训练方法、装置、设备及存储介质 | |
CN115249057A (zh) | 用于图形节点采样的系统和由计算机实现的方法 | |
CN107832374A (zh) | 标准知识库的构建方法、电子装置及存储介质 | |
CN110502504A (zh) | 产品单元库构建系统、方法、装置及计算机可读存储介质 | |
CN114995770B (zh) | 一种数据处理方法、装置、设备、系统及可读存储介质 | |
CN109471656A (zh) | 一种程序刷新方法及装置 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN115757054A (zh) | 一种日志记录方法、系统、计算机设备及介质 | |
CN109697224B (zh) | 一种账单消息处理方法、装置和存储介质 | |
CN103530125A (zh) | 一种数据共享方法及系统、窗口的控制单元 | |
CN111930884A (zh) | 一种确定回复语句的方法、设备和人机对话系统 | |
CN108958856A (zh) | 移动终端的控件管理方法、存储介质、电子设备及系统 | |
CN112597748A (zh) | 语料生成方法、装置、设备及计算机可读存储介质 | |
CN111104403B (zh) | 一种lsm树数据处理方法、系统、设备及计算机介质 | |
CN108491262A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190315 |