Barr Group FacebookBarr Group TwitterBarr Group LinkedInBarr Group Vimeo

Programming Embedded Systems in C and C++ Embedded software is in almost every electronic device we use today. There is software hidden away inside our watches, microwaves, VCRs, cellular telephones, and pagers; the military uses embedded software to guide smart missiles; and communications satellites, space probes, and modern medicine would be nearly impossible without it. Of course, someone has to write all that software, and there are tens of thousands of computer scientists, electrical engineers, and other professionals who actually do.

Each embedded system is unique and highly customized for the application at hand. As a result, embedded systems programming is a widely varying field that can take years to master. However, if you have some programming experience and are familiar with C or C++, you’re ready to learn how to write embedded software. The hands-on, no-nonsense style of this book will help you get started by offering practical advice from someone who’s been in your shoes and wants to help you learn quickly.

The techniques and code examples presented here are directly applicable to real-world embedded software projects of all sorts. Even if you’ve done some embedded programming before, you’ll still benefit from the more advanced topics in the book, which include:

  • Testing memory chips quickly and efficiently
  • Writing and erasing flash memory devices
  • Verifying nonvolatile memory contents with CRC's
  • Interfacing to on-chip and external peripherals
  • Designing and implementing device drivers
  • Understanding real-time operating system internals
  • Optimizing embedded software for size and speed
  • Making the most of C++ without a performance penalty

So, whether you’re writing your first embedded program, designing the latest generation of hand-held whatchamacalits, or simply managing the people who do, this book is for you.

Just listen to what these reviewers had to say:

"This is simply the best book I’ve ever seen on the topic of embedded systems programming. I’ve been waiting twenty years to recommend this book and I didn’t even know it!" -- Lindsey Vereen, Editor-in-Chief, Embedded Systems Programming

"I thought my book was pretty good—until I read this one! Buy two and give one to a friend!" -- Jack Ganssle, Embedded Systems Consultant/Columnist/Speaker


Please note that these pages of our website are based on the 1st edition of a book that was written almost 20 years ago.

Generally speaking, 90+% of this introductory information about embedded software development is still accurate and useful even today. However, certain side remarks about hardware (such as processors speeds or memory sizes) may be out of date at this point.

Though certain code snippets shown in the book were written for a specific hardware platform ("The Arcom Board"), it is not necessary to have access to this hardware to understand the book's teachings.