This is my personal collection of (free) resources that I find useful, insightful, or simply interesting while learning embedded systems. Itβs still small, but Iβll keep expanding it over time. π
ποΈ Legend: π Short reads Β· π Books Β· π§© Exercises Β· π οΈ Tools Β· π¬ Videos
Table Of Contents
Open Table Of Contents
Programming
π Competitive Programmerβs Handbook, Antti Laaksonen
π§© Exercism My favorite platform for programming exercises across many languages, with free mentor reviews.
π π¬ The Missing Semester of Your CS Education
Modern C++
π Modern C++ Programming, Federico Busato
π Modern CPP features: C++23/20/17/14/11
π C++ Core Guidelines, Bjarne Stroustrup, Herb Sutter
π Collection of slides from CppNow presentations
Rust
π Rust Book
Assembly and reverse engineering
π ARM Reverse Engineering Notes
π Compiling to Assembly from Scratch, Vladimir Keleshev (ARM)
π FFmpeg School of Assembly Language (x86)
Operating systems
π Operating Systems: Three Easy Pieces Best intro to operating systems
π A fork() in the road Why fork() is bad and what can be used instead
π¬ Introduction to Zephyr by Shawn Hymel
Compilers
π A Compiler Writing Journey
π Beginnerβs Guide to Linkers
Embedded
π¬ Embedded System Project Series | Artful Bytes
π Donβt use Arduino for professional work
π Bare metal programming guide
Computer Architecture
π Memory Management Reference
π What Every Programmer Should Know About Memory, Ulrich Drepper
π¬ Scott Meyers: Cpu Caches and Why You Care | code::dive conference 2014 | Youtube
π¬ The Engineering that Runs the Digital World | How CPUs Work
π Programming from the Ground Up | Jonathan Bartlett
Tools
π οΈ cmake-init The must-have tool for initializing CMake based projects. Adds UT, CI/CD, linters etc.
π οΈ Wokwi Online simulator for Arduino AVR, ESP32, STM32, Pi Pico.
Security
π Embedded Application Security Best Practices
π Compiler Options Hardening Guide for C and C++