STM32上的空检查机构
1) 重置后GPIO不处于高阻抗2)对空设备编程后不执行用户代码在大多数STM32s上,重置后的GPIO配置为高阻抗,调试引脚除外。一些STM32s实现了所谓的空检查机制。。。
1) 重置后GPIO不处于高阻抗
2) 对空设备编程后未执行用户代码
在大多数STM32s上,复位后的GPIO配置为高阻抗,调试引脚除外。一些STM32s实现了所谓的空检查机制,当闪存中第一个地址的内容为空时,强制MCU引导到系统内存(ST引导加载程序)中。ST引导加载程序配置所有支持的通信接口和相关的GPIO。这允许对原始设备进行简单编程,但在组装的PCB上编程时可能会出现问题。如果引导程序引脚连接到GND或VDD,可能会导致额外的电流消耗,或者在最坏的情况下导致短路。成功编程后,必须按照特定程序引导到新编程的用户闪存中。仅仅重置设备是不够的。在下表中,您可以看到STM32系列空检查的可用性。
STM32系列 |
空的检查 | 臂 皮层® |
STM32型F0 | M0 | |
STM32型F1 | 立方米 | |
STM32型F2频率 | 立方米 | |
STM32型功能3 | M4毫米 | |
STM32型功能4 | M4毫米 | |
STM32型功能7 | M7 | |
STM32型10个 | M0+ | |
STM32型L1级 | 立方米 | |
STM32型第4页 | M4毫米 | |
STM32型十五 | 立方米3 | |
STM32型H7 | M7/M4毫米 | |
STM32型G0 | M0+ | |
STM32型G4型 | M4毫米 | |
STM32型世界银行 | M4/M0+ |

设备的完整列表
- STM32L4型+
- stm32周
- STM32G0型
- STM32F04x不锈钢
- STM32F09x不锈钢
- STM32F070x6不锈钢
- STM32F030xC型
- STM32L011x/STM32L021x
- STM32L41x/STM32L42x不锈钢
- STM32L43x STM32L44x不锈钢
- STM32L45x STM32L46x不锈钢
当BOOT0配置为选择用户闪存作为目标引导区域(BOOT0引脚连接到GND)时,使用空检查机制。当BOOT0引脚为高电平时,引导选择取决于BOOT1引脚或nBOOT1选项位。
防止在空设备上执行ST引导加载程序
- 保持nRST信号为低以保持设备处于复位状态
- 与调试器连接正在重置。在执行任何指令之前,也就是说,在系统引导加载程序初始化任何外围设备和GPIO之前,它使用重置矢量捕获实现与目标的连接
- 程序用户flash
- 在下次重置时清除要从用户闪存启动的空检查位
硬件在通电复位或重新加载选项字节时清除空校验位(请参阅参考手册中的OBL_LAUNCH)。在特定设备上还有两种额外的可能性
- 在STM32G0和STM32WB上,可以覆盖FLASH_ACR寄存器中的空检查标志
- STM32F04x和STM32F070x6上的系统引导程序可以检测到闪存不再为空。然后,它将引导内存映射更改为主闪存,并执行跳转到在那里编程的用户代码。
提示:在具有nSWBOOT0或nBOOT_SEL选项位(如STM32WB、STM32L4、STM332G0)的设备上,可以通过使用nBOOT0选项位而不是BOOT0引脚来强制从主闪存启动。这可以通过以下选项字节配置来实现: |
有关更多信息,请查看“STM32引导和启动提示”MOOC链接
上一篇: 如何在带有M1内核的Mac上安装STM32CubeIDE 下一篇: 外部加载程序源代码