L6406E:程序太大,超出 Flash 或 RAM
STM32 常见问题 · 排查从第 L3 层开始
日志里常见的字样
L6406EL6407ENo space in execution regionsregion FLASHRAM overflowedwill not fit in region这条报错说明什么
编译出的代码或变量超过了芯片容量。STM32F103C8 标称 64 KB Flash、20 KB RAM。
先做这一步
打开优化(-O1 或 -Os);大数组加 const 放进 Flash;去掉不用的库文件;printf 浮点格式很占空间,能不用就不用。
按顺序排查,别跳步
- L0供电:核对供电与指示灯
- L1连接:确认 USB、驱动与端口
- L2烧录:检查模式、工具与配置
- L3最小程序:建立独立运行基线
断开外设,运行与板型匹配的 LED 或串口最小程序。 - L4串口:确认运行日志
- L5外设:逐个验证接线和通信
STM32 Blue Pill 的注意事项
- 具体 GPIO 耐压请按数据手册核对,不能把全板当作 5V 耐受。
- PC13 LED 通常为低电平点亮。
- PA13 / PA14 是 SWD 调试接口。
- 代码模板提供标准库(Keil)、HAL 库(CubeMX / CubeIDE / Keil)和 STM32duino 三种;串口输出固定用 USART1(PA9 TX),需要 USB 转串口模块。
- 下载用 ST-Link(SWD)或 USB 转串口 + BOOT0=1;网页烧录暂不支持 STM32。
相关问题
板伴 Boardly · 给硬件初学者的免费排错工具。内容依据公开资料整理,尚未逐条经过实物验证,请以实际测量为准。