Course Overview
  • About the instructor
  • 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
BONUS LECTURE
  • BONUS LECTURE