Embedded Software Verification Using Symbolic Execution and Uninterpreted Functions
Embedded Software Verification Using Symbolic Execution and Uninterpreted Functions
复制标题
使用符号执行和未解释函数的嵌入式软件验证
DOI:
10.1007/s10766-005-0004-8
复制
发表时间:
2006
影响因子:
1.5
通讯作者:
S. Rajan
中科院分区:
文献类型:
--
作者:
David W. Currie;Xiushan Feng;M. Fujita;Alan J. Hu;Mark Kwan;S. Rajan
Symbolic simulation and uninterpreted functions have long been staple techniques for formal hardware verification. In recent years, we have adapted these techniques for the automatic, formal verification of low-level embedded software—specifically, checking the equivalence of different versions of assembly language programs. Our approach, though limited in scalability, has proven particularly promising for the intricate code optimizations and complex architectures typical of high-performance embedded software, such as for DSPs and VLIW processors. Indeed, one of our key findings was how easy it was to create or retarget our verification tools to different, even very complex, machines. The resulting tools automatically verified or found previously unknown bugs in several small sequences of industrial and published example code. This paper provides an introduction to these techniques and a review of our results.