HACKER Q&A
📣 michael07w

Best books to learn embedded systems?


I'll be graduating with a BS in CS in a few months and have accepted an offer for an embedded systems software role. My experience with embedded systems is limited to a couple courses I took while an underclassmen, so I want to use these next few months to prepare for this new role. What books would you recommend to build a decent proficiency?


  👤 wilburm Accepted Answer ✓
Will you be doing embedded Linux? Embedded RTOS? Bare metal? Microcontrollers? SoC (say, FPGA with a hard processor core)?

You can do a lot with QEMU. https://bootlin.com/ has a lot of great, free training material.

https://bootlin.com/doc/training/embedded-linux-qemu/embedde...

is one of my favorites.

Learning to cross-compile, do embedded debugging, the process of booting an embedded system (which varies depending on the answers to the above questions), learning how to read a technical reference for the processor you’re using as well as for peripherals you’re likely to interact with - SPI, i2c, UART, maybe PCIe, are all handy skills. Learn a bit about JTAG, hardware, reading schematics, etc. Even being able solder is helpful.

There may be books (I had a great embedded Linux book when I started) but there are lots of online materials too. Check out https://platformio.org/

There are fun embedded boards and projects for microcontrollers too - micropython on an rpi pico, tinygo, eLua, etc.


👤 johndoe0815
Embedded systems is a very large area, so an overview might be a good way to get started. Shameless plug for a great book on this - Peter Marwedel's (my former boss at TU Dortmund) "Embedded System Design: Embedded Systems Foundations of Cyber-Physical Systems, and the Internet of Things"

The book is available as Open Access PDF at https://link.springer.com/book/10.1007/978-3-030-60910-8


👤 prosaic-hacker
Making Embedded Systems: Design Patterns for Great Software 1st Edition by Elecia White I have not read the book but listen to their podcast https://embedded.fm/ http://makingembeddedsystems.libsyn.com/rss

👤 2rsf
I used to read https://www.embedded.com/ to pick up some great tips and trick, and when I worked close to the metal I simply read through datasheets