When the first Arm Cortex-M3 devices came to market in 2004, it quickly became clear that a vendor-independent hardware abstraction layer was required to simplify software re-use and to reduce the learning curve for new software developers. The introduction…