Embedded Bootloader Development from Ground Up™ (Udemy.com)
Essentials of Custom Bootloader Development
Created by: BHM Engineering Academy
Last updated September 2023
What you will learn
- Develop a deep understanding of the fundamentals of bootloader development, including the embedded build process and memory layout.
- Gain hands-on experience working with linker scripts, creating custom sections, defining memory regions, and storing functions in custom sections.
- Develop a multi-slot bootloader system that allows you to store multiple application firmware in memory.
- Build complex firmware solutions.
How it compares
Against the other 295 rated Udemy courses in Arduino on CourseDuck:
- Rating4.5 out of 5higher than 65% of them
- Reviews121#176 of 296 by number of reviews
- Length6.8 hourslonger than 59% of them
- Last updatedSeptember 2023more recently than 52% of them
Course Description
Get ready to dive into the exciting world of bootloader development with this beginner level course of our bootloader development series on STM32 microcontrollers.
Throughout this beginner-friendly course, you will explore the fundamentals of bootloader development, from the build process to the memory model and beyond.
Through a number of bite-sized modules, you will learn how to create custom bootloaders that enable you to take control of your firmware and unlock the full potential of your STM32 microcontrollers. You will gain understanding of the embedded build process, the STM32F4 memory model, and the critical role of linkerscripts and the linking process.
In addition to theory, you will get hands-on experience working with the linkerscript; creating custom sections, and defining memory regions etc.
But that's not all - you'll also have the opportunity to get further hands-on experience with linkerscripts and design and develop your own bootloader. And in the final project, you'll apply your newfound knowledge to create a multi-slot memory system bootloader which is capable of storing multiple firmware applications on the same microcontroller, implement a push-button trigger for entering bootloader mode, and develop a simple communication driver for selecting different firmware applications stored in memory.
By the end of this course, you'll have the skills and knowledge needed to confidently develop custom bootloaders for STM32 microcontrollers, opening up new possibilities for firmware updates, recovery, security, and customization.
With the flexible online format, you can study at your own pace, from anywhere in the world. Plus, we offer a 30-day money-back guarantee, so you can enroll with confidence.
Here's a sneak peek at what you can expect to learn:
The Right Boot
What is a boot loader?
Why is it needed?
The Embedded Build Process and Memory Model
Overview of the Embedded Build Process
A closer look at the Embedded Build Process
Overview of the STM32F4 Memory Model
Understanding the Linkerscript and Linking Process
Analyzing the Linkerscript and Memory Layout
Working with the Linkerscript
Creating SECTIONS in the Linkerscript
Defining custom MEMORY Regions
Storing functions in Custom Sections
Bare-Metal Bootloader Development
Implementing the Jump-to-Application function
Implementing the Default Application
Sharing functions between the Bootloader and User Application
Multi-Slot Bootloader System
Receiving UART Commands
Designing the System
Implementing the Multi-Slot Bootloader System
Instructor Details
- 4.5 Rating
121 Reviews
BHM Engineering Academy
Bohobiom Engineering is a 21st century Computer Engineering online Academy based in London U.K.
We have experienced instructors in the areas of Assembly Programming, Hardware Engineering, Signal & Image Processing, Embedded Firmware Development, Deep Learning and other high demand 21st century skills.
As of today we have trained over 35,000 happy pupils. Please take a look at our available courses and message us if you have any questions.
More courses by BHM Engineering Academy
Mastering STM32CubeMX 5 and CubeIDE - Embedded Systems (2023)
4.3 (396 Reviews)
Provider: Udemy
Time: 10.1h
$69.99
Embedded Systems STM32 HAL APIs Driver Development (2023)
4.4 (353 Reviews)
Provider: Udemy
Time: 11.3h
$69.99
Advanced Embedded Systems Bare-Metal Programming Ground Up™ (2025)
4.3 (251 Reviews)
Provider: Udemy
Time: 22.6h
$69.99
Embedded Systems STM32 Low-Layer APIs(LL) Driver Development (2023)
4.5 (127 Reviews)
Provider: Udemy
Time: 25.7h
$11.99
ARM GNU Assembly Programming From Ground Up™ (2023)
4.5 (117 Reviews)
Provider: Udemy
Time: 15.5h
$11.99
More Arduino courses
Learn to Build a Computer (PC) in 2026 - all types!
4.9 (245 Reviews)
Provider: Udemy
Time: 6.1h
$74.99
Raspberry Pi For Beginners - 2026 Complete Course
4.8 (3,105 Reviews)
Provider: Udemy
Time: 10.6h
$89.99
Ultimate Guide to Raspberry Pi : Tips, Tricks and Hacks (2023)
4.8 (2,363 Reviews)
Provider: Udemy
Time: 5.2h
$69.99
Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL (MCU3) (2026)
4.8 (487 Reviews)
Provider: Udemy
Time: 8.1h
$79.99
Arduino Step by Step: Getting Started (2024)
4.7 (8,714 Reviews)
Provider: Udemy
Time: 21.4h
$159.99
Reviews
By Deepak Kumar on 8/24/2026
Very good content to learn about bootloader and application development, and also some peripherals drivers implementation.
By Avinya Infinity Solutions on 5/3/2026
so many information is missing, not going deep ennough. i thought atleast the final project is going to have ennough but its just if else and jump. if you want i show you all the things i had to learn from outside of the course just to understand everything.
By Petr Jedlicka on 10/31/2025
Overall good course. It helped me to understand the elementary principles of bootloaders, linker scripts and STM32 memory map. On the other hand, quite a lot of time of the course was spent on writing drivers for GPIO, UART etc. From my opinion, it would more beneficial to use already written drivers and devote the time to more advanced things related to bootloaders because we are following a bootloader course, not anything like an STM32 basics course. It is the reason why I am giving 4/5 stars.
By Weston Gavin on 9/1/2025
Good overview of the building/linking/booting process. I would love to see a course specifically about customizing U-Boot to custom hardware.
By Thaewa Tansarn on 8/13/2025
This is a great course. I love it. I finally understood how to customize my own apps in the bootloaders.
By Charles Lowe on 5/16/2025
Because the instructor always covers the essential information for getting started.
By Carlos Rene Najera Inchauregui on 5/14/2025
As an introduction to the Bootloader world is a good course to start.
By Faramarz Arad on 3/24/2025
This is a great course. can not wait for section 2 and 3.
By William R Hays on 1/25/2025
I have been taking embedded courses on the ARM architecture and IoT for many years. This instructor is one of the best. He is quite comfortable with the subject due to his experience and knowledge. Finding low level ARM courses for deep learning is limited. Thank you for this course.
By Christian Söderbacka on 7/27/2023
The course manages to convey its core idea of having multiple firmwares in different Flash sectors, and selecting which of these to branch to based on some decision made by the bootloader. What I disliked about this course is that instead of writing the linker scripts from scratch, the course relies on modifying the ones autogenerated by STM32CubeIDE. The autogenerated scripts contain a lot of stuff that is never explained and one is left puzzled over their meaning. Perhaps the next course in the series will address this shortcoming. It seems like there is one lecture video missing. In lesson 34 a project called 9_bootloader2 is created. Then, in lesson 35, the project 9_bootloader1-app2 appears out of nowhere and gets completely ignored. The code for this project can still be found in the code download, but since the topic in lesson 34 was interesting, I would have liked a walkthrough of the code.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 90 / 100












