发明名称 一种基于代码相似度保持的嵌入式软件更新方法
摘要 本发明公开了一种基于代码相似度保持的嵌入式软件更新方法,包括:通过新版本代码的地址空间生成位图段,并且,或者以所述位图段中的“1”表示新版本代码中的对应地址的指令包含引用且以位图段中的“0”表示新版本代码中的对应地址的指令不包含引用,或者以所述位图段中的“0”表示新版本代码中的对应地址的指令包含引用且以位图段中的“1”表示新版本代码中的对应地址的指令不包含引用;将新版本代码中所有的引用目标地址生成一个新版本定位表,每个引用目标地址在所述新版本定位表中各有一个唯一的索引,然后将新版本代码中的各个引用目标地址分别替换成该引用目标地址在所述新版本定位表中的对应索引,生成代码段。
申请公布号 CN103777948B 申请公布日期 2017.01.04
申请号 CN201410015803.4 申请日期 2014.01.14
申请人 浙江大学 发明人 董玮;卜佳俊;陈纯;王永刚;莫璧源
分类号 G06F9/44(2006.01)I;G06F9/445(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 陈昱彤
主权项 一种基于代码相似度保持的嵌入式软件更新方法,其特征在于,包括:通过新版本代码的地址空间生成位图段,并且,以所述位图段中的“1”表示新版本代码中的对应地址的指令包含引用且以位图段中的“0”表示新版本代码中的对应地址的指令不包含引用,或者以所述位图段中的“0”表示新版本代码中的对应地址的指令包含引用且以位图段中的“1”表示新版本代码中的对应地址的指令不包含引用;将新版本代码中所有的引用目标地址生成一个新版本定位表,每个引用目标地址在所述新版本定位表中各有一个唯一的索引,然后将新版本代码中的各个引用目标地址分别替换成该引用目标地址在所述新版本定位表中的对应索引,生成代码段;其中,所述“将新版本代码中所有的引用目标地址生成一个新版本定位表”的方法如下:第一步,新建一个空的旧版本代码的定位表作为旧版本定位表,从旧版本代码的起始地址处按照地址递增的方向遍历旧版本代码的每一条指令的地址,判断每一条指令的地址是否是旧版本代码中的一个引用目标地址:如果是,则将相应指令的地址按遍历的先后顺序逐个添加到旧版本定位表中,如果不是,则不添加;第二步,新建一个空的新版本代码的定位表作为所述新版本定位表,然后从新版本代码的起始地址处按照地址递增的方向逐个检查新版本代码的每一条指令的地址是否为新版本代码中的一个引用目标地址:如果新版本代码的被检查的指令的地址是新版本代码中的一个引用目标地址,则判断在旧版本代码中是否存在与所述被检查的指令相同的指令,若存在,则根据该指令在旧版本代码中的地址找到其在旧版本定位表中的索引,然后在新版本定位表的相同索引位置处插入新版本代码的被检查的指令的地址;若不存在,则将新版本代码的被检查的指令的地址插入到新版本定位表的第一个空位置。
地址 310058 浙江省杭州市西湖区余杭塘路866号