Embedded Systems: Architecture, Programming and Design (Core Concepts in Electrical Engineering)