The bootloader is stored in the internal boot ROM memory (system memory) of STM32 devices.

It is programmed by ST during production.

Its main task is to download the application program to the internal Flash memory

through one of the available serial peripherals (USART, CAN, USB, I2C, SPI, etc.).

A communication protocol is defined for each serial interface,

with a compatible command set and sequences.

This document applies to the products listed in Table 1.

They are referred as STM32 throughout the document.

STM32L0 series:

STM32L051xx, STM32L052xx, STM32L053xx, STM32L062xx, STM32L063xx

STM32L1 series.

STM32L4 series:

STM32L476xx, STM32L486xx

STM32F0 series:

STM32F03xxx, STM32F04xxx, STM32F05xxx, STM32F07xxx,STM32F098xx

STM32F1 series.
STM32F2 series.

STM32F3 series:

STM32F301xx, STM32F302xx, STM32F303xx, STM32F318xx,STM32F328xx,
STM32F334xx, STM32F358xx, STM32F373xx, STM32F378xx, STM32F398xx

STM32F4 series:

STM32F401xx, STM32F405xx, STM32F407xx, STM32F411xx,STM32F415xx,
STM32F417xx, STM32F427xx, STM32F429xx,STM32F437xx, STM32F439xx,
STM32F446xx

STM32F7 series:

STM32F74xxx, STM32F75xxx

The main features of the bootloader are the following:
• It uses an embedded serial interface to download the code with a predefined communication protocol
• It transfers and updates the Flash memory code, the data, and the vector table sections

This application note presents the general concept of the bootloader.

It describes the supported peripherals and hardware requirements to be considered when using the bootloader of STM32 devices.

However the specifications of the low-level communication protocol for each supported serial peripheral are documented in separate documents.

For specifications of the USART protocol used in the bootloader, refer to AN3155.

For the specification of the CAN protocol used in the bootloader, refer to AN3154.

For the specification of the DFU (USB device) protocol used in the bootloader, refer to AN3156.

For the specification of the I2C protocol used in the bootloader, refer to AN4221.

For the specification of the SPI protocol used in the bootloader, refer to AN4286.

F0 Series:

STM32F03xxx is used to refer to STM32F030x4, STM32F030x6, STM32F038x6,STM32F030xC, STM32F031x4 and STM32F031x6 devices.
STM32F04xxx is used to refer to STM32F042x4 and STM32F042x6 devices.
STM32F05xxx and STM32F030x8 devices is used to refer to STM32F051x4,STM32F051x6, STM32F051x8, STM32F058x8 and STM32F030x8 devices.
STM32F07xxx is used to refer to STM32F070x6, STM32F070xB, STM32F071xB, STM32F072x8 and STM32F072xB devices.
STM32F09xxx is used to refer to STM32F091xx and STM32F098xx devices.

F1 Series:

STM32F10xxx is used to refer to Low-density, Medium-density, High-density, Lowdensity  value line, Medium-density value line and High-density value line devices:
Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.
Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes.
High-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 256 and 512 Kbytes.
Low-density value line devices are STM32F100xx microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.
Medium-density value line devices are STM32F100xx microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes.
High-density value line devices are STM32F100xx microcontrollers where the Flash memory density ranges between 256 and 5128 Kbytes.
STM32F105xx/107xx is used to refer to STM32F105xx and STM32F107xx devices.
STM32F10xxx XL-density is used to refer to STM32F101xx and STM32F103xx devices where the Flash memory density ranges between 768 Kbytes and 1 Mbyte.

F2 Series:

STM32F2xxxx is used to refer to STM32F215xx, STM32F205xx, STM32F207xx and SMT32F217xx devices.

F3 Series:
STM32F301xx/302x4(6/8) is used to refer to STM32F301x4, STM32F301x6, STM32F301x8, STM32F302x4, STM32F302x6 and STM32F302x8 devices.
STM32F302xB(C)/303xB(C) is used to refer to STM32F302xB, STM32F302xC, STM32F303xB and STM32F303xC devices.
STM32F302xD(E)/303xD(E) is used to refer to STM32F302xD, STM32F302xE, STM32F303xD and STM32F303xE devices.
STM32F303x4(6/8)/334xx/328xx is used to refer to STM32F303x4, STM32F303x6, STM32F303x8, STM32F334x4, STM32F334x6, STM32F334x8, and STM32F328x8 devices.
STM32F318xx is used to refer to STM32F318x8 devices.
STM32F358xx is used to refer to STM32F358xC devices.
STM32F373xx is used to refer to STM32F373x8, STM32F373xB and STM32F373xC devices.
STM32F378xx is used to refer to STM32F378xC devices.
STM32F398xx is used to refer to STM32F398xE devices.

F4 Series:

