CN114860308A - 一种嵌入式软件重构方法及装置 - Google Patents
一种嵌入式软件重构方法及装置 Download PDFInfo
- Publication number
- CN114860308A CN114860308A CN202110154885.0A CN202110154885A CN114860308A CN 114860308 A CN114860308 A CN 114860308A CN 202110154885 A CN202110154885 A CN 202110154885A CN 114860308 A CN114860308 A CN 114860308A
- Authority
- CN
- China
- Prior art keywords
- embedded software
- data
- data packets
- reconstruction
- software
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 5
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
Images
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/72—Code refactoring
Abstract
本发明公开了一种嵌入式软件重构方法及装置,涉及计算机技术领域,主要目的在于实现嵌入式软件的自动重构;主要技术方案包括:获取用于重构嵌入式软件的N个数据包,其中,所述N个数据包是由重构控制客户端基于所述嵌入式软件的重构文件拆分而得,N为大于或等于1的整数;检验所述N个数据包是否能够构成完整的所述重构文件;若检验出所述N个数据包能够构成完整的所述重构文件,基于所述嵌入式软件的类型,确定所述嵌入式软件对应的写入区域;在所述写入区域通过所述N个数据包重构所述嵌入式软件。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种嵌入式软件重构方法及装置。
背景技术
嵌入式软件是基于嵌入式平台设计的软件,它是计算机软件的一种,同样由程序及其文档组成,其是嵌入式平台的重要组成部分,为嵌入式平台的正常运行提供基础。
嵌入式软件在使用过程中,需要对嵌入式软件进行重构,来弥补嵌入式软件中的一些的漏洞或者改善嵌入式软件中的一些性能。目前对嵌入式软件进行重构的方法通常为:通过业务人员对嵌入式软件进行手工重构,该重构过程需要业务人员使用专用调试工具,通过特定调试界面手动输入重构命令来完成嵌入式软件的重构,在此过程中操作步骤多,重构效率低,且容易出错,易造成嵌入式平台死机。
发明内容
有鉴于此,本发明提出了一种嵌入式软件重构方法及装置,主要目的在于实现嵌入式软件的自动重构。主要技术方案包括:
第一方面,本发明提供了一种嵌入式软件重构方法,该方法包括:
获取用于重构嵌入式软件的N个数据包,其中,所述N个数据包是由重构控制客户端基于所述嵌入式软件的重构文件拆分而得,N为大于或等于1的整数;
检验所述N个数据包是否能够构成完整的所述重构文件;
若检验出所述N个数据包能够构成完整的所述重构文件,基于所述嵌入式软件的类型,确定所述嵌入式软件对应的写入区域;
在所述写入区域通过所述N个数据包重构所述嵌入式软件。
第二方面,本发明提供了一种嵌入式软件重构装置,该装置包括:
获取单元,用于获取用于重构嵌入式软件的N个数据包,其中,所述N个数据包是由重构控制客户端基于所述嵌入式软件的重构文件拆分而得,N为大于或等于1的整数;
检验单元,用于检验所述N个数据包是否能够构成完整的所述重构文件;
确定单元,用于若检验出所述N个数据包能够构成完整的所述重构文件,基于所述嵌入式软件的类型,确定所述嵌入式软件对应的写入区域;
重构单元,用于在所述写入区域通过所述N个数据包重构所述嵌入式软件;
第三方面,本发明提供了一种计算机可读存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面所述的嵌入式软件重构方法。
第四方面,本发明提供了一种存储管理设备,所述存储管理设备包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于运行所述程序以执行第一方面所述的嵌入式软件重构方法。
借由上述技术方案,本发明提供的嵌入式软件重构方法及装置,获取用于重构嵌入式软件的N个数据包,该N个数据包是由重构控制客户端基于嵌入式软件的重构文件拆分而得。然后在检验出该N个数据包能够构成完整的所述重构文件,基于嵌入式软件的类型,确定嵌入式软件对应的写入区域,并在写入区域通过N个数据包重构嵌入式软件。可见,本发明提供的方案在进行嵌入式软件重构时,无需人工手工介入,在获取到重构控制客户端发送的用于重构嵌入式软件的N个数据包后,便可在嵌入式软件对应的写入区域完成嵌入式软件的重构,因此能够实现嵌入式软件的自动重构,提高嵌入式软件的重构效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一个实施例提供的一种嵌入式软件重构方法的流程图;
图2示出了本发明另一个实施例提供的一种嵌入式软件重构方法的流程图;
图3示出了本发明又一个实施例提供的一种嵌入式软件重构方法的流程图;
图4示出了本发明一个实施例提供的一种嵌入式软件重构装置的结构示意图;
图5示出了本发明另一个实施例提供的一种嵌入式软件重构装置的结构示意图。
具体实施方式
下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
嵌入式软件是部署在嵌入式平台的软件,其为嵌入式平台的正常运行提供了软件基础。该嵌入式软件可以是系统软件也可以是应用软件,本实施例中不做限定。示例性的,系统软件可以是诸如uboot、Linux内核、ramdisk文件系统、FPGA位流文件所对应的系统软件,应用软件可以是为用户提供某种特定功能的软件。本发明实施例提供的嵌入式软件重构方法正是应用于嵌入式平台的方法,以对嵌入式平台中所部署的嵌入式软件进行重构,来弥补嵌入式软件中的一些的漏洞或者改善嵌入式软件中的一些性能,使得嵌入式软件能够进行版本升级。
如图1所示,本发明实施例提供了一种嵌入式软件重构方法,该方法主要包括:
101、获取用于重构嵌入式软件的N个数据包,其中,所述N个数据包是由重构控制客户端基于所述嵌入式软件的重构文件拆分而得,N为大于或等于1的整数。
本实施例中所获取的用于重构嵌入式软件的N数据包,其是由重构控制客户端提供的。该重构控制客户端是用于向嵌入式平台提供嵌入式软件的重构文件的客户端,其能够与嵌入式平台进行交互。重构控制客户端可以是基于PC机的通用软件,且能够支持多个嵌入式平台进行嵌入软件重构的软件。
重构控制客户端所提供的N个数据包,是由重构控制客户端基于嵌入式软件的重构文件拆分而得,N个数据包向嵌入式平台传输的方式,能够实现分段传输,减少每次传输的数据量,提高传输效率。需要说明的是,该重构文件能够弥补嵌入式软件中的一些的漏洞或者改善嵌入式软件中的一些性能,其对应最新版本的嵌入式软件。重构控制客户端在获取嵌入式软件的重构文件之后,需要将其拆分成N个数据包,该拆分方式至少包括如下两种:一种是,按照重构文件的大小,对重构文件进行均匀拆分。另一种是,按照预算大小对重构文件进行拆分,示例性,以1K字节为单位对重构文件进行拆分,当拆分出的最后一个数据包不够1K字节时,可以维持该数据包原有大小,也可以通过特定字符补足该数据包的大小为1K字节。
在重构控制客户端拆分嵌入式软件的重构文件,得到用于重构嵌入式软件的N个数据包之后,通过预设的网络接口将该N个数据包传输给嵌入式平台,以供嵌入式平台对嵌入式软件进行重构。
嵌入式平台为了保证其获取的N个数据包的正确性和完整性,则在获取用于重构嵌入式软件的N个数据包时,每获取一个所述数据包均执行如下步骤一至步骤四:
步骤一、采用所述数据包对应的预设算法生成针对所述数据包的校验数据。
重构控制客户端与嵌入式平台预先约定了数据包的预设算法,该预设算法用于验证数据包是否为完整和合法的数据包。该预设算法的具体类型可以基于业务要求确定,其可以包括但不限于哈希算法。需要说明的是,每一个数据包均有对应的预设算法,各数据包对应的预设算法可以均相同,但是为了提高安全性,N个数据包可以对应至少两种预设算法。
在获取到一个数据包后,为了验证该数据包的正确性和完整性,则需要采用预设算法对该数据包中的数据进行运算,形成该数据包对应的校验数据。采用预设算法对该数据包中的数据进行运算可以是对数据包的全部数据或部分数据进行运算。若是对部分数据进行运算,则重构控制客户端与嵌入式平台需要预先预定该部分数据是哪个部分的数据。
步骤二、确定所生成的校验数据与所述数据包所携带的校验数据是否匹配,其中,所述数据包所携带的校验数据由所述重构控制客户端配置,执行步骤三或步骤四。
重构控制客户端在拆分重构文件得到数据包时,重构控制客户端需要采用数据包对应的预设算法生成该数据包对应的校验数据,并将该校验数据配置到数据包,在数据包提供给嵌入式平台时,该校验数据将携带在数据包中,供嵌入式平台校验数据包。
在校验数据包时,需要确定所生成的校验数据与所述数据包所携带的校验数据是否匹配,并根据确定匹配结果,执行步骤三或步骤四。
步骤三、若不匹配,向所述重构控制客户端发送数据重传请求,以使所述重构控制客户端根据所述数据重传请求重新提供所述数据包。
在确定所生成的校验数据与数据包所携带的校验数据不匹配,则说明该数据被恶意篡改过或其所包括的数据是不完整的,此时,需要向重构控制客户端发送数据重传请求,以使重构控制客户端根据所述数据重传请求重新提供数据包。重构控制客户端在根据数据重传请求重新提供数据包时,为了提高安全性,其提供的数据包对应的预设算法可以与上一次传输时所使用的预设算法不同,且携带的校验数据应与新的预设算法匹配。
进一步的,为了避免无休止的重传操作,则在向重构控制客户端发送数据重传请求之前,需要确定针对所述数据包向所述重构控制客户端发送数据重传请求的累计次数。
当累计次数达到预设次数阈值时,说明该数据包存在无法通过重传就能克服的异常,因此需要停止针对嵌入式软件的重构,以及时排除重构文件或重构控制客户端的异常问题。
当累计次数未达到预设次数阈值时,说明该数据包仍然可能存在通过重传就能克服的异常,故执行向所述重构控制客户端发送数据重传请求,以使所述重构控制客户端根据所述数据重传请求重新提供数据包。
步骤四、若匹配,则向所述重构控制客户端发送数据传输成功应答通知。
在确定所生成的校验数据与数据包所携带的校验数据匹配时,则说明该数据包未被恶意篡改过,且其所包括的数据是完整的,此时,则向所述重构控制客户端发送数据传输成功应答通知,以使该重构控制客户端知晓该数据包已成功被嵌入式平台接收。
在确定所生成的校验数据与数据包所携带的校验数据匹配时,需要将数据包存在特定的存储位置,以在N个数据包都成功获取后,可以从该存储位置读取N个数据包,进行后续的嵌入式软件重构流程。嵌入式平台在存储数据包时,可以采用乒乓方式缓存数据包,不同类型的嵌入式软件的存在特定的存储位置,数据包需要存储在其对应的存储位置。
需要特别说明的是,若N个数据包按照特定顺序发送给嵌入式平台,其中,该特定顺序能够使N个数据包组成完整的重构文件,则N个数据包中最后一个数据包对应的数据传输成功应答通知需要携带有特殊标识,该标识可以使重构控制客户端知晓所有的数据包均被嵌入式平台成功获取。
102、检验所述N个数据包是否能够构成完整的所述重构文件,执行103或105。
在获取到用于重构嵌入式软件的N个数据包后,需要检验所述N个数据包是否能够构成完整的所述重构文件,以确定利用该N个数据包是否能够完成针对嵌入式软件的重构。该检验所述N个数据包是否能够构成完整的所述重构文件的过程具体包括如下步骤一至步骤四:
步骤一、采用所述重构文件对应的预设算法对所述N个数据包进行运算,生成针对所述重构文件的校验数据。
重构控制客户端与嵌入式平台预先约定了重构文件的预设算法,该预设算法用于验证N个数据包是否能够构成完整的重构文件。该预设算法的具体类型可以基于业务要求确定,其可以包括但不限于哈希算法。
在获取N个数据包后,需要采用预设算法对该N个数据包中的数据进行运算,形成针对重构文件的校验数据。采用预设算法对N个数据包中的数据进行运算,可以是对N个数据包的全部数据或部分数据进行运算,若是对部分数据进行运算,则重构控制客户端与嵌入式平台需要预先预定该部分数据是哪个部分的数据。
步骤二、确定所生成的校验数据与特定数据包所携带的校验数据是否匹配,其中,所述特定数据包为所述N个数据包中一个数据包,其携带的校验数据由所述重构控制客户端配置,执行步骤三或步骤四。
重构控制客户端在拆分重构文件得到数据包时,重构控制客户端需要采用重构文件对应的预设算法生成针对重构文件对应的校验数据,并将该校验数据配置到N个数据包中的一个数据包中,该数据包可以由重构控制客户端确定,比如,该数据包N个数据包中排序位于最后的一个数据包。在该数据包提供给嵌入式平台时,该校验数据将携带在数据包中,供嵌入式平台校验N个数据包是否能够构成完整的重构文件。
步骤三、若匹配,检验出所述N个数据包能够构成完整的所述重构文件。
在确定所生成的校验数据与特定数据包所携带的校验数据匹配时,则说明该N个数据包未被恶意篡改过,且其所包括的数据是完整的,此时,则说明该N个数据包能够构成完整的重构文件,能够根据该重构文件对嵌入式软件进行重构。
步骤四、若不匹配,停止针对嵌入式软件的重构。
在确定所生产的校验数据与特定数据包所携带的校验数据不匹配时,则说明N个数据包存在被恶意篡改过或所包括的数据是不完整的数据包,此时,说明该N个数据包不能构成完整的重构文件,不能完成嵌入式软件的重构,则停止针对嵌入式软件的重构,并可发出停止重构的提醒,以使业务人员根据提醒进行异常处理。
103、若检验出所述N个数据包能够构成完整的所述重构文件,基于所述嵌入式软件的类型,确定所述嵌入式软件对应的写入区域。
在嵌入式平台中不仅部署有一种嵌入式软件,其可能同时部署有不同类型的嵌入式软件,为了管理不同类型的嵌入式软件,则不同类型的嵌入式软件在嵌入式系统中具有其各自的写入区域。因此,在校验出N个数据包能够构成完整的重构文件之后,需要确定与重构文件对应的嵌入式软件的类型,并根据嵌入式软件类型,确定嵌入式软件对应的写入区域,以在该写入区域对嵌入式软件进行重构。
104、在所述写入区域通过所述N个数据包重构所述嵌入式软件,并结束当前流程。
在写入区域通过N个数据包重构所述嵌入式软件的具体过程包括如下步骤一和步骤二:
步骤一、擦除所述写入区域中原有的嵌入式软件。
由于是对嵌入式软件的重构,为了避免该嵌入式软件的原有版本对重构文件对应的重构版本产生影响,则在重构时,需要将写入区域中原有的嵌入式软件擦除。
步骤二、在擦除操作后的写入区域中,基于所述N个数据包进行编程操作,将所述N个数据包对应的重构文件写入至所述写入区域。
擦除操作后的写入区域中将不再包含原有的嵌入式软件,此时在擦除操作后的写入区域中,基于N个数据包进行编程操作。该基于N个数据包进行编程操作过程实际上是根据N个数据包恢复出重构文件,然后按照重构文件的编程逻辑,将重构文件对应的重构版本编程到写入区域,从而在写入区域完成对嵌入式软件的重构。
进一步的,为了保证重构后的嵌入式软件能够正常运行,则在擦除操作后的写入区域中,基于所述N个数据包进行编程操作,将所述N个数据包对应的重构文件写入至所述写入区域之后,需要执行步骤三至步骤七:
步骤三、读取所述写入区域内写入的数据。
在将N个数据包对应的重构文件写入至写入区域后,该写入区域中数据应包括有重构文件对应的全部数据,因此为了验证重构后的嵌入式软件是否能够正常运行,需要读取写入区域内写入的数据。
步骤四、采用特定算法对所读取的数据进行运算,生成针对所述所读取数据的校验数据。
重构控制客户端与嵌入式平台预先约定了重构文件的特定算法,该预设算法用于验证写入区域内写入的数据是否能够构成完整的重构文件。该预设算法的具体类型可以基于业务要求确定,其可以包括但不限于哈希算法。
步骤五、确定所生成的校验数据与特定数据包所携带的校验数据是否匹配,其中,所述特定数据包为所述N个数据包中一个数据包,其携带的校验数据由所述重构控制客户端配置。
重构控制客户端在拆分重构文件得到数据包时,重构控制客户端需要采用重构文件对应的特定算法生成针对重构文件对应的校验数据,并将该校验数据配置到N个数据包中的一个数据包中,该数据包可以由重构控制客户端确定,比如,该数据包N个数据包中排序位于最后的一个数据包。在该数据包提供给嵌入式平台时,该校验数据将携带在数据包中,供嵌入式平台校验写入区域内写入的数据是否能够构成完整的重构文件。
步骤六、若匹配,发出所述嵌入式软件重构完成的提醒。
在确定所生成的校验数据与特定数据包所携带的校验数据匹配时,则说明重构文件已被完整的写入至写入区域,此时,则说明已经完成了针对嵌入式软件的重构,则发出嵌入式软件重构完成的提醒,以通知用户嵌入式软件重构完整。
步骤七、若不匹配,发出所述嵌入式软件重构失败的提醒。
在确定所生成的校验数据与特定数据包所携带的校验数据不匹配时,则说明重构文件未被完整的写入至写入区域,此时,则说明未完成针对嵌入式软件的重构,该重构后的嵌入式软件存在异常,则发出嵌入式软件重构失败的提醒,以通知用户嵌入式软件重构异常。
105、若检验出所述N个数据包不能构成完整的所述重构文件,停止重构嵌入式软件。
若检验出所述N个数据包不能构成完整的所述重构文件,则说明N个数据包存在被恶意篡改过或所包括的数据是不完整的数据包,此时,说明该N个数据包不能构成完整的重构文件,不能完成嵌入式软件的重构,则停止针对嵌入式软件的重构,并可发出停止重构的提醒,以使业务人员根据提醒进行异常处理。
本发明实施例提供的嵌入式软件重构方法,获取用于重构嵌入式软件的N个数据包,该N个数据包是由重构控制客户端基于嵌入式软件的重构文件拆分而得。然后在检验出该N个数据包能够构成完整的所述重构文件,基于嵌入式软件的类型,确定嵌入式软件对应的写入区域,并在写入区域通过N个数据包重构嵌入式软件。可见,本发明实施例提供的方案在进行嵌入式软件重构时,无需人工手工介入,在获取到重构控制客户端发送的用于重构嵌入式软件的N个数据包后,便可在嵌入式软件对应的写入区域完成嵌入式软件的重构,因此能够实现嵌入式软件的自动重构,提高嵌入式软件的重构效率。
进一步的,根据图1所示的方法,本发明的另一个实施例还提供了一种嵌入式软件重构方法,如图2所示,所述方法主要包括:
201、获取用于重构嵌入式软件的N个数据包,其中,所述N个数据包是由重构控制客户端基于所述嵌入式软件的重构文件拆分而得,N为大于或等于1的整数。
202、检验所述N个数据包是否能够构成完整的所述重构文件,执行203或207。
203、若检验出所述N个数据包能够构成完整的所述重构文件,基于所述嵌入式软件的类型,确定所述嵌入式软件对应的写入区域。
204、在所述写入区域通过所述N个数据包重构所述嵌入式软件。
205、运行重构后的嵌入式软件。
在写入区域通过N个数据包重构嵌入式软件后,为了验证该重构后的嵌入式软件是否能够运行,则需要运行重构后的嵌入式软件。
该运行重构后的嵌入式软件可以在嵌入式平台断电再次加电时进行,当再次加电时,将直接运行重构后的嵌入式软件,以保证运行的嵌入式软件为最新版本的嵌入式软件。
206、当重构后的嵌入式软件运行失败后,加载所述嵌入式软件对应的固化版本软件,并结束当前流程。
当重构后的嵌入式软件运行失败后,说明该重构后的嵌入式软件存在异常,此时为了保证嵌入式平台能够正常进入工作状态,则需要加载嵌入式软件对应的固化版本软件,以该固化版本软件运行。
固化版本软件是预先存储的能够成功运行的嵌入式软件。该固化版本软件的设置存在是为了保证固化版本软件的运行稳定,该固化版本软件由业务人员设定,该固化版本软件是能够稳定且成功运行的嵌入式软件。
207、若检验出所述N个数据包不能构成完整的所述重构文件,停止重构嵌入式软件。
进一步的,根据图1所示的方法,本发明的另一个实施例还提供了一种嵌入式软件重构方法,如图3所示,所述方法主要包括:
301、获取用于重构嵌入式软件的N个数据包,其中,所述N个数据包是由重构控制客户端基于所述嵌入式软件的重构文件拆分而得,N为大于或等于1的整数。
302、检验所述N个数据包是否能够构成完整的所述重构文件,执行303或307。
303、若检验出所述N个数据包能够构成完整的所述重构文件,基于所述嵌入式软件的类型,确定所述嵌入式软件对应的写入区域。
304、在所述写入区域通过所述N个数据包重构所述嵌入式软件。
305、为重构后的嵌入式软件设定版本加载值,其中,所述重构后的嵌入式软件的版本加载值与固化版本软件的版本加载值不同。
为了能够使用户能够根据自身的需求灵活启用其所需求版本的嵌入式软件,则在写入区域通过所述N个数据包重构嵌入式软件之后,需要为重构后的嵌入式软件设定版本加载值,用户可以根据该版本加载值启动其所需求版本的嵌入式软件。
需要说明的是,为了保证嵌入式平台能够正常运行,则嵌入式平台设置有固化版本软件,该固化版本软件是预先存储的能够成功运行的嵌入式软件,且能够成功运行的嵌入式软件的版本低于重构后的嵌入式软件。
需要说明的是,每一个版本的嵌入式软件具有的版本加载值都具有唯一性,且版本加载值的具体型式可以基于业务需求确定,本发明实施例不做具体限定。
306、当接收到用户输入的版本加载值时,运行与所接收到的版本加载值相应的软件。
用户可以基于版本加载值启用其所需求版本的嵌入式软件,当接收到用户输入的版本加载值时,运行与所接收到的版本加载值相应的软件。
示例性的,若用户输入的版本加载值为重构后的嵌入式软件,则启动重构后的嵌入式软件。若该重构后的嵌入式软件运行异常时,则自动启动固化版本软件,以保证嵌入式平台的正常运行。
307、若检验出所述N个数据包不能构成完整的所述重构文件,停止重构嵌入式软件。
进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种嵌入式软件重构装置,如图4所示,所述装置包括:
获取单元41,用于获取用于重构嵌入式软件的N个数据包,其中,所述N个数据包是由重构控制客户端基于所述嵌入式软件的重构文件拆分而得,N为大于或等于1的整数;
检验单元42,用于检验所述N个数据包是否能够构成完整的所述重构文件;
确定单元43,用于若检验出所述N个数据包能够构成完整的所述重构文件,基于所述嵌入式软件的类型,确定所述嵌入式软件对应的写入区域;
重构单元44,用于在所述写入区域通过所述N个数据包重构所述嵌入式软件。
本发明实施例提供的嵌入式软件重构装置,获取用于重构嵌入式软件的N个数据包,该N个数据包是由重构控制客户端基于嵌入式软件的重构文件拆分而得。然后在检验出该N个数据包能够构成完整的所述重构文件,基于嵌入式软件的类型,确定嵌入式软件对应的写入区域,并在写入区域通过N个数据包重构嵌入式软件。可见,本发明实施例提供的方案在进行嵌入式软件重构时,无需人工手工介入,在获取到重构控制客户端发送的用于重构嵌入式软件的N个数据包后,便可在嵌入式软件对应的写入区域完成嵌入式软件的重构,因此能够实现嵌入式软件的自动重构,提高嵌入式软件的重构效率。
可选的,如图5所示,所述装置还包括:
第一运行单元45,用于在所述重构单元44在所述写入区域通过所述N个数据包重构所述嵌入式软件之后,运行重构后的嵌入式软件;
加载单元46,用于当重构后的嵌入式软件运行失败后,加载所述嵌入式软件对应的固化版本软件,其中,所述固化版本软件是预先存储的能够成功运行的嵌入式软件。
可选的,如图5所示,所述装置还包括:
设定单元47,用于为重构后的嵌入式软件设定版本加载值,其中,所述重构后的嵌入式软件的版本加载值与固化版本软件的版本加载值不同;
第二运行单元48,用于当接收到用户输入的版本加载值时,运行与所接收到的版本加载值相应的软件。
可选的,如图5所示,获取单元41,具有用于每获取一个所述数据包均执行:采用所述数据包对应的预设算法生成针对所述数据包的校验数据;确定所生成的校验数据与所述数据包所携带的校验数据是否匹配,其中,所述数据包所携带的校验数据由所述重构控制客户端配置;若不匹配,向所述重构控制客户端发送数据重传请求,以使所述重构控制客户端根据所述数据重传请求重新提供所述数据包;若匹配,则向所述重构控制客户端发送数据传输成功应答通知。
可选的,如图5所示,所述装置还包括:
处理单元49,用于确定所述获取单元41针对所述数据包向所述重构控制客户端发送数据重传请求的累计次数;当累计次数达到预设次数阈值时,停止针对嵌入式软件的重构;当累计次数未达到预设次数阈值时,触发所述获取单元41执行向所述重构控制客户端发送数据重传请求。
可选的,如图5所示,检验单元42,用于采用所述重构文件对应的预设算法对所述N个数据包进行运算,生成针对所述重构文件的校验数据;确定所生产的校验数据与特定数据包所携带的校验数据是否匹配,其中,所述特定数据包为所述N个数据包中一个数据包,其携带的校验数据由所述重构控制客户端配置;若匹配,检验出所述N个数据包能够构成完整的所述重构文件。
可选的,如图5所示,重构单元44包括:
擦除模块441,用于擦除所述写入区域中原有的嵌入式软件;
写入模块442,用于在擦除操作后的写入区域中,基于所述N个数据包进行编程操作,将所述N个数据包对应的重构文件写入至所述写入区域,之后读取所述写入区域内写入的数据;
校验模块443,用于采用特定算法对所读取的数据进行运算,生成针对所述所读取数据的校验数据;确定所生成的校验数据与特定数据包所携带的校验数据是否匹配,其中,所述特定数据包为所述N个数据包中一个数据包,其携带的校验数据由所述重构控制客户端配置;若匹配,发出所述嵌入式软件重构完成的提醒。
本发明实施例提供的嵌入式软件重构装置中,各个功能模块运行过程中所采用的方法详解可以参见图1至图3方法实施例的对应方法详解,在此不再赘述。
进一步的,依据上述实施例,本发明的另一个实施例还提供了一种计算机可读存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行图1至图3中任一所述的嵌入式软件重构方法。
进一步的,依据上述实施例,本发明的另一个实施例还提供了一种存储管理设备,所述存储管理设备包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于运行所述程序以执行图1至图3中任一所述的嵌入式软件重构方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的深度神经网络模型的运行方法、装置及框架中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种嵌入式软件重构方法,其特征在于,所述方法包括:
获取用于重构嵌入式软件的N个数据包,其中,所述N个数据包是由重构控制客户端基于所述嵌入式软件的重构文件拆分而得,N为大于或等于1的整数;
检验所述N个数据包是否能够构成完整的所述重构文件;
若检验出所述N个数据包能够构成完整的所述重构文件,基于所述嵌入式软件的类型,确定所述嵌入式软件对应的写入区域;
在所述写入区域通过所述N个数据包重构所述嵌入式软件。
2.根据权利要求1所述的方法,其特征在于,在所述写入区域通过所述N个数据包重构所述嵌入式软件之后,所述方法还包括:
运行重构后的嵌入式软件;
当重构后的嵌入式软件运行失败后,加载所述嵌入式软件对应的固化版本软件,其中,所述固化版本软件是预先存储的能够成功运行的嵌入式软件。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
为重构后的嵌入式软件设定版本加载值,其中,所述重构后的嵌入式软件的版本加载值与固化版本软件的版本加载值不同;
当接收到用户输入的版本加载值时,运行与所接收到的版本加载值相应的软件。
4.根据权利要求1所述的方法,其特征在于,获取用于重构嵌入式软件的N个数据包,包括:
每获取一个所述数据包均执行:采用所述数据包对应的预设算法生成针对所述数据包的校验数据;确定所生成的校验数据与所述数据包所携带的校验数据是否匹配,其中,所述数据包所携带的校验数据由所述重构控制客户端配置;若不匹配,向所述重构控制客户端发送数据重传请求,以使所述重构控制客户端根据所述数据重传请求重新提供所述数据包;若匹配,则向所述重构控制客户端发送数据传输成功应答通知。
5.根据权利要求4所述的方法,其特征在于,在向所述重构控制客户端发送数据重传请求之前,所述方法还包括:
确定针对所述数据包向所述重构控制客户端发送数据重传请求的累计次数;
当累计次数达到预设次数阈值时,停止针对所述嵌入式软件的重构;
当累计次数未达到预设次数阈值时,执行向所述重构控制客户端发送数据重传请求。
6.根据权利要求1所述的方法,其特征在于,检验所述N个数据包是否能够构成完整的所述重构文件,包括:
采用所述重构文件对应的预设算法对所述N个数据包进行运算,生成针对所述重构文件的校验数据;
确定所生成的校验数据与特定数据包所携带的校验数据是否匹配,其中,所述特定数据包为所述N个数据包中一个数据包,其携带的校验数据由所述重构控制客户端配置;
若匹配,检验出所述N个数据包能够构成完整的所述重构文件。
7.根据权利要求1所述的方法,其特征在于,在所述写入区域通过所述N个数据包重构所述嵌入式软件,包括:
擦除所述写入区域中原有的嵌入式软件;
在擦除操作后的写入区域中,基于所述N个数据包进行编程操作,将所述N个数据包对应的重构文件写入至所述写入区域,之后读取所述写入区域内写入的数据;
采用特定算法对所读取的数据进行运算,生成针对所述所读取数据的校验数据;
确定所生成的校验数据与特定数据包所携带的校验数据是否匹配,其中,所述特定数据包为所述N个数据包中一个数据包,其携带的校验数据由所述重构控制客户端配置;
若匹配,发出所述嵌入式软件重构完成的提醒。
8.一种嵌入式软件重构装置,其特征在于,所述装置包括:
获取单元,用于获取用于重构嵌入式软件的N个数据包,其中,所述N个数据包是由重构控制客户端基于所述嵌入式软件的重构文件拆分而得,N为大于或等于1的整数;
检验单元,用于检验所述N个数据包是否能够构成完整的所述重构文件;
确定单元,用于若检验出所述N个数据包能够构成完整的所述重构文件,基于所述嵌入式软件的类型,确定所述嵌入式软件对应的写入区域;
重构单元,用于在所述写入区域通过所述N个数据包重构所述嵌入式软件。
9.一种计算机可读存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求7中任意一项所述的嵌入式软件重构方法。
10.一种存储管理设备,其特征在于,所述存储管理设备包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于运行所述程序以执行权利要求1至权利要求7中任意一项所述的嵌入式软件重构方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110154885.0A CN114860308A (zh) | 2021-02-04 | 2021-02-04 | 一种嵌入式软件重构方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110154885.0A CN114860308A (zh) | 2021-02-04 | 2021-02-04 | 一种嵌入式软件重构方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860308A true CN114860308A (zh) | 2022-08-05 |
Family
ID=82623459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110154885.0A Pending CN114860308A (zh) | 2021-02-04 | 2021-02-04 | 一种嵌入式软件重构方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860308A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084434A1 (en) * | 2001-07-16 | 2003-05-01 | Yuqing Ren | Embedded software update system |
CN101807155A (zh) * | 2010-03-03 | 2010-08-18 | 京信通信系统(中国)有限公司 | 一种嵌入式软件在线更新方法 |
CN101833536A (zh) * | 2010-04-16 | 2010-09-15 | 北京航空航天大学 | 一种冗余仲裁机制的可重构星载计算机 |
CN110780933A (zh) * | 2019-10-23 | 2020-02-11 | 中国电子科技集团公司第五十四研究所 | 一种支持在轨软件重构功能的星载多版本引导设备 |
-
2021
- 2021-02-04 CN CN202110154885.0A patent/CN114860308A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084434A1 (en) * | 2001-07-16 | 2003-05-01 | Yuqing Ren | Embedded software update system |
CN101807155A (zh) * | 2010-03-03 | 2010-08-18 | 京信通信系统(中国)有限公司 | 一种嵌入式软件在线更新方法 |
CN101833536A (zh) * | 2010-04-16 | 2010-09-15 | 北京航空航天大学 | 一种冗余仲裁机制的可重构星载计算机 |
CN110780933A (zh) * | 2019-10-23 | 2020-02-11 | 中国电子科技集团公司第五十四研究所 | 一种支持在轨软件重构功能的星载多版本引导设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109409096B (zh) | 内核漏洞修复方法、装置、服务器及系统 | |
JP6297715B2 (ja) | コンピューティングデバイスの初期化トレース | |
US20150100829A1 (en) | Method and system for selecting and executing test scripts | |
CN109587331B (zh) | 云手机故障自动修复的方法与系统 | |
US9384020B2 (en) | Domain scripting language framework for service and system integration | |
CN112395039B (zh) | 一种Kubernetes集群的管理方法和装置 | |
CN110930131A (zh) | 一种车辆维修方法、装置、设备及介质 | |
CN109062598A (zh) | 一种安全的ota升级方法及系统 | |
US20140208169A1 (en) | Domain scripting language framework for service and system integration | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
CN112882734B (zh) | 升级方法及装置、计算机设备和介质 | |
CN106815051A (zh) | 一种嵌入式设备的固件升级方法、装置及验钞器 | |
CN111258591A (zh) | 程序部署任务执行方法、装置、计算机设备和存储介质 | |
CN105677409B (zh) | 一种系统升级方法及装置 | |
CN111158945B (zh) | 内核故障处理方法、装置、网络安全设备和可读存储介质 | |
US8949588B1 (en) | Mobile telephone as bootstrap device | |
CN110727575B (zh) | 一种信息处理方法、系统、装置、以及存储介质 | |
CN114237754A (zh) | 一种数据加载方法、装置、电子设备以及存储介质 | |
CN112181433A (zh) | 拟态多模混合执行体的编译、运行和管理方法及系统 | |
KR101252358B1 (ko) | Plc 명령어 테스트 장치 및 방법 | |
CN114860308A (zh) | 一种嵌入式软件重构方法及装置 | |
CN116383021A (zh) | 软件包性能的测试方法、系统、计算设备及可读存储介质 | |
CN115840691A (zh) | 远程修复崩溃进程 | |
CN107506271A (zh) | 一种测试方法及装置 | |
CN114003250A (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 |