STM32Fx Microcontroller Custom Bootloader Development
4.4 (701 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,862 students enrolled

STM32Fx Microcontroller Custom Bootloader Development

Learn fundamentals of Bootloader Development for your ARM Cortex Mx based STM32Fx Microcontroller
4.4 (701 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,862 students enrolled
Last updated 7/2020
English, French, 10 more
  • German
  • Indonesian
  • Italian
  • Japanese
  • Polish
  • Portuguese
  • Romanian
  • Spanish
  • Thai
  • Turkish
Current price: $16.99 Original price: $24.99 Discount: 32% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 7.5 hours on-demand video
  • 6 articles
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Write your own custom bootloader for your STM32Fx microcontroller and test
  • Host Bootloader Communication implementation
  • Custom Bootloader command packets
  • Different boot modes of the STM32 Microcontroller
  • Boot loader flash handling implementation : Sector Erase/Program/Mass erase
  • Boot loader options bytes(OB) Program handling implementation
  • Boot loader Flash sector protection status handling implementation
  • Boot loader In application programming implementation (IAP)
  • Vector table relocation of ARM cortex Mx processor
  • STM32Fx based board is needed if you want to test the code developed
  • Basic 'C' Programming Knowledge is required but not mandatory

I have designed this course for students to get started with Micro-controller Bootloader Development. This course will be suitable for beginners in the domain of embedded systems and programming.

This course is all about learning to develop a custom BootLoader for ARM CORTEX Mx powered STM32Fx microcontroller.

In this course, I will guide you through step by step procedure to develop your own BootLoader and we will explore many things related to BootLoader programming.

The BootLoader we are going to develop in this course will have the following features

1) It can do the in application programming(IAP). You can use the BootLoader to flash a given application binary

2) Read microcontroller specific data

3) Flash related configurations like setting up read and write protections for different sectors

4) Flash sector erase

5) Mass erase of the user flash

6) Read and display the protection status of the flash memory

7) Jump to the specified address to execute the code

Along with custom BootLoader development, you will also understand

1) The different memory organization of a microcontroller

2) Memory aliasing and different boot modes of STM32

3) How MCU boots after power up

4) Vector table mapping and vector table relocation use case of arm cortex mx processor.

5) Difference between In-system programming(ISP) and in application programming(IAP)

6) Custom boot loader design flow chart

7) Host and Boot loader communication method

8) Implementation of different boot loader commands

You can also extend this BootLoader by giving the following features once you complete the course

1) Encrypt and Decrypt the firmware sent by the host using AES

2) Over the air programming by interfacing WIFI or Zigbee Modules

Hardware used in this course

In this course, STM32F446RE Nucleo board is used.

If you have any other board based on STM32 microcontroller then also you can use the codes developed in the course with no or minor changes.

Software used:


2) OpenSTM32 SystemWorkbench for (WINDOWS/LINUX/MAC OS)

Learning order of FastBit Embedded Brain Academy Courses,

If you are a beginner in the field of embedded systems, then you can take our courses in the below-mentioned order.
This is just a recommendation from the instructor for beginners.

1) Microcontroller Embedded C Programming: absolute beginners(Embedded C)

2) Embedded Systems Programming on ARM Cortex-M3/M4 Processor(Optional )(ARM Cortex M4 Processor specific)

2) Mastering Microcontroller with Embedded Driver Development(MCU1)

3) Mastering Microcontroller: TIMERS, PWM, CAN, RTC,LOW POWER(MCU2)

4) Mastering RTOS: Hands-on FreeRTOS and STM32Fx with Debugging(RTOS)

5) ARM Cortex M Microcontroller DMA Programming Demystified(DMA)

6) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)

7) Embedded Linux Step by Step using Beaglebone Black(Linux)

Who this course is for:
  • Students in the field of Microcontroller and Embedded Systems
  • Professionals working in the field of Embedded systems
Course content
Expand all 73 lectures 07:30:40
+ Course Overview
3 lectures 05:12
Important Note
Source Code Repository
+ Introduction
1 lecture 06:17
What is Boot-Loader and Why it is needed ?
+ Development board used in our courses
5 lectures 21:22
Note for the students
About MCU Development board
STM32F4 Discovery and Nucleo : Board Details
ST-Link Driver Installation
ST Link Firmware Upgrade
+ KEIL-MDK-5 IDE setup for ARM Cortex M based MCUs
8 lectures 01:02:33
Note for the students
KEIL-MDK-5 Installation
KEIL-MDK-5 Installation Contd.
KEIL-MDK-5 Pack Installation
Locating Pack Installation files
Creating a KEIL Project
Creating a LED Toggling App using Board BSP APIs
Creating a LED Toggling App using Board BSP APIs-Nucleo
+ Installing OpenSTM32 System-Workbench
2 lectures 10:34
Downloading and Installing OpenSTM32 System-Workbench
Installing OpenSTM32 System-Workbench
+ STM32CubeMX
2 lectures 04:20
Note for the students
STM32CubeMX Installation
+ Exploring STM32 Native Bootloader
4 lectures 21:19
Activating ST’s Bootloader Part-1
Activating ST’s Bootloader Part-2
Activating ST’s Bootloader Part-3
Activating ST’s Bootloader Part-4
+ Custom Bootloader Communication with HOST
4 lectures 12:30
Bootloader Transport
Bootloader code placement
Bootloader Supported Commands
+ Boot-Loader Project Creation
2 lectures 18:27
Boot-Loader Project Creation
Bootloader Project Exploration Part-1