Skip to content

A collection of structured notes, code examples, and lessons learned while working through Bare Metal Embedded C Programming: Develop High-Performance Embedded Systems with C for ARM microcontrollers. This repo serves as both a personal learning log and a resource for others exploring ARM Cortex-M microcontrollers and bare-metal C programming.

Notifications You must be signed in to change notification settings

kpf5297/bare-metal-embedded-c-lessons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bare-Metal Embedded C Lessons

License
GitHub Repo stars
GitHub forks
Last Commit
Issues

A collection of structured notes, code examples, and lessons learned while working through Bare Metal Embedded C Programming: Develop High-Performance Embedded Systems with C for ARM microcontrollers.
This repo serves as both a personal learning log and a resource for others exploring ARM Cortex-M microcontrollers and bare-metal C programming.


📘 Book Reference

This repository is based on the concepts and exercises from Bare Metal Embedded C Programming.

⚠️ Note: No copyrighted book content is reproduced. This is strictly a collection of personal notes, implementations, and insights.


📂 Repository Structure


/chapter01\_intro/       # Toolchain setup, first project
/chapter02\_registers/   # Register-level programming examples
/chapter03\_io/          # GPIO, UART, timers
/chapter04\_interrupts/  # NVIC, ISRs
/chapter05\_drivers/     # Abstractions and modular drivers
/lessons.md             # Running log of insights and notes


📝 Lessons Learned

Each chapter folder contains:

  • Source code examples tested on STM32 boards
  • Notes explaining key concepts
  • Practical takeaways about embedded C programming

A running summary is also kept in lessons.md.


⚡ How to Use

  1. Hardware

    • ARM Cortex-M board (e.g., STM32 Nucleo, Discovery kit, or similar)
  2. Toolchain

    • ARM GCC toolchain (arm-none-eabi-gcc)
    • OpenOCD or ST-LINK for flashing/debugging
  3. Build & Run

    cd chapter01_intro
    make flash


embedded-c bare-metal arm-cortex-m stm32 firmware-development real-time-systems embedded-systems microcontrollers low-level-programming learning-notes

About

A collection of structured notes, code examples, and lessons learned while working through Bare Metal Embedded C Programming: Develop High-Performance Embedded Systems with C for ARM microcontrollers. This repo serves as both a personal learning log and a resource for others exploring ARM Cortex-M microcontrollers and bare-metal C programming.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published