Find definitions for technical terms in our Embedded Systems Glossary.

Z Symbols

Test Your Skills

How good are your embedded programming skills? Test yourself in the Embedded C Quiz or the Embedded C++ Quiz.

Test Your Skills

Newsletter Signup

Want to receive free how-to articles and industry news as well as announcements of free webinars and other training courses by e-mail? Signup now.

The Best Books about Embedded Systems Design

Barr Group's mission is to help as many embedded systems engineers as possible make their products safer, more reliable and more secure. In addition to providing training, consulting, and product design services, we accomplish this by encourage our engineers to share their technical expertise by writing and teaching. Whenever possible, we retain the right to publish these materials in our free technical library.

In addition to this list of books, be sure to also check out our other free resources:

We hope that you will learn something from these public service efforts and be motivated to share your own technical knowledge in a similar manner. But all we really ask is that you design safe and secure embedded systems.

Recommended Books

Here's a list of the handful of books about embedded systems design that we recommend most highly and most often.

CoverBook Title and Details
Programming Embedded Systems

Programming Embedded Systems: With C and GNU Development Tools, 2nd Edition, by Michael Barr and Anthony Massa

The one book every embedded software developer must read to learn to interface directly to hardware using C. The updated and expanded second edition has examples using the GNU C compiler and an ARM processor.

Designing Embedded Hardware

Designing Embedded Hardware, 2nd Edition, by John Catsoulis

The perfect complement to Programming Embedded Systems (above), this book is a beginner's guide to embedded hardware development. Learn how to design a simple PIC or AVR-based printed circuit board.

Programming Embedded Systems

Embedded C Coding Standard, by Michael Barr

The Embedded C Coding Standard was developed from the ground up to minimize bugs in firmware, by focusing on practical rules that keep bugs out while also improving maintainability and portability.

Hardware/Firmware Interface Design

Hardware/Firmware Interface Design: Best Practices for Improving Embedded Systems Development, by Gary Stringham

Seven principles and over 300 best practice rules for designing ASICs, ASSPs, FPGAs, and SoCs so they don't suck. If you follow these rules, the device drivers and other firmware that uses the registers and blocks in the hardware will be easier to write and debug.

Practical Statecharts

Practical Statecharts in C/C++: Quantum Programming for Embedded Systems, by Miro Samek

Everything you ever wanted to know about hierarchical state machines. A true gem of a book, complete with C and C++ implementations of a framework for executing state machines in embedded systems.

MicroC-OS-III Real Time Kernel

MicroC/OS-III: The Real Time Kernel, by Jean Labrosse

The book to read if you want to know what makes a real-time operating system tick. It even includes the complete source code for a compact yet highly-portable RTOS.

Embedded Systems Dictionary

Embedded Systems Dictionary, by Jack Ganssle and Michael Barr

A handy desktop reference for beginner and expert alike. Over 2,800 embedded-specific terms defined.

Analog Interfacing to Embedded Microprocessors

Analog Interfacing to Embedded Microprocessors: Real World Design, by Stuart Ball

Loaded with great information about various types of sensors, A/D converters, and other interfaces to the analog world.