Developing software and firmware for ARM-based hardware