Ask HN: Best books to learn embedded systems?

10 points by michael07w ↗ HN
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?

4 comments

[ 3.6 ms ] story [ 27.6 ms ] thread
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

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.

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