发明名称 一种嵌入式系统的错误侦测和修复方法
摘要 本发明涉及一种嵌入式系统的错误侦测和修复方法。目前无线传感器节点的系统无法避免应用程序对系统核心的存储空间做存取的动作,可能会让系统产生不可预期的错误。本发明在SOS系统上以最小的修改系统架构方式,提出了一种可侦测存储器存取错误,并能使用模块替换的方式加以修复的方法,使存储器存取错误产生机会减少,搜集的信息也能更加有效益,在维护系统上更是轻而易举。利用本发明方法不必担心何时该侦测网络上的无线传感器节点是否出错,可能出错的传感器节点会被侦测到并主动修复,不需要有人随时在服务器端守候。
申请公布号 CN101604289A 申请公布日期 2009.12.16
申请号 CN200910100612.7 申请日期 2009.07.10
申请人 杭州电子科技大学 发明人 吴国华;郑秋华;张祯;方美娥
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 杭州求是专利事务所有限公司 代理人 杜 军
主权项 1、一种嵌入式系统的错误侦测和修复方法,包括侦测嵌入式系统错误和修复嵌入式系统错误,其特征在于:侦测嵌入式系统错误的方法包括静态检查和动态检查;所述的静态检查的具体方法是:检查所有静态给定存储空间位址的存储器存储指令,所述的存储器存储指令包括直接调用指令和相对跳跃指令;同一模块内的函数调用采用相对跳跃指令,不同模块内的函数调用采用直接调用指令;直接调用指令和相对跳跃指令格式如下:<tables id="tabl0001" num="0001" ><table><tgroup cols="2"><colspec colname="c001" colwidth="48%"/><colspec colname="c002" colwidth="51%"/><thead><row><entry morerows="1"> Instruction其中一个合法值,则该模块为不合法,不能上传到传感器节点上;如果全部直接调用都是跳跃表里的合法值,则该模块为合法;所述的动态检查的具体方法是:步骤(1).改写模块内容、增加指令,就是把存储空间位址作为参数传进动态检查系统内以备调用;在编译时,如果目的位址无法在给定的指令前插入检查指令,则将欲存取的的存储空间位址设为参数,用来检查该位址的合法性;这些指令包括三形式,分别为间接调用、载入和存储,指令格式如下:<tables id="tabl0002" num="0002" ><table><tgroup cols="2"><colspec colname="c001" colwidth="42%"/><colspec colname="c002" colwidth="58%"/><thead><row><entry morerows="1"> Instruction修改,则在这一段连续存取指令的第一个存取指令前加上两个位址的检查,分别是这个连续存取存储空间位址的开头和结尾,如果确定两个位址的检查均合法,则该段连续的存取都合法;步骤(2).检查调用存储空间位址和检查存储器载入存储过程,当一个调用的位址被传入时,这个函数首先取得该模块的编号,使用系统内原本提供的系统函数;然后依序检查该位址是否是系统调用的进入点、向系统预约的其它模块函数进入点或模块本身内部的跳跃点,如果是系统调用的进入点、向系统预约的其它模块函数进入点或模块本身内部的跳跃点中的任何一个,则存取合法,进行回传;如果不是系统调用的进入点、向系统预约的其它模块函数进入点或模块本身内部的跳跃点中的任何一个,则检查出发生错误;修复嵌入式系统错误的方法具体是:步骤(a).如果侦测出有错,则有错的模块立即停止工作;步骤(b).向服务器发送替换出错模块的请求,服务器收到请求后,检查是否有其它版本,如果有,则将另一版本加载到传感器节点上,用来取代原来模块的工作;如果没有,则传递原来版本再试一次,若再次出错,且没有发现其它版本,则修复无效,服务器留下记录告知使用者。
地址 310018浙江省杭州市江干区下沙高教园区2号大街