There are currently no items in your shopping cart.

User Panel

Forgot your password?.

STM32Fx Microcontroller Custom Bootloader Development

Course Overview :
Course Overview
Important Note
Source Code Repository

Introduction :
What is Boot-Loader and Why it is needed ?

MCU memory, Reset Sequence and Boot configs :
MCU-Embedded Memory Organization
Understanding Reset Sequence and memory Aliasing of the MCU
Boot Configurations of the STM32 MCU.

Development board used in our courses :
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 :
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 :
Downloading and Installing OpenSTM32 System-Workbench
Installing OpenSTM32 System-Workbench

STM32CubeMX :
Note for the students
STM32CubeMX Installation

Exploring STM32 Native Bootloader :
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 :
Bootloader Transport
Bootloader code placement
Bootloader Supported Commands
Host - Bootloader Communication

Boot-Loader Project Creation :
Boot-Loader Project Creation
Bootloader Project Exploration Part-1

Boot-Loader UART Testing :
Command UART testing
Debug UART Testing

Boot-loader Jumping to User Code :
Boot-loader Jumping to User application Part-1
Boot-loader Jumping to User application Part-2
Boot-loader Jumping to User application Part-3
Flash Code Placement using OpenSTM32 System Workbench
Vector Table offset Register(VTOR) use case
Boot-loader Jumping to User application Part-4

Boot-loader Read Commands from Host :
Boot-loader command format
Boot-loader read commands implementation
Command Handle Functions Implementation

Implementing BL_GET_VER Command :
Boot-loader Command Handling Flow-Chart
BL_GET_VER Handle Function Implementation
Boot-Loader ACK/NACK Implementation
Boot-Loader Verify CRC
Sending BL_GET_VER_CMD Reply
BL_GET_VER_CMD Testing Part-1
Python Installation on Host
Python Pyserial module installation
BL_GET_VER_CMD Testing Part-2
BL_GET_VER_CMD Debugging

Implementing BL_GET_HELP_CMD :
BL_GET_HELP_CMD Implementation and Testing

Implementing BL_GET_CID_CMD :
BL_GET_CID_CMD Implementation and Testing

Implementing BL_GET_RDP_LEVEL_CMD :
Understanding Flash Read Protection Levels
BL_GET_RDP_LEVEL Command Testing

Implementing BL_GET_GO_TO_ADDR_CMD :
BL_GO_TO_ADDR Command Implementation
BL_GO_TO_ADDR Command Testing

Implementing BL_FLASH_ERASE_CMD :
BL_FLASH_ERASE Command Implementation
BL_FLASH_ERASE Command Implementation contd.
Testing Flash Sector Erase
Testing Flash Mass Erase

Implementing BL_MEM_WRITE_CMD :
BL_MEM_WRITE Commadn Implementation
BL_MEM_WRITE Command Testing

Options Bytes and Flash Sector Protection :
Options Bytes Programming
Implementing Flash Sector Protection Commands
Summary of the commands

Exploring HOST Application :
HOST application Source files and Details
Procedure to Add your own command