Interval Analysis of Microcontroller Code using Abstract Interpretation of Hardware and Software
Static analysis is often performed on source code where intervals { possibly the most widely used numeric abstract domain { have successfully been used as a program abstraction for decades. Binary code on microcontroller platforms, however, is different from high-level code in that data is frequently altered using bitwise operations and the results of operations often depend on the hardware configuration. We describe a method that combines wordand bit-level interval analysis and integrates a hardware model by means of abstract interpretation in order to handle these peculiarities. Moreover, we show that this method proves powerful enough to derive invariants that could so far only be verified using computationally more expensive techniques such as model checking.
Jörg Brauer and Thomas Noll