由于工作的需要,最近学习了一下 STM32F4 MCU 中的 BootLoader。对比了 ST 的其他系列的的 MCU,关于 Bootloader 这部分原理基本都是一样的,无非就是配置项多少的区别。下面记录一下以 STM32F411 为例的学习历程。
引导模式
每个芯片对应的参考手册中都有这部分的介绍,在对应的翻译的中文手册中被称为自举模式。在 STM32F4xx 中,可通过 BOOT[1:0] 引脚选择三种不同的自举模式,如下图所示:
- 从 Main memory 引导: Main memory 被映射到为引导存储空间(0x00000000),但仍可以从其原始存储空间(0x08000000)中访问。 换句话说,可以从地址 0x00000000 或 0x08000000 开始访问 Main memory。在实际使用中,这种模式用的居多!
- 从 System memory 引导: System memory 被映射到为引导存储空间(0x00000000),但仍可以从其原始存储空间(0x1FFF0000)中访问。这部分存储空间中,存放了 ST 的 Boot 代码!不同的芯片里面的代码是有区别的,这个部分在手册 AN2606.pdf 中有详细的介绍。今天我们就来重点学习一下这部分。
- 从 SRAM 引导: