Embedded Bootloader Development from Ground Up™

Essentials of Custom Bootloader Development

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 linker scripts 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.

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


Bare-Metal Bootloader Development
  • Receiving UART Commands
  • Designing the System
  • Implementing the Multi-Slot Bootloader System


Frequently Asked Questions


When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.
Do I get a certificate?
Yes, after a successful completion of the course.

Your Instructor


EmbeddedExpertIO™
EmbeddedExpertIO™

EmbeddedExpertIO represents a vibrant collective dedicated to the mastery of sophisticated embedded systems software development for professionals.

EmbeddedExpertIO stands as a premier source of tailored embedded systems development courses, catering to individuals and enterprises seeking to hone or acquire embedded firmware programming expertise. Our extensive course selections encompass beginner to advanced levels, addressing diverse facets of embedded systems development, such as WiFi, STM32, IoT systems design, memory safeguarding, and beyond.

Our core objective is to equip individuals and organizations with the indispensable skills to thrive in the swiftly evolving embedded systems sector. We achieve this by providing immersive, hands-on education under the guidance of seasoned industry specialists. Our ambition is to emerge as the favored learning platform for embedded systems development professionals across the globe.