After what felt like an eternal winter, summer has finally arrived! Undoubtedly, many engineers will shortly be heading to the beach or sitting out on the deck for some much-needed relaxation. This provides a great opportunity to catch up on some interesting engineering books, which can help carry that feeling of relaxation back into the office by enhancing those engineering skills. I have several book recommendations that I think most embedded systems engineers will find interesting and useful for the challenges that lay ahead.
For the record, other than slipping my own book into the list at the bottom, I don’t have a relationship with any of these authors. I found these books to contain useful information that I think can help make a difference in how we develop embedded systems—and that I think readers will enjoy.
Recommendation #1 – Embedded System Security by David & Mike Kleidermacher
For many embedded systems developers, security is becoming an important factor in their designs. Security typically is not one of those topics that developers used to have to consider at all. Embedded Systems Security was published back in 2012, but it contains a lot of fundamental concepts and material that don’t date themselves easily. The book starts out covering security fundamentals. It then moves into system and software considerations for security before moving into cryptography and data protection. Any developer who is interested in starting to understand security would gain a lot by reading this book.
Recommendation #2 – Real-Time C++ by Christopher Kormanyos
For any developer who is interested in writing microcontroller software in C++, this book is a must read. I absolutely loved the second edition of this book and just recently, in 2018, the third edition has been released. So it is once again in my own personal reading queue. Real-time C++ covers all the fundamentals and the advanced topics that developers need in order to write efficient, deterministic embedded software. Developers are walked through how to start writing their software in C++ step by step. I found that even if your C++ understanding is rusty or non-existent, there is more than enough information to help a developer get started using C++.
Recommendation #3 – Real-Time Concepts for Embedded Systems by Qing Li with
Real-Time Concepts for Embedded Systems is a book for developers who are getting started using real-time operating systems (RTOSs). This book starts out with a good basic review of embedded systems and moves quickly into real-time concepts. Topics such as tasks, semaphores, mutexes, message queues, events flags, and many other RTOS concepts are covered. The concepts can be applied to nearly any RTOS, and I found the book to be a good reference for the engineers who attend my RTOS courses. If you are getting started or need to brush up on RTOSs, this would be a good book to start with.
Recommendation #4 – Node.js for Embedded Systems by Patrick Mulder & Kelsey Breseman
We’ve all seen from the near nonstop press devoted to the IoT over the last several years that there is a lot of development and focus going into connected systems. It’s an exciting time. But for many engineers, the IoT may very well be a bit intimidating. I found this book to be very practical in the way it was written in covering how Node.js can be used for embedded IoT devices. The authors cover several different inexpensive and hobbyist development boards, which makes it easy for readers to dig in and get their hands dirty and learn through implementation.
Recommendation #5 – Reusable Firmware Development by Jacob Beningo
Well, since we are on the topic of book recommendations, I thought I would slip in a book I wrote late last year and that I have received good feedback on from readers. Reusable Firmware Development focuses on the journey that developers need to take in order to write reusable and portable software on microcontroller-based systems. I walk the reader through reuse best practices and a methodology for developing reusable software—not just at the application layer, but also at the HAL and driver layer. The goal is to help developers get away from constantly custom writing their software and reinventing the wheel every time they start a project.
I hope you find this list helpful and that it can help you improve your skills. If there are any other books that you have found to be helpful and would like to share, please add them as a comment at the end of this blog! Your fellow engineers will greatly appreciate it!
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. 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.
(Image Source: Amazon & Apress)
Today's Insights. Tomorrow's Technologies.
ESC returns to Minneapolis, Oct. 31-Nov. 1, 2018, with a fresh, in-depth, two-day educational program designed specifically for the needs of today's embedded systems professionals. With four comprehensive tracks, new technical tutorials, and a host of top engineering talent on stage, you'll get the specialized training you need to create competitive embedded products. Get hands-on in the classroom and speak directly to the engineers and developers who can help you work faster, cheaper, and smarter. Click here to submit your registration inquiry today!