Pouya Neshagar
(Book Review) Embedded C by: Michael J. Pont
Updated: Jan 23, 2018

The first time when I got familiar with Michael’s work, was when I watched one of his online courses on iTunes U. I would highly recommend especially if you are a beginner. It's a free course called “Certified Embedded C” published by the University of Leicester.
Above all, I admire two characteristics of his teaching method. First, he is specialized in Safety Critical systems, therefore system reliability is deeply rooted in his teachings and you will learn a great deal about how to think and design more reliable embedded systems. Second, he teach the concepts in evolutionary steps. Meaning, after introducing a topic, he will gradually introduce a better and more reliable way of doing the same thing. That will encourage the students to not settle down only for one way of implementation and will help them to think and seek a better option. I find that way of thinking useful.
The book “Embedded C” is no exception of these two characteristics.
On the flip side though, the author of the book assumes that you are already familiar with the C language itself. In that sense, the book’s title looks a bit misleading as one may think that the C language is also covered in the book. Thus, if you are a beginner and you don’t know the C language, this book is not a right place to start. But, after you finished your C courses, I recommend coming back to this book in order to learn about embedded software programming. There are plenty of juicy materials here.
The book uses 8051 micro-controllers to teach the Embedded SW Development. The hardware is not expensive and the software licences are mostly free for this type of micro-controllers. The book uses the hardware simulator, so if you don’t want to buy the hardware, you are good to go.
If you are just entering to the embedded programming world, 8051 family it is a good choice to start with. But, if you are already familiar with Embedded SW developing to some degree, I suggest reading the book and to learn the software architectures and design patters but do the coding and the exercises with some modern Embedded micro-controllers like stm32 family (ARM based microcontrollers by ST-microelectronic). It will take more time, and more self-study. But, in my opinion, it will worth it.
Speaking about the code, the author of the book has done a great job of actually teaching how to code Embedded Software. The codes are mostly complete and each important part has been carefully explained. Also, after each chapter, you will find full code of the chapter’s project.
I find the chapters comprehensive and well-structured. They are easy to read and is recommended to go through them in sequential order. The only things that is missing, in my opinion, is the I2C and SPI communication tutorial. As a beginner’s book, it would be great to include them also.
The book consists of the fallowing chapter:
1. Programming embedded systems in C
2. Introducing the 8051 micro-controller family
3. Hello, embedded world
4. Reading switches
5. Adding structure to your code
6. Meeting real-time constraints
7. Creating an embedded operating system
8. Multi-state systems and function sequences
9. Using the serial interface
10. Case study: Intruder alarm system
Concluding Thoughts:
I will place the book as “should-have” category. No matter how experienced you are in your Embedded journey, this book is a should have book since it teaches you the fundamental of reliable Embedded Programming. I have it in my bookshelf and I find myself go back to the book from time to time. If you are a person who is a very beginner, it’s not a complete source and you need other material to learn more about Embedded Systems, but it’s one of the book that I highly recommend reading it. It’s easy to read and it’s better to go through it cover to cover which includes plenty of code examples. Most important of all, the book teaches the fundamentals of how to think when it’s time to do reliable embedded software design.
'Embedded C' book in Amazon:
Amazon US: http://amzn.to/2DxxQsV
Amazon UK: http://amzn.to/2n4lUEI
-------------------------------------------------------------------------------------
If you find this article usefull, share it so that your friends can also benefit. It would be pleasure to have you as a subscriber, so make sure to subscribe to the newsletter to stay on top my featured blog posts.