摘要
针对常见的星载软件堆栈溢出问题,提出了一种应用错误监测与纠正(EDAC)容错技术的堆栈溢出实时检测方法。以采用BM3803处理器的星载软件为例,通过处理器提供的内存造错和EDAC机制,对软件堆栈设置雷区和隔离区,通过陷阱程序感知堆栈生长过程,记录堆栈使用深度,并实时检测堆栈溢出。对核心模块的性能测试及堆栈检测实例验证表明:该方法实现简单,对软件性能几乎没有影响,使软件可以在线实时检测堆栈使用深度。软件在堆栈溢出时仍能自主可控,避免"跑飞"崩溃,大大提高其可靠性。
A real-time detection method of stack overflow based on EDAC fault-tolerant technology is proposed to solve the problem of stack overflow of on-board software.Taking on-board software adopted BM3803 processor as an example,by using the RAM error making and EDAC protection mechanism provided by the processor,the method sets the minefield and isolation areas in the stack.It can perceive the stack growth process through the trap processing program,and can record the used depth and overflow of the stack.The core module performance test and stack detection instance verification show that the method proposed is simple and has little effect on software performance,and the software can detect the stack used depth in real-time.By using this method,the software is still manageable in case of stack overflow,rather than runaway crash,and the reliability of the software is improved.
作者
张睿
周波
郝维宁
李露铭
乔梁
ZHANG Rui;ZHOU Bo;HAO Weining;LI Luming;QIAO Liang(Beijing Institute of Spacecraft System Engineering? Beijing 100094? China)
出处
《航天器工程》
CSCD
北大核心
2018年第4期104-110,共7页
Spacecraft Engineering
基金
国家重大航天工程
关键词
星载软件
堆栈使用深度
堆栈溢出
EDAC容错技术
on-board software
stack used depth
stack overflow
EDAC fault-tolerant technology