Here’s some summer reading to get embedded with. These books will school you in security, design, ARM, and architectural concepts.
I’m not sure what it is about summer–whether it’s more down time, more sun or whatever the reason–but summer seems to be the perfect time to catch up on reading. I often get asked by readers and colleagues what books I recommend to get up to speed on embedded systems development. Whether you are looking for something technical to read at the beach or at the office over lunch, here are five books every embedded systems engineer should read (if you haven’t already).
These are just a few books embedded systems developers will find useful this summer as they recharge and prepare themselves for the challenges they face developing embedded systems in a connected world.
Have you read any good embedded systems books lately? Share with your colleagues what they are and how they helped!
Clean Architecture: A Craftman’s Guide to Software Structure and Design by Robert Martin
One of the greatest challenges I encounter with clients is a lack of understanding of software architecture and how important it is to developing a system in a cost and time efficient manner. Clean architecture isn’t specifically targeted toward embedded software developers, but the author covers general rules and principles about software architecture that every embedded software developer (and manager) should understand. The chapters are relatively short, which makes it easy to consume in between meetings or in short bursts at the beach. Readers will walk away with an in-depth understanding of the principles required to properly architect their software (which may decrease how much work there is for me as a consultant, but it’s worth the risk).
Embedded Systems Security: Practical Methods for Safe and Secure Software and Systems Development by David Kleidermacher and Mike Kleidermacher
Whether we like it or not, embedded software developers’ next major skill is going to be secure software development. The IoT is rapidly progressing, and if you don’t understand basic security concepts and how to employ them, a few years from now you may find yourself unemployable. Embedded Systems Security does a fantastic job of providing developers with fundamental security topics, such as cryptography and data protection. While the book was written in 2012, many of the topics and techniques still apply to security today and will help the reader understand core security topics that they can build on with more recent developments in the industry.
Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C: Third Edition by Yifeng Zhu
One of the things I really like about this book is that it uses assembly language to help developers understand what is happening at the register level. I’ve found that many developers today have never used assembly language to write an application, which puts them at a disadvantage because they don’t understand how the microcontroller works, which handcuffs their ability to write efficient C code (as strange as that sounds). This book does a great job starting out with the basics, then moving developers through common peripherals and into middleware software development. The book even discusses how to use direct memory access (DMA) controllers and how digital signal processing (DSP) works on an Arm Cortex-M processor.
Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems by Daniele Lacamera
As I mentioned earlier, embedded systems architecture is important and often neglected, which is why I’m starting and ending my list with software architecture. I found Embedded Systems Architecture to be an interesting read that guides the reader through different architectural patterns and provides examples by examining different microcontroller peripherals. What I really like about this book is that it didn’t stop with the MCU, but continued on to talk about wireless protocols, the IoT, distributed architectures and how different patterns can also apply to task scheduling. In particular, I liked that the book took the time to discuss microcontroller start-up and memory management, which can go overlooked in many books.
Making Embedded Systems: Design Patterns for Great Software by Elecia White
Developers new to embedded systems will enjoy reading Making Embedded Systems. This book was written in 2011, but the concepts in it are just as relevant today. The book covers the fundamentals entry-level developers need to make their first embedded systems. One unique feature that I like about this book is that each chapter ends with a design problem or interview question relevant to the material covered in that chapter. This not only reinforces the concepts, but also helps the reader formulate how to handle an interview, which is great for an entry-level engineer.
Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees which include a Masters of Engineering from the University of Michigan. Contact him at [email protected], or his website and sign-up for his monthly Embedded Bytes Newsletter.
This summer (August 27-29), Drive World Conference & Expo launches in Silicon Valley with North America’s largest embedded systems event, Embedded Systems Conference (ESC). The inaugural three-day showcase brings together the brightest minds across the automotive electronics and embedded systems industries who are looking to shape the technology of tomorrow.
Will you be there to help engineer this shift? Register today!