Hardware abstarction layer for ARM MCU