Interested in developing embedded systems? Since they don't tolerate inefficiency, these systems require a disciplined approach to programming. This accessible guide helps you cultivate good development practices based on classic software design patterns and new patterns unique to embedded programming.
Written by an expert who has created systems ranging from DNA scanners to children's toys, this book is ideal for intermediate and experienced programmers, no matter what platform you use. This expanded second edition includes new chapters on IoT and networked sensors, motors and movement, debugging, data handling strategies, and more.
In this book, you'll learn how to optimize your system to reduce cost and increase performance; develop an architecture that makes your software robust in resource-constrained environments; explore sensors, displays, motors, and other I/O devices; and reduce RAM and power consumption, code space, and processor cycles. The book also covers interpreting schematics, datasheets, and power requirements; implementing complex mathematics and machine learning on small processors; and designing effective embedded systems for IoT and networked sensors.