Embedded Systems Design: An Introduction to Processes, Tools, and Techniques