Embedded Software Books

I’m often asked what useful books software engineers should read when they start to work on embedded systems. So here’s a list of books I would recommend as starters.

Programming Embedded Systems with C
Programming Embedded Systems

First, nowadays many embedded systems are written in C (although lower end systems using 8-bit MCU are still likely to be written in Assembler), so software engineers had better make themselves very familiar with C/C++ and GNU tools (gcc, libtool. automake…) with a focus on embedded systems (e.g. interrupts handling, real-time capabilities, volatile variables, processes and threads’ stack handling, , cross compilers…).  Programming Embedded Systems: With C and GNU Development Tools, 2nd Edition is just the right book for that purpose. It deals with embedded Linux and eCos and provides useful examples. You may also read part of it online

Once you start developing embedded systems you are likely to write device drivers at some points. Linux Device Drivers, 3rd Edition is a must have and is up-date for Linux 2.6. In case you need to write drivers for Linux 2.4 you may want to read the second edition. Linux Device Drivers edition is also available free of charge in PDF format.

pthreads_programming_books
Pthreads Programming

Finally, if you program for embedded systems (especially without MMU, hence no shared libraries), you’re likely to work with a system architecture using one process with multiple threads instead of a system architecture using multiple processes. So you’ll have to make yourself familiar with threads programming, handling shared memory, using mutexes.. This is already explained to some degrees in  Programming Embedded Systems: With C and GNU Development Tools, 2nd Edition but you may want to get more details with Pthreads Programming: A POSIX Standard for Better Multiprocessing (O’Reilly Nutshell)

There are also other useful books and resources available, but if you read those three books and use online resources, you’ll be ready to take on embedded system projects.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX Rockchip RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
2 Comments
oldest
newest
harichand
harichand
11 years ago

Thanks for the list of books suggested by your site. Which helps me a lot to progress through how to develop a successful product. I need one more help. Could you please suggest me any good book or video link to learn about the compilers/linker/loaders/ and debuggers.

with regards,
Hari

Boardcon Rockchip RK3588S SBC with 8K, WiFI 6, 4G LTE, NVME SSD, HDMI 2.1...