University of Sussex
Browse

Effective verification for low-level software with competing interrupts

Download (426.67 kB)
journal contribution
posted on 2023-06-09, 07:30 authored by Lihao Liang, Tom Melham, Daniel Kroening, Peter Schrammel, Michael Tautschnig
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested and subject to priorities. Interrupts can arrive at arbitrary times, leading to an exponential blow-up in the number of cases to consider. We present a new formal approach to verifying interrupt-driven software based on symbolic execution. The approach leverages recent advances in the encoding of the execution traces of interacting, concurrent threads. We assess the performance of our method on benchmarks drawn from embedded systems code and device drivers, and experimentally compare it to conventional approaches that use source-to-source transformations. Our results show that our method significantly outperforms these techniques. To the best of our knowledge, our work is the first to demonstrate effective verification of low-level embedded software with nested interrupts.

History

Publication status

  • Published

File Version

  • Accepted version

Journal

ACM Transactions on Embedded Computing Systems

ISSN

1539-9087

Publisher

Association for Computing Machinery

Issue

2

Volume

17

Page range

1-26

Article number

a36

Department affiliated with

  • Informatics Publications

Full text available

  • Yes

Peer reviewed?

  • Yes

Legacy Posted Date

2017-08-02

First Open Access (FOA) Date

2017-12-12

First Compliant Deposit (FCD) Date

2017-08-01

Usage metrics

    University of Sussex (Publications)

    Categories

    No categories selected

    Exports

    RefWorks
    BibTeX
    Ref. manager
    Endnote
    DataCite
    NLM
    DC