[发明专利]嵌入式系统的错误追踪方法和装置有效
申请号: | 200910083194.5 | 申请日: | 2009-05-05 |
公开(公告)号: | CN101539883A | 公开(公告)日: | 2009-09-23 |
发明(设计)人: | 刘小树;傅一帆;张冰波;刘跃;刘谦;王衍 | 申请(专利权)人: | 北京和利时系统工程有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 龙 洪;霍育栋 |
地址: | 100096北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 系统 错误 追踪 方法 装置 | ||
技术领域
本发明涉及嵌入式系统,尤其涉及一种嵌入式系统的错误追踪方法和装 置。
背景技术
在工业控制领域,随着我国经济的快速发展,电力、化工、能源以及其 它领域自动化应用的深入,除了对自动化控制系统的性能、功能的要求外, 对嵌入式软件系统的可靠性提出了更加严格的要求,工业控制系统实施的现 场或者在系统的研发阶段,应用程序运行过程中由于设计缺陷,会出现很多 错误异常,导致系统死机和复位。
在目前已有的嵌入式软件系统中,当系统发生错误宕机时,能够保存现 场信息,找到造成系统错误宕机的指令的地址,以供查询和恢复;但是,有 些情况下,造成系统宕机的那一条指令本身并没有错误,其错误的根源在于 与该指令相关的、之前执行的其它指令;而当指令代码较多,存在多层调用 和多路分支时,要寻找错误根源将成为一项复杂且耗时颇多的工作,这样在 系统宕机后,就不能有效和及时的对系统进行调试和恢复,这就对系统稳定 性和造成了比较大的影响。
发明内容
本发明要解决的技术问题是提供一种嵌入式系统的错误追踪方法和装 置,在系统发生异常时,能快速定位与错误有关的指令和函数。
为了解决上述问题,本发明提供了一种嵌入式系统的错误追踪方法,包 括:
在系统发生异常时,保存处理器运行环境,根据帧指针找到当前运行的 函数的栈帧;
反复进行下列步骤,直到回溯出系统发生异常时运行的整个函数调用关 系链:
从找到的栈帧中获取该栈帧所属函数开始执行时保存的寄存器信息,和 函数参数信息,及该函数代码的起始地址,以及进一步地获得函数的名称, 并且得到调用该函数的函数的栈帧底;通过所述栈帧底找到该调用该函数的 函数的栈帧。
所述的方法具体包括以下步骤:
A、在系统发生异常时,处理器根据不同的异常类型,跳转到相应的异 常处理流程,保存导致发生异常的处理器运行环境,包括程序计数器、栈指 针、帧指针和通用寄存器的内容;
B、当发生数据访问中止异常时,获取失效访问存储器的状态和类型,和 引起存储访问失效的存储访问的地址;
发生其它异常时则获取指令出错的地址;
C、从发生异常时帧指针所指的内存位置找到当前运行函数的栈帧;
D、从所找到的栈帧中获取该栈帧所属函数开始执行时保存的寄存器信 息,取出该函数执行函数体代码之前保存的函数参数信息,及该函数代码的 起始地址;从该函数的代码区中取得该函数的名称;
E、判断是否存在调用该函数的函数,如果存在,则从所找到的栈帧中得 到该函数的返回地址,和该调用该函数的函数的栈帧的栈帧底,找到该调用 该函数的函数的栈帧,返回步骤D;否则结束。
进一步地,所述步骤E中,判断是否存在调用该函数的函数是指:
如果所找到的栈帧中,用于保存该调用该函数的函数的栈帧底的位置保 存的值为0,则表示不存在调用该函数的函数,否则表示存在。
进一步地,步骤E中:
从该函数的栈帧底的回溯结构信息中找到所述该函数的返回地址和该调 用该函数的函数的栈帧底。
进一步地,步骤A前还包括步骤:
通过处理器的存储管理单元设置好各内存区间的读写访问属性,使得应 用程序对不同的内存区域有不同的访问权限。
本发明还提供了一种嵌入式系统的错误追踪装置,包括:
异常处理单元,用于在系统发生异常时,获取并保存处理器运行环境;
栈帧回溯单元,用于根据系统发生异常时的帧指针找到当前运行的函数 的栈帧;然后反复进行下列步骤,直到回溯出系统发生异常时运行的整个函 数调用关系链:从找到的栈帧中获取该栈帧所属函数开始执行时保存的寄存 器信息,和函数参数信息,及该函数代码的起始地址,以及进一步地获得函 数的名称,并且得到调用该函数的函数的栈帧底;通过所述栈帧底找到该调 用该函数的函数的栈帧;
输出单元,用于将所述异常处理单元保存的处理器运行环境,和所述栈 帧回溯单元回溯出的函数调用关系链。
所述异常处理单元具体包括:
现场保存模块,用于在系统发生异常时,获取并保存导致发生异常的处 理器运行环境,包括程序计数器、栈指针、帧指针和通用寄存器的内容;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京和利时系统工程有限公司,未经北京和利时系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910083194.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信号线布设系统及方法
- 下一篇:用于富媒体交互展示的软件视频墙方法