Abstract

We improve the static analysis of control flow in programs running on embedded microcontrollers. Our new techniques, called sequencing and triggering analysis, can sometimes determine that the scheduler always runs a collection of tasks in a certain order or that some interrupt handlers are dead or at least cannot fire at certain times. Triggering identifies root causes of indirect control flow through system idioms and programmer annotations. Sequencing propagates the results of triggers through system execution in order to refine our estimate of the program control flow graph. We show that triggering and sequencing improve the effectiveness of static analyses of sensor network applications. Improved static analyses result in better optimizations, increased verification power, and more accurate worst-case-execution time estimations.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call