Conquering Bare-Metal Programming: A Comprehensive Open-Source Microcontroller Practical Guide

Are you eager to gain a deep understanding of the underlying operations of embedded systems? Are you tired of the constraints of frameworks and want to control every detail of the microcontroller? Then, this comprehensive bare-metal programming guide open-source project will take you on an exciting journey into embedded programming! 1. Why Choose Bare-Metal Programming? … Read more

Which Operating System Should You Learn First for Embedded Development?

Which Operating System Should You Learn First for Embedded Development?

Many beginners focus on Linux and VxWorks, thinking that “the more complex the system, the more powerful it is,” which is completely the opposite. Embedded devices are different from our computers; some devices have only a few KB of memory (like smart door locks), while others need to run dozens of tasks simultaneously (like automotive … Read more

Bare-Metal Programming vs RTOS Programming

Bare-Metal Programming vs RTOS Programming

In embedded development, bare-metal and RTOS programming are two core implementation methods. This article focuses on the STM32F4xx series MCUs, first explaining the concepts and applicable scenarios of both, and then comparing the code implementation differences between bare-metal and FreeRTOS through three examples: multi-LED blinking, sensor data processing, and button-controlled motor. Finally, it provides selection … Read more

Introduction to Bare-Metal Programming with STM32

Introduction to Bare-Metal Programming with STM32

This series will introduce the basic knowledge of bare-metal programming with STM32 to better understand how frameworks and IDEs like STM32Cube and Keil work. This guide starts completely from scratch, requiring only a compiler and the chip’s datasheet, without relying on any other software tools or frameworks. This series covers the following topics: Memory and … Read more

Building an Operating System from Scratch on Raspberry Pi with Rust: A Tutorial That Will Make You Fall in Love with Bare-Metal Programming

Building an Operating System from Scratch on Raspberry Pi with Rust: A Tutorial That Will Make You Fall in Love with Bare-Metal Programming

rust-raspberrypi-OS-tutorials is a series of tutorials aimed at enthusiasts/self-learners, teaching you how to write a monolithic operating system kernel in Rust, targeting the Raspberry Pi (mainly Pi 3 and Pi 4). Each lesson provides a bootable and runnable kernel image, with subsequent lessons building on the previous ones, ultimately allowing you to run it in … Read more

Real-Time C++: A High-Performance Tool for Embedded Systems!

Real-Time C++: A High-Performance Tool for Embedded Systems!

Real-Time C++ sounds cool, right? In fact, it is the accompanying open-source code library for Professor C. M. Kormanyos’s comprehensive book, Real-Time C++. Simply put, it helps you write bare-metal, zero operating system embedded applications using modern C++ (14/17/20/23). Whether you are working with AVR, STM32, RISC-V, or Raspberry Pi, you can “write once, run … Read more

System Practice Learning ARMv8 Assembly – Course 2

System Practice Learning ARMv8 Assembly - Course 2

Course 2: Stage 1 – Basic Preparation (Week 2) Topic: Detailed Explanation of ARMv8 Registers and Instruction Set, Bare-Metal Programming Practice 2.1 In-Depth Analysis of Registers Classification of ARMv8 Registers: General Purpose Registers (31): <span>X0</span>: Function Argument 1 / Return Value. <span>X1-X7</span>: Function Arguments 2-8. <span>X8</span>: System Call Number. <span>X29</span>: Frame Pointer (FP). <span>X30</span>: Link … Read more

System Practice Learning ARMv8 Assembly – Course 1

System Practice Learning ARMv8 Assembly - Course 1

Course 1: Stage 1 – Basic Preparation (Week 1) Topic: Bare-metal program development, PL011 UART communication, ARMv8 boot process 1.1 Basics of Bare-metal Programming Core Concepts: Bare-metal Program: Runs directly on hardware without operating system support. Boot Process: The CPU starts executing instructions from the reset address (usually <span>0x0</span> or <span>0x8000</span>). Hardware (such as memory … Read more

Introduction to ARM Bare-Metal Programming and Embedded Systems

Introduction to ARM Bare-Metal Programming and Embedded Systems

Introduction to ARM Bare-Metal Programming and Embedded Systems Getting Started with ARM Bare-Metal Programming: From Zero to Embedded Development Hello everyone, I’m Daodao. Today, let’s talk about ARM bare-metal development. Many beginners feel overwhelmed when they see ARM, thinking it’s particularly difficult. In fact, it’s not; once you grasp the essentials, writing a simple LED … Read more

Getting Started: Bare-Metal Programming on ARM Cortex-M Microcontrollers

Getting Started: Bare-Metal Programming on ARM Cortex-M Microcontrollers

Getting Started: Bare-Metal Programming on ARM Cortex-M Microcontrollers Bare-metal programming typically refers to the process of writing programs to control hardware devices directly without an operating system. For embedded system developers, this is a fundamental and important skill. Today, I will guide you through how to implement bare-metal programming on ARM Cortex-M series microcontrollers. Starting … Read more