Embedded systems have never been more important. With the growth of trends such as Arduino, the “internet of things”, and inexpensive wireless connectivity, even seemingly simple devices can process data and communicate with the outside world.
Whether you are looking to gain a basic knowledge of circuits and electrical engineering or build on an established career, it’s important to learn from the right resources. The following books have been selected by the EngBlaze editorial team as some of the best guides to embedded systems development. These are only a taste of what’s available, but they provide a good introduction for various skill levels and backgrounds.
Philip J. Koopman
Most people we talk to about embedded resources say that if you were to get one book that covers embedded systems at a high level, this should be it. Look at some of the reviews on Amazon:
I have been programming embedded systems for more than 30 years — and this is by far the best reference yet on the background issues around embedded development.
I was shopping for a good book on embedded development when I came across this book. I read the reviews and thought “there’s no way for a book to be as good as all these people said.” I was wrong. It really is that good.
They go on. Better Embedded Systems Software is concise, easily understood, and breaks down a huge amount of embedded engineering issues into 29 individual lessons that build upon each other. It starts with process and requirements development, which cover the issues you need to be aware of before you even touch an IDE or EDA package. In the latter portions, Koopman moves into architecture, implementation, and validation. The material was published in 2010 so it’s fairly recent, and stays away from a lot of platform or language dependency, which helps to maintain its relevancy. We’ve seen a lot of street cred surrounding this book; check it out and see for yourself.
Get more info here: Better Embedded System Software
Test-driven development (TDD) is all the rage these days, used as part of various project methodologies such as Agile development. It’s normally considered a development staple when working with object-oriented languages, but typically is overlooked when working with C. However, when working with embedded hardware, testing could be considered even more critical – failures and bugs are more expensive when you’re negotiating supply chains and manufacturing lines for each prototyping run.
James Grenning covers TDD in three primary sections, describing test-driven basics, multiple-module projects, and TDD design methodology. Brought to you by the Pragmatic Bookshelf, this book is written in a straightforward style that’s easy to pick up, with code examples throughout. Don’t think that because this is one of the only books on testing embedded code that it’s a niche topic – TDD has the potential to transform your embedded projects.
Check prices here: Test-Driven Development for Embedded C
Making Embedded Systems is designed to be a primer on developing combined software and hardware products. It’s geared towards developers that don’t necessarily want to control all aspects of the hardware design process, but find themselves having to interact with hardware engineers and avoid miscommunication and bottlenecks.
Written at a fairly high-level, Making Embedded Systems is ideal for the experienced programmer just entering into the world of embedded software or the keen hobbyist that wants to move beyond Arduino projects and produce more professional output.