Data Race Detection in Interrupt-driven Programs
Interrupt-driven programs are widely deployed in safety-critical embedded systems to perform hardware and resource dependent data operation tasks. The frequent uses of interrupts in these systems can cause data races due to interactions between application tasks and interrupt handlers.
We develop an automated framework that helps in detecting and fixing data races in interrupt-driven embedded software. It uses a combination of static analysis, symbolic execution and dynamic simulation to synthesize the failure-inducing data input and interrupt interleaving schedule.