Summer reading list for embedded developers - 2015
The start of summer always brings back childhood memories of reading clubs at the local library. For most of us, the days of summer reading clubs are long past. But the need to continue to learn and develop never will be. Moore’s law continues to hold true and the way in which embedded systems are built and developed will continue to evolve right along with it. In order to keep pace, there are a number of subject areas that developers might want to review and stay current in. One of the best ways to do this is to build a library of books that can be used not only as reference but also to learn about cutting edge technology.
Here are a few books from different subject matter areas that I can recommend for your reading program. These should both interest the embedded systems developer and help to keep their knowledge from going the way of the dinosaurs.
Classic embedded software works
Despite the rapid changes that sweep the embedded systems industry there are some books that just seem to stand the test of time. These books are rooted in the fundamentals of our industry and have continued to provide insights and a foundation for newcomers and seasoned developers. A few examples of recommended reading include:
- An Embedded Software Primer, David E. Simon, 1999
- The C Programming Language, Brian W. Kernighan and Dennis M. Ritchie, 1988
- Expert C Programming – Deep Secrets, Peter Van Der Linden, 1994
Industry standards in quality
Every industry has its best practices and wisdom that has been spawned by the hard work and dedication of many individuals and captured as standards. Best practices are often created through missteps and taking the time to read through and learning how to avoid these missteps will help to improve quality and decrease time and cost to market. There are many standards that embedded systems developers could look to for guidance but a couple that have proven to be low hanging fruit include:
- Guidelines for the Use of the C Language in Critical Systems (MISRA C: 2012), Motor Industry Software Reliability Association, 2013
- The CERT C Coding Standard – 98 Rules for Developing Safe, Reliable and Secure Systems, Robert C. Seacord, 2014
- Embedded C Coding Standard, Michal Barr, 2008
The internet-of-things has been a hot topic the last few years and whether developers like it or not it is the new frontier for embedded systems. Connecting embedded systems to the Internet brings a wide variety of challenges ranging from security and robustness through firmware updates and web technologies. A few books that will undoubtedly prove useful and are on the cutting edge include:
- Embedded Systems Security: Practical Methods for Safe and Secure Software and Systems Development, David Kleidermacher and Mike Kleidermacher, 2012
- Beginning JSON, Ben Smith, 2015
- Beginning Node.js, Basarat Ali Syed, 2014
Entry-level developers or engineers who are switching from one discipline to another can find it difficult to find good starting books. A quick search on Amazon reveals a large number of books devoted to embedded systems design. For that reason, a few books that target the beginner or are perfectly suited for the beginner include:
- Making Embedded Systems: Design Patterns for Great Software, Elecia White, 2011
- Test Driven Development for Embedded C (Pragmatic Programmers), James W. Grenning, 2011
- The Designers Guide to the Cortex-M Processor Family, Trevor Martin, 2013
The rate at which embedded Linux systems are being deployed seems to be drastically increasing. The cost for hardware has been falling over the last few years and, given the power that an embedded Linux platform offers, many companies are looking to this OS to help get to market quicker. Many books exist for embedded Linux but a few recent ones that embedded developers will find helpful and hands-on include:
- Linux for embedded and real-time applications, Doug Abbott, 2013
- Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux, Derek Molloy, 2014
- Embedded Linux Projects Using Yocto Project Cookbook, Alex Gonzalez, 2015
Embedded systems development covers a large number of disciplines and subject areas. This article has touch on only a few that are of common interest to many embedded developers and suggested a number of resources that can be looked at to help increase knowledge of these complex systems. What other areas and books have you found useful that should also be suggested to developers and added to the embedded system engineers’ library?
Jacob Beningo is a Certified Software Development Professional (CSDP) whose expertise is in embedded software. He works with companies to decrease costs and time to market while maintaining a quality and robust product. Feel free to contact him at firstname.lastname@example.org, at his website www.beningo.com, and sign-up for his monthly Embedded Bytes Newsletter here.
Join over 2,000 technical professionals and embedded systems hardware, software, and firmware developers at ESC Silicon Valley July 20-22, 2015 and learn about the latest techniques and tips for reducing time, cost, and complexity in the embedded development process.
Passes for the ESC Silicon Valley 2015 Technical Conference are available at the conference’s official site with discounted advance pricing until July 17, 2015. The Embedded Systems Conference and EDN are owned by UBM Canon.