[发明专利]嵌入式软件运行时故障的在线自检与切片恢复方法及装置有效
申请号: | 201410562454.8 | 申请日: | 2014-10-21 |
公开(公告)号: | CN104298599B | 公开(公告)日: | 2017-09-15 |
发明(设计)人: | 徐军;孙军峰;周庭梁;周宇恒;汪明新;张磊 | 申请(专利权)人: | 卡斯柯信号有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/10 |
代理公司: | 上海科盛知识产权代理有限公司31225 | 代理人: | 赵志远 |
地址: | 200070 上海市闸北区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 软件 运行 故障 在线 自检 切片 恢复 方法 装置 | ||
技术领域
本发明涉及一种提高软件代码段可靠性的技术,尤其是涉及一种嵌入式软件运行时故障的在线自检与切片恢复方法及装置。
背景技术
应用在轨道交通行业中的安全计算机,从外部设备接收数据,并进行逻辑运算处理,在实际应用中主要设计安全应用软件来实现逻辑运算的功能,安全应用软件在运行过程中执行的指令,被存储在安全计算机系统内存的代码段中,安全计算机系统所处的工作环境具有高温、震动剧烈、辐射强等特点,可能出现各种软硬件故障,导致存储在代码段中的数据发生异常,从而使任何运行在内存中的逻辑运算结果出错,最终影响整个系统的安全性和可靠性。
为了保证安全计算机代码段的正确性和可靠性,需要实时的对代码段进行检测,同时,如果发现代码段错误,应该采取一些措施来时安全计算机不会产生错误的输出。目前已有一些提高应用软件代码段可靠性的方法,但这些方法有以下不足:
1、对应用程序本身进行校验,不能动态在线的对代码段进行检测;
2、难以实时地发现因内存系统性故障引起代码段异常;
3、在发现代码段故障后,对系统应用软件功能进行恢复时,往往中断业务的时间比较长,其中恢复业务消耗时间长达秒级甚至分钟级;
4、通过系统自身软件对代码段副本进行一致性比较,来进行代码段检测,运算量大,占用系统资源,实时性不好;
5、自身软件文件损坏后,在现场对嵌入式板卡的设备进行恢复,需要采用专用设备对板卡的Flash进行烧写,操作繁琐,耗时长达秒级甚至分钟级。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种嵌入式软件运行时故障的在线自检与切片恢复方法,解决了应用程序代码段数据出现异常的问题,并且保证了应用程序的可靠性和安全性。
本发明的目的可以通过以下技术方案来实现:
一种嵌入式软件运行时故障的在线自检与切片恢复方法,其特征在于,该方法采用离线与在线相结合的代码运行时故障检测机制,同时提供在线恢复代码段数据,所述的恢复方法具体包括以下步骤:
1)代码段数据离线校验处理阶段;
2)代码段实时检测与在线恢复阶段。
所述的步骤1)代码段数据离线校验处理阶段具体为:
a1)在应用程序的代码编码完成后,放入工作站PC机上进行交叉编译,生成可在嵌入式设备上运行的ELF格式的可执行文件HPM.out;
a2)通过ELF文件离线解析工具OffLineParseElfTool来获取文件HPM.out的解析ELF信息头数据,从中计算段头数据总表的偏移与大小;
a3)OffLineParseElfTool在头数据总表中解析代码段信息头数据,计算代码段在ELF文件中的偏移与大小,然后从对应位置获取代码段数据;
a4)OffLineParseElfTool根据代码段数据和10组冗余码,生成10组离线校验数据;
a5)利用VHDL语言编写校验算法逻辑,并生成相应文件,将相应文件和离线生成的校验数据码数据烧写到CPLD中;
a6)通过ftp工具将可执行应用程序文件HPM.out进行远程下载,或在线烧写到嵌入式设备的板载Flash中。
在线烧写前,备份较老版本的应用程序文件为HPM.old,如果烧写失败,从HPM.old文件恢复,使用老版本应用程序。
所述的步骤2)代码段实时检测与在线恢复阶段具体为:
b1)嵌入式设备上电后,初始化硬件设备,并对CPLD模块进行初始化,如果初始化成功继续步骤b2),否则执行步骤b11);
b2)嵌入式设备的操作系统开始初始化,挂载Flash文件系统,并且创建系统初始化任务InitTask,如果初始化成功继续步骤b3),否则执行步骤b11);
b3)初始化任务InitTask从Flash文件系统的加载可执行文件HPM.out,加载到指定的内存区域;InitTask创建恢复任务RecoverTask、主处理任务MainTask和网络任务NetTask,并挂起恢复任务RecoverTask;InitTask获取对应代码段在内存区域中地址和大小,然后并从中解析出代码段数据,并通过CPLD根据冗余码来生成校验码,与离线生成的校验码比较,如果校验通过继续步骤b4),否则执行步骤b11);
b4)MainTask对嵌入式设备的系统数据进行逻辑处理,并执行步骤b5);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于卡斯柯信号有限公司,未经卡斯柯信号有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410562454.8/2.html,转载请声明来源钻瓜专利网。