Bare-Metal C for Modern ARM
Bring-up, linker scripts, and the boot you cannot debug
Cortex-M and Cortex-A boards arrive with reference manuals and almost no working examples. This book fills the gap: writing the linker script that actually places .data, debugging the boot vector with SWD, building your own minimal CRT, configuring the MPU, and shipping firmware with a recovery path. Every section ships with verified code for STM32H7, Nordic nRF53, and i.MX RT.
Lior has brought up custom silicon for medical devices, satellites, and the kind of low-volume industrial gear that never appears on a Hacker News front page. He writes for engineers who own an oscilloscope.
- Pages
- 468
- Edition
- 3rd Edition
- Language
- English
- Level
- advanced
- ISBN
- 978-1-99999-007-4
- Published
- December 2025
Reviewed by three working engineers at peer publications before publication. We do not publish first drafts.
What you'll find inside.
- 01The Toolchain You Actually Need
- 02Linker Scripts From Scratch
- 03The Boot Vector and Reset
- 04Setting Up the MPU
- 05Interrupt Latency: Real Numbers
- 06Drivers for Peripherals That Lie
- 07RTOS or Bare-Metal: Tradeoffs
- 08OTA Firmware Without Bricking
- 09The Field Debug Story
5.0 / 5
312 verified readers
The bring-up bible
We onboarded three new firmware engineers this quarter using this book. The linker script chapter alone saved us a week of meetings.