Interested in developing embedded systems? Since they don't tolerate inefficiency, these systems require a disciplined approach to programming. This easy-to-read guide helps you cultivate a host of good development practices, based on classic software design patterns and new patterns unique to embedded programming. Learn how to build system architecture for processors, not operating systems, and discover specific techniques for dealing with hardware difficulties and manufacturing requirements.
Written by an expert who's created embedded systems ranging from urban surveillance and DNA scanners to children's toys, this book is ideal for intermediate and experienced programmers, no matter what platform you use.
I really like the author and I'm a big fan of her podcast and the effort that she puts into all of this. She is definitely knowledgable and very experienced in this field. However, I'm not really sure what to think about this book at all. I would consider myself an experienced programmer myself - with 15+ years of experience. I've worked on several embedded projects in the last couple of years already, so I'm quite familiar with all of the constraints that come along with it. I didn't expected any revealing insights into the embedded software development, but I did expect to stumble upon some new concepts and/or new ideas. Yet, I haven't found anything that really blew my mind. It was basically just an (short) overview of some topics that every embedded software developer is facing.
The biggest problem I have with this book is the targeted audience. Complete beginners won't get anything meaningful out of this book. The concepts are far too general and abstract and they are probably looking for step-by-step instructions. On the other hand it is mostly stating the obvious, so any experienced programmer that is changing the field, will also not get anything surprisingly new. Maybe I'm too harsh, as I'm from this very field and it is not targeting me directly, but I'm not sure whether I would actually suggest this book to anyone in my circle of friends and acquaintances. I would much rather spent some time and solve real problems with them, which is probably the better approach. However, this book might come in handy whenever you can't afford to spent some time explaining everything in detail.
Very useful book . It gives you a lot of insights and useful hints in all aspects of the embedded systems process .Generally , you don't have to read it in a specific order. The most useful chapters for me were : 7. Updating Code , about bootloaders 8. Doing more with less , about code optimization 10. Reducing power consumption
This book was exactly what I was hoping it would be: a completely system-agnostic guide to the general principles of writing software for embedded systems. There is no book (yet) for the microcontroller I'm targeting for my hobby project. Just online documentation.
Being system-agnostic presents an enormous challenge for this book because every topic must be covered in broad strokes and generalities. Ultimately, it's a little frustrating to read because everything's a tease. I'm sure it was doubly frustrating to write!
I appreciate that this book exists. I was the target audience.
Like it. It's focusing on MCU middling end CPU not high end desktop class CPU, which is what I am doing at work. The design principle perspective for embedded project is fresh to me, especially for the programming part.
This book was exactly what I needed to get back into the embedded world. The last time I had done any serious embedded work was doing set-top box / MPEG development in 2004. Aside from a few IoT projects for my home with Particles, coding some lighting systems for theater friends with ESP32s, and playing with the Cypress PSoC6 dev board, i've been doing mostly mobile dev since. However, after moving from mobile into firmware dev at work, this book was recommended. I quite whole-heartedly second that recommendation.
If you already know C / C++, but haven't used it in awhile (or if, like me, you still used it for the parts of mobile apps that needed to be as fast as possible but did everything else in Swift / Kotlin), and you want to code _really_ close to the hardware, this book is a great choice.
At first, I thought the organization was scattered. After I got a few chapters in, it became clear that the organization of the content was, like programming embedded systems, just another hard tradeoff and by the end I had to admit that it's probably as well-organized as possible.
The content is clearly presented, with relevant examples and little nuggets of nerd humor throughout. It didn't hit my current challenges directly, but provided plenty of ideas and suggestions that were very helpful.
I'm not sure how someone with zero embedded experience would absorb the material, but I think someone with a little hands-on experience and a little hardware knowledge would get a big boost out of this book.
This book was one of the best technical books I've ever read. This is really good for an embedded systems developer who is not professional, someone like me. It learns how to do programming with a plan and efficiently. It also learns some math and saving speed and memory methods. It is not a good book for starting embedded systems programming but after learning some basics you can read it. I believe it could have more code examples.
Having listened to several years of Embedded.FM I simply had to buy this book. I was looking for pointers on embedded systems construction and they are all here. This book is just chockfull of information. It also convinced me that what I do falls far short of embedded systems. ;0) I build simple toys. Elicia builds complex and important machines. And a few toys.
A must if you're serious about embedded systems. But it goes beyond that, delving deep into things any software engineer should know. If you've been doing it for a while then you probably already do know. If you're new to the game then read this book. If you're not into hardware you will feel tempted to skip a bunch. Don't. If you're writing any kind of software (he says after leaving the field after some forty odd years) then you should know some of this hardware stuff. You owe it to yourself and to your customers.
Now that I've read the thing from cover to cover it goes on my reference shelf because I know I'll be looking back at many of these techniques in the future.
A good overview of embedded issues and how to solve them.
I highly recommend having a project in hand to test all the little details that are mentioned in this book. But still, you will probably find chapters that prove confusing and irrelevant to your current endavour and are better left unread until things turn up.
Sometimes the solutions are so intricate and detailed, but their topic is just so irrelevant. Othertimes the topic is interesting but the details fall short.
Excellent book for anyone working with or close to embedded systems both new and experienced in the field.
Elecia White manages to give a excellent introduction to every topic, describe common pitfalls and experienced tips while always showing the way to further explore each topic deeper with further reading.
One of my key books I keep recommending to those interested in the field. If this book interests you I recommend listening to the Embedded.fm podcast hosted by the author.
The author made the book logical and easy to follow yet fun at the same time. Sometimes topics felt a little too basic or obvious but I can’t fault the book for trying to be a starting point for people from all fields and backgrounds (in fact that’s likely the point). The main point is this book was filled with useful knowledge which I can easily look back on and show to colleagues in a pinch making me a better Engineer because of it.
Making Embedded Systems: Design Patterns for Great Software is an invaluable resource for getting started to learn about embedded systems engineering.I wish I had discovered earlier in my own learning process. The author managed to break down complex concepts into easily digestible information. As a bonus there are interview questions included at the end of each chapter.
Way, what a nice book ... I already did quite a lot of embedded work so a lot of it was not knew but I still found some interesting views and it was well written. definitely recommended for people starting embedded designs!!! I just would have liked a bit more source code.
This is an excellent introduction to the concepts required for embedded design. It won't make you an expert in every aspect, but it will ensure you're not embarrassed by not knowing something obvious!
Covers pretty much every aspect of embedded design in enough detail to get you started. However, another reference would be required for most topics to actually move to implementation.
I wanted to use the book to generate some content for the course I taught to graduate-level students. It was not helpful for that purpose, but it is an informative book if you want to increase your general knowledge in embedded software development.
Must read for embedded engineers. The bias seems to be toward programmers who want to get into hardware. I'm an EE who wants to improve my programming, so I'm traveling the opposite way.
Seriously, I'll say it again... absolute must read for Embedded Systems Engineers
I wish I had read this book when I started working as an embedded software developer. Great to understand the basics and to become familiar with some advanced concepts.
I really like this book. It sets out to provide an intro to the embedded space with more focus on software than hardware, but it has enough depth that it isn't just an intro book. The humor is great too, not so much that it distracts from the content but enough to lighten up the material and lower the activation energy needed to work through the book. What other book has a datasheet for a triceratops or explains interrupts based on a chicken pushing a button? I read the 1st edition as well, and the new edition has enough new content to justify upgrading. There is a lot of new material in this version that wasn't in the last.
If you are going to meet both hardware and software, or very embedded software (not Android phones, more like AVR microcontrollers or the buzzy internet of things, or even real-time industrial microcontrollers), let this book be your introduction, a digital mentor. Exceptionally clearly written, yet not boring. Topics are well crafted, and concise C code samples and diagrams are provided.
It does not, however, delve into intricacies of PCB design, actuator programming or anything too deeply. You will probably need one or two more books for the accents of your specific application.
In Making Embedded Systems, Elicia provides a great account into how an embedded shop works, what a beginner should know, and some tips & tricks that will be useful down the road. I find myself coming back to this book as a reference when I'm doing something new or doing something I haven't done in a while like power management or reading linker script. I highly recommend this book for any aspiring embedded software engineers.
A decent overview from someone with programming experience, but little embedded experience. Not so useful for a complete novice, or anyone with more than about a year of embedded work already under their belt.