发明名称 从嵌入式软件系统中的堆栈损坏故障中恢复
摘要 本发明涉及从嵌入式软件系统中的堆栈损坏故障中恢复,具体地,一种用于从堆栈上溢或堆栈下溢故障中恢复而不重新启动软件或硬件的方法和系统。在应用程序中的每个任务切换运行时,内存堆栈的一部分被拷贝到备用位置,使得堆栈的一部分在它随后在下一个任务的执行期间被堆栈上溢或堆栈下溢故障损坏时可被还原。状态变量数据类似地被拷贝到备用位置,使得它在下一个任务经历故障时可用来还原或估计该任务的输出。公开了用于选择对哪类状态变量数据以及内存堆栈的哪部分进行拷贝以备用的技术、以及用于检测堆栈上溢或堆栈下溢故障和在这种故障情况下还原状态变量和内存数据的技术。
申请公布号 CN103116532B 申请公布日期 2016.01.20
申请号 CN201210462807.8 申请日期 2012.11.16
申请人 通用汽车环球科技运作有限责任公司 发明人 D.达斯
分类号 G06F11/07(2006.01)I 主分类号 G06F11/07(2006.01)I
代理机构 中国专利代理(香港)有限公司 72001 代理人 崔幼平;杨楷
主权项 一种用于从在处理器上运行的软件应用中的堆栈上溢或堆栈下溢故障中恢复的方法,所述方法包括:配置物理内存空间以包括堆栈内存和备用内存位置;在应用程序中的任务切换时,将所述堆栈内存的一部分以及一组状态变量拷贝到所述备用内存位置;确定堆栈上溢或堆栈下溢故障是否在前一个任务的执行期间发生;如果所述堆栈上溢或堆栈下溢故障在所述前一个任务的执行期间发生,则还原对于所述前一个任务的已保存的一组状态变量;如果所述堆栈上溢或堆栈下溢故障在所述前一个任务的执行期间发生,则终止所述前一个任务;如果所述堆栈上溢或堆栈下溢故障在所述前一个任务的执行期间发生,则还原所述堆栈内存的已保存部分;以及开始下一个任务。
地址 美国密执安州