[发明专利]设备程序更新方法在审

专利信息
申请号: 201410134219.0 申请日: 2014-04-03
公开(公告)号: CN103885807A 公开(公告)日: 2014-06-25
发明(设计)人: 毛力 申请(专利权)人: 四川九成信息技术有限公司
主分类号: G06F9/445 分类号: G06F9/445
代理公司: 北京天奇智新知识产权代理有限公司 11340 代理人: 杨春
地址: 610041 四川省成*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 设备 程序 更新 方法
【说明书】:

技术领域

发明涉及设备的程序升级和更新,特别涉及一种传感器的远程代码更新方法。

背景技术

在大规模无人值守的传感器网络中,受节点自身资源的限制和周围环境变化的影响,开发者很难在开发阶段全面考虑节点在部署后可能遇到的各种突发情况,因此需要通过远程代码更新对节点进行灵活地配置和升级。随着物联网的发展,作为感知前端的传感器网络会越来越多地担负起局部数据处理工作。这不仅要求节点具有数据采集和发送功能,更需要节点能够根据外部需求变化,主动调整自身功能,动态实现各种算法。

以水质监测传感器网络为例,传感器节点一旦被部署到水域中,一般不会被方便地取出。而其中一些传感器节点频繁发送数据,导致电池能量迅速耗尽,而利用远程代码更新,可以根据节点所处环境,动态地调整节点上的休眠机制和数据保存机制,从而有效地延长节点的生命周期。比如节点受波浪及天气影响较大,特别是阴雨天气,经常发生数据被阻塞的情况。利用远程代码更新可以提前更新路由策略,防止数据阻塞情况的发生。另一方面,通过远程代码更新动态调整传感器的调度策略可以提高监测效率。

较高的更新开销一直困扰着远程代码更新的大规模应用。更新开销主要包括两方面:一方面是节点之间发送和接收更新代码时产生的传输开销;另一方面是节点上重建和存储代码时产生的重编程开销。目前大多数远程代码更新方法主要针对如何降低传输开销,而对如何降低重编程开销则关注较少。以增量式代码更新方法为例,该类方法通过只传输新旧程序的差异代码。该类方法在代码重编程时,通常要对外部flash(由节点板载的扩展flash组成,如TelosB节点默认的扩展flash为STM25P)和嵌入式芯片的内部flash进行读写操作。较高的flash读写功耗导致这类方法的重编程开销超过传输开销。使用低功耗RAM代替高功耗flash存储代码可以有效降低重编程开销,但是由于RAM空间有限,一般不可能将所有需要更新的代码都放入RAM中,只能将一部分需要频繁更新的代码放入。当前可供参考的方案是由开发者在编程阶段指定放入RAM中的代码。这种方法仍然是以简单的传感器节点作为应用对象,没有考虑在物联网中节点可能由于外界应用需求的变化而频繁地调整自身功能,从而改变最初程序中各部分代码更新的频度。

因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。

发明内容

为解决上述现有技术所存在的问题,本发明提出了一种设备的代码更新方法,包括:

在计算差异代码之前,首先确定需要更新的函数;

计算新旧函数之间的差异代码;

通过代码预取区域机制,将需要频繁进行更新的代码保存在RAM中;

调用函数时,先跳转到指令数据混合列表,由指令数据混合列表中的函数调用指令调用函数,

设备接收到函数更新脚本后,如果根据指令数据混合列表确定旧程序中相应的函数已经被保存到代码预取区域中,则将需要更新的旧函数代码与差异代码一起放入函数组装区域进行组合,重建新函数。

优选地,所述确定需要更新的函数的步骤进一步包括:

采用二级比较机制,即通过比对新旧代码的奇偶校验码和MD5码的方式确定需要更新的函数。

优选地,首先对旧程序中的所有函数分别生成奇偶校验码以及MD5码,并对旧程序本身再生成一次奇偶校验码和MD5码,当获得新程序的代码后,首先生成新程序的奇偶校验码。对新旧程序的奇偶校验码进行比较,如果不同,直接开始比较新旧程序中的各个函数;否则计算新程序的MD5码,继续与旧程序的MD5码进行比较,

将新程序中每个函数的奇偶校验码与旧程序中对应函数的奇偶校验码进行比较,如果不同,则确定需要更新的函数;然后对所有奇偶校验码相同的函数分别生成MD5码,继续比较。

优选地,所述计算新旧函数之间的差异代码的步骤进一步包括:

输入新旧程序的汇编文件,计算后输出为汇编语言组成的差异代码文件,所述差异代码文件包括:以函数为单位的新旧程序的差异代码,差异代码距离函数第一条指令的指令偏移数以及需要进行的重编程操作,

所述重编程操作包括:删除操作、插入操作和替换操作,

其中,替换操作直接写入新代码覆盖旧代码,插入操作或删除操作会改变旧函数的大小,当一个函数的更新仅仅涉及替换操作或删除操作时,通过写入无条件跳转指令或者空指令来实现删除操作,并通过直接覆盖原始代码实现替换操作,如果对函数的更新包含了插入操作,则需要对函数进行重建。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川九成信息技术有限公司,未经四川九成信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410134219.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top