STM32 Bootloader From Scratch

 

Learn how to design a custom STM32 bootloader from scratch, including Flash memory layout, linker scripts, firmware updates, and UART communication using Python.

Enroll Now

Highly Practical

What you'll learn

 ✔ Understand how the STM32 boot process works at reset, from hardware to application start

✔ Configure and modify the linker script for bootloader–application separation

âś” Erase and program STM32 Flash memory

âś” Validate application firmware before execution (CRC / checksum concepts)

✔ Implement a reliable jump from bootloader to application

âś” Use Python and pySerial to communicate with the STM32 bootloader

✔ Use UART Peripheral with DMA for data transmission

 ✔ Use STM32CubeProgrammer to Monitor the Flash Memory

Course Content

  1. 0 - Introduction

    2 lessons
    1. 1 - introduction to the Course
    2. 2 - What is a Bootloader?
  2. 1 - UART DMA, CRC, and Python Script

    5 lessons
    1. 1 - Uart Configuration and Testing
    2. 2 - UART DMA Receive to Idle, Python Script for Transmitting Data
    3. 3 - UART CRC Configuration
    4. 4 - Serial data, Computing Checksum in a Python Script
    5. Rate & review this course
  3. 2 - STM32 Flash Memory Introduction

    4 lessons
    1. 3 - Source Code
    2. 1 - Flash Memory Organization. Data, Text, BSS sections of the binary file
    3. 2 - STM32 Flash Memory Writing & Erasing Data
    4. 3 - Flash Memory Test, STM32CubeProgrammer
  4. 3 - Preparing an Application Project

    3 lessons
    1. 1 - Creating an Application Project, Explaining the Linker Script
    2. 2 - Explaining the Vector Table and Generating the Binary file
    3. Rate & review this course
  5. 4 - Bootloader Design

    6 lessons
    1. 1 - Updating Serial Port Library
    2. 2 - Updating the Python Script to stream the application binary file
    3. 3 - Updating the Main Function & Testing with STM32CubeProgrammer
    4. 4 - Jumping to the application: Running Reset Handler
    5. 5 - Final Test
    6. 6 - final words
NICE TO MEET YOU

Tutor

Greetings! I'm Yerke, the founder/editor/SEO/ loader/marketer of SteppeSchool. With a Bachelor's degree in Electrical Engineering and a Master's degree in Robotics/Mechatronics, I completed my Ph.D. in Robotics/Mechatronics.

Currently, as an automation engineer, I spend my free time teaching people about electronics, embedded programming, and robotics. For years, I've been curating insightful content on my YouTube channel (+700k views), offering valuable insights to students and enthusiasts alike.

Steppeschool Reviews

Lifetime, Presale

$20

 $40

✔Flexible payment plans 

✔Lifetime access

✔Certificate of Completion

✔2 hours of video content

✔18 video lessons

✔Source Code

 

ENROLL NOW

 

Cancelling & 14-day Money-back guarantee

 I'm sure you'll enjoy this course! But if it doesn't meet your expectations, no problem—you can get a full refund within 14 days and cancel anytime, no questions asked.

Ask Questions Anytime

Whenever you're stuck, ask in the comments tab — I personally reply within 12 hours to guide you forward, like a mentor throughout your STM32 journey.

Target audience

Built For Engineers Like You

âžś Embedded systems engineers who want to design a professional STM32 bootloader from scratch

➜ STM32 developers and hobbyists who want to understand Flash memory, linker scripts, and firmware updates

➜ Students and self-learners aiming to gain real-world embedded firmware design skills

Requirments

WHAT you'll need

 

✔ STM32 microcontroller board

âś” Basic knowledge of programming STM32 MCUs

More Details

Frequently-asked questions