EmbeddedRelated.com
Books
The 2026 Embedded Online Conference

C and Assembly for ARM Cortex-M: A Practical Guide to Embedded Systems Programming, Microcontrollers, and Bare-Metal Dev

Funchess, Greg S. 2026


Why Read This Book

You should read this book if you want a practical, ground-up understanding of how ARM Cortex-M firmware really works at the machine level. You will learn how to bridge C and assembly in a way that makes interrupt handling, startup code, memory layout, and peripheral control far less mysterious, so you can write tighter bare-metal code and debug it with confidence.

Who Will Benefit

Embedded software engineers, firmware developers, and advanced students who already know some C and want to build reliable bare-metal applications on ARM Cortex-M microcontrollers.

Level: Intermediate — Prerequisites: Solid C programming, basic computer architecture concepts, and familiarity with microcontrollers or embedded development; assembly experience is helpful but not required.

Get This Book

Key Takeaways

  • Write startup code and linkerscripts for ARM Cortex-M targets
  • Implement and understand interrupt handling, exception entry, and context saving
  • Use assembly routines from C for performance-critical or hardware-specific tasks
  • Map memory, stack, and peripherals correctly in bare-metal firmware
  • Debug low-level firmware issues using registers, disassembly, and execution flow
  • Build a mental model of how the compiler, assembler, and linker cooperate in embedded systems

Topics Covered

  1. Introduction to ARM Cortex-M and bare-metal development
  2. C language refresher for embedded programmers
  3. ARM Cortex-M architecture and programmer’s model
  4. Assembly language fundamentals for ARM Thumb/Thumb-2
  5. Startup code, reset handlers, and vector tables
  6. Memory organization, stack usage, and linker scripts
  7. Interfacing C with assembly routines
  8. Interrupts, exceptions, and context switching basics
  9. Peripheral access and hardware-software interaction
  10. Debugging with disassembly, registers, and memory inspection
  11. Performance tuning and code-size optimization
  12. Case studies and complete firmware examples

Languages, Platforms & Tools

CAssemblyARM Cortex-M microcontrollersGCCGNU binutilslinker scriptsdebuggersdisassemblers

How It Compares

Covers similar territory to Joseph Yiu’s ARM Cortex-M books and Valvano’s embedded systems texts, but emphasizes the practical C/assembly boundary and bare-metal implementation details more directly.

Related Books

Bryant, Randal, O'Hallaron,...
The 2026 Embedded Online Conference