Abstract—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 explosion in the number of cases to be considered. 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 formal approaches that use source-to-source transformations. Our experimental results show that our method significantly outperforms conven...
Embedded systems can fail to operate correctly due to interrupt overload: starvation caused by too m...
In the first part of this thesis, we present a case study on successfully verifying the Linux USB BP...
Modern software systems, which often are concurrent and manipulate complex data structures must be ...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
AbstractMost of the research effort towards verification of concurrent software has focused on multi...
Journal ArticleInterrupts are superficially similar to threads, but there are subtle semantic differ...
Embedded control programs are hard to analyse because their behaviour depends on how they interact w...
AbstractThis paper presents an approach to the efficient abstraction of interrupt handling in microc...
Information security is important in academia, industry and government. The use of formal methods in...
When trying to track down bugs using cyclic debugging, the ability to correctly reproduce executions...
The interrupt mechanism in a system-on-chip (SoC) joins the SoCs hardware and software behaviors. We...
A widely-used class of real-time, reactive, embedded systems is called interrupt-driven systems [8]....
In this work we present a verification framework for applications for the embedded system operating ...
International audienceEmbedded software often involves intensive numerical computations and thus can...
Embedded systems can fail to operate correctly due to interrupt overload: starvation caused by too m...
In the first part of this thesis, we present a case study on successfully verifying the Linux USB BP...
Modern software systems, which often are concurrent and manipulate complex data structures must be ...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
AbstractMost of the research effort towards verification of concurrent software has focused on multi...
Journal ArticleInterrupts are superficially similar to threads, but there are subtle semantic differ...
Embedded control programs are hard to analyse because their behaviour depends on how they interact w...
AbstractThis paper presents an approach to the efficient abstraction of interrupt handling in microc...
Information security is important in academia, industry and government. The use of formal methods in...
When trying to track down bugs using cyclic debugging, the ability to correctly reproduce executions...
The interrupt mechanism in a system-on-chip (SoC) joins the SoCs hardware and software behaviors. We...
A widely-used class of real-time, reactive, embedded systems is called interrupt-driven systems [8]....
In this work we present a verification framework for applications for the embedded system operating ...
International audienceEmbedded software often involves intensive numerical computations and thus can...
Embedded systems can fail to operate correctly due to interrupt overload: starvation caused by too m...
In the first part of this thesis, we present a case study on successfully verifying the Linux USB BP...
Modern software systems, which often are concurrent and manipulate complex data structures must be ...