STM32F40xxx/41xxx is used to refer to STM32F405xx, STM32F407xx, STM32F415xx and SMT32F417xx devices.
STM32F401xB(C) is used to refer to STM32F401xB and STM32F401xC devices.
STM32F401xD(E) is used to refer to STM32F401xD and STM32F401xE devices.
STM32F411xx is used to refer to STM32F411xD and STM32F411xE devices.
STM32F42xxx/43xxx is used to refer to STM32F427xx, STM32F429xx, STM32F437xx and STM32F439xx devices
STM32F446xx is used to refer to STM32F446xE and STM32F446xC devices

F7 Series:

STM32F74xxx/75xxx is used to refer to STM32F745xx and STM32F746xx and STM32F756xx devices.

L0 Series:

STM32L05xxx/06xxx is used to refer to STM32L051xx, STM32L052xx, STM32L053xx, STM32L062xx and STM32L063xx ultralow power devices.

L1 Series:
STM32L1xxx6(8/B) is used to refer to STM32L1xxV6T6, STM32L1xxV6H6,
STM32L1xxR6T6, STM32L1xxR6H6, STM32L1xxC6T6, STM32L1xxC6H6,
STM32L1xxV8T6, STM32L1xxV8H6, STM32L1xxR8T6, STM32L1xxR8H6,
STM32L1xxC8T6, STM32L1xxC8H6, STM32L1xxVBT6, STM32L1xxVBH6,
STM32L1xxRBT6, STM32L1xxRBH6, STM32L1xxCBT6 and STM32L1xxCBH6 ultralow power devices.

STM32L1xxx6(8/B)A is used to refer to STM32L1xxV6T6-A, STM32L1xxV6H6-A,
STM32L1xxR6T6-A, STM32L1xxR6H6-A, STM32L1xxC6T6-A, STM32L1xxC6H6-A,
STM32L1xxV8T6-A, STM32L1xxV8H6-A, STM32L1xxR8T6-A, STM32L1xxR8H6-A,
STM32L1xxC8T6-A, STM32L1xxC8H6-A, STM32L1xxVBT6-A, STM32L1xxVBH6-A,
STM32L1xxRBT6-A, STM32L1xxRBH6-A, STM32L1xxCBT6-A and STM32L1xxCBH6-A ultralow power devices.

STM32L1xxxC is used to refer to STM32L1xxVCT6, STM32L1xxVCH6 ,STM32L1xxRCT6, STM32L1xxUCY6, STM32L1xxCCT6 and STM32L1xxCCU6 ultralow power devices.
STM32L1xxxD is used to refer to STM32L1xxZDT6, STM32L1xxQDH6,
STM32L1xxVDT6, STM32L1xxRDY6, STM32L1xxRDT6, STM32L1xxZCT6,
STM32L1xxQCH6, STM32L1xxRCY6, STM32L1xxVCT6-A and STM32L1xxRCT6-A ultralow power devices.

STM32L1xxxE is used to refer to STM32L1xxZET6, STM32L1xxQEH6, STM32L1xxVET6, STM32L1xxVEY6, and STM32L1xxRET6 ultralow power devices.

L4 Series:
STM32L476xx/486xx is used to refer to STM32L476xE, STM32L476xG and STM32L486xG devices

Note:

BL_USART_Loop refers to the USART Bootloader execution loop.
BL_CAN_Loop refers to the CAN Bootloader execution loop.
BL_I2C_Loop refers to the I2C Bootloader execution loop.
BL_SPI_Loop refers to the SPI Bootloader execution loop.

最新文章

  1. 关于SQL储存过程中输出多行数据
  2. github的pull request是指什么意思?有什么用处
  3. EChart使用简单介绍
  4. 关于Task类
  5. Python文件基础
  6. Nmap 網路診斷工具基本使用技巧與教學
  7. JAVA基础-子类继承父类实例化对象过程
  8. windows7 64bit下安装Oracle 11g R2
  9. http://c7sky.com/works/css3slides/#1
  10. DbUtils组件
  11. 第九篇:随机森林(Random Forest)
  12. [html]------行内元素与块级元素
  13. C# 中的#if、#elif、#else、#endif等条件编译符号
  14. H5 字符实体
  15. mysql5.5.48的my.cnf配置
  16. 【Ansible】ansible循环
  17. 【DUBBO】Dubbo原理解析-Dubbo内核实现之SPI简单介绍
  18. 阻塞队列之三:SynchronousQueue同步队列 阻塞算法的3种实现
  19. spring boot aop打印http请求回复日志包含请求体
  20. linux c 监控目录

热门文章

  1. Zookeeper命名服务——生成分布式有序且唯一id
  2. 关于gb2312编码和utf8码的一个问题
  3. Phantomjs 抓取、分析某个页面加载时浏览器发起的所有的子请求
  4. 百度编辑器ueditor 字符限制
  5. linux挂载mount参数优化
  6. CentOS下配置MySQL允许root用户远程登录
  7. list的几种new方式比较ImmutableList
  8. PHP转盘抽奖算法
  9. Oracle学习笔记:a inner join b与from a,b where a.x=b.x的差异
  10. kafka配置监控和消费者测试