EmbeddedRelated.com
The 2026 Embedded Online Conference
Bare-metal programming for ARM - A hands-on guide

Bare-metal programming for ARM - A hands-on guide

Daniels Umanovskis
Still RelevantIntermediate

The subject of this ebook is bare-metal programming in C for an ARM system. Specifically, the ARMv7-A architecture is used, which is the last purely 32-bit ARM architecture, unlike the newer ARMv8/AArch64. The -A suix in ARMv7-A indicates the A profile, which is intended for more resource-intensive applications. The corresponding microcontroller architecture is ARMv7-M.


Summary

This hands-on ebook teaches C-based bare-metal programming targeting the ARMv7-A profile, emphasizing low-level firmware techniques for application-class ARM cores. Readers will learn how to write startup code, handle exceptions and interrupts, and interface directly with hardware without an operating system.

Key Takeaways

  • Understand the ARMv7-A architecture and how it contrasts with the ARMv7-M profile used in microcontrollers.
  • Implement low-level startup code, vector tables, and exception/interrupt handlers in C and assembly.
  • Write bare-metal firmware that interfaces with peripherals via memory-mapped registers (GPIO, UART, timers).
  • Apply debugging and development techniques for running and testing code on real ARM hardware.

Who Should Read This

Embedded software engineers or firmware developers with C experience who want to learn practical bare-metal programming on ARM application-class cores and improve low-level hardware interfacing skills.

Still RelevantIntermediate

Topics

ARM Cortex-MBare-Metal ProgrammingFirmware Design

Related Documents


The 2026 Embedded Online Conference