Embedded Systems. Volume 1, Introduction to ARM® CortexTM-M Microcontrollers (Jonathan W. Valvano, 2012)