Making embedded systems takes a more disciplined approach to programming than you may be used to, because these systems don't tolerate inefficiency. This easy-to-read book helps you cultivate a host of good development practices, based on classic software design patterns as well as new patterns unique to embedded programming.