Skip to content

📖Book Recommendations

Test Drive Development for Embedded C

Another day without Test-Driven Development means more time wasted chasing bugs and watching your code deteriorate. You thought TDD was for someone else, but it's not! It's for you, the embedded C programmer. TDD helps you prevent defects and build software with a long useful life. This is the first book to teach the hows and whys of TDD for C programmers.

Pragmatic BookshelfAmazon

Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C

The book introduces basic programming of ARM Cortex-M cores in assembly and C at the register level, and the fundamentals of embedded system design. It presents basic concepts such as data representations (integer, fixed-point, floating-point), assembly instructions, stack, and implementing basic controls and functions of C language at the assembly level. It covers advanced topics such as interrupts, mixing C and assembly, direct memory access (DMA), system timers (SysTick), multi-tasking, SIMD instructions for digital signal processing (DSP), and instruction encoding/decoding.

Pragmatic BookshelfAmazon

Modern CMake for C++

This book offers a simpler, more comprehensive experience as it treats the subject of building C++ solutions holistically. Modern CMake for C++ is an end-to-end guide to the automatization of complex tasks, including building, testing, and packaging. You'll not only learn how to use the CMake language in CMake projects, but also discover what makes them maintainable, elegant, and clean.

PacketAmazon

The Pragmatic Programmer

This book offers practical tips and timeless principles for becoming a better programmer. It covers topics such as personal responsibility, career development, architectural techniques, and continuous learning. With engaging anecdotes and concrete advice, it encourages developers to write flexible, adaptable, and maintainable code.

The Pragmatic BookshelfAmazon

The Art of Electronics 3rd Edition

No electronics book list is complete without this classic. This has been really useful to troubleshoot some issues with mostly analog circuits. What I like about it is that it contains all the information a designer needs to know in one place. You can find the excellent second edition for a great price.

Adafruit

Designing Electronics that Work

The book that teaches the practical secrets of electronics design that most engineers learn the hard way.

No Starch Press

The C Book

A good and complete introduction to the C programming language. The original version was published in 1991 but has been re-released in multiple formats since it's initial introduction. An online version can be accessed through the link below.

gbdirect

Modern C - Jens Gustedt

More advanced C usage and structures. The public version is available on Jens Gustedt's personal blog but a physical copy can also be purchased.

Jens Gustedt BlogManning Publications

Making Embedded Systems: Design Patterns for Great Software

A classic. At least the first 4 chapters are a must-read.

Amazon

Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems

One of my all time top recommendations. Gives you some principles to follow while debugging embedded systems.

Amazon

Better Embedded System Software

A comprehensive guide to writing good embedded software.

Amazon

Embedded C Coding Standard

Though I found this on a blog, it's long enough to be a book. What I like about this standard is that it's not a standard based on stylistic preferences or convention - each rule is designed to minimize software defects, and along with every rule is accompanying reasoning (so you can see for yourself how it minimizes defects) and an idea on how to enforce it.

Online Version - Barr Group HomepageAmazon

Reusable Firmware Development: A Practical Approach to APIs, HALs and Drivers

A book that focuses on how to write platform-independent embedded software.

Amazon

High Speed Digital Design: A Handbook of Black Magic

Talks about how the problems with analog circuits show up in digital circuits. An important note is that the ideas in this book don't just apply to RF and high frequency digital signals - these issues show up even in low frequency digital signals with high slew rate (dV/dt). So it's applicable to pretty much any modern hardware system that relies on digital signals.

Amazon

Troubleshooting Analog Circuits

A book that has helped me troubleshoot some analog circuits that I've designed before. Highly recommend.

Amazon