Fundamentals Of Embedded Software With The Arm Cortex-m3 by Daniel W. Lewis