HAL layer for libopencm3