Fundamentals of Embedded Software with the ARM Cortex-M3