STM32 · CUBEMX · GCC
STM32 CubeMX 工程云端构建
STM32 工程和 STC 不同:它通常由 CubeMX 生成,包含启动文件、链接脚本、HAL 驱动和 Makefile。MCU Pilot 不要求你在本机安装 arm-none-eabi-gcc,而是把完整工程交给 Worker 构建。
一、先在 CubeMX 里生成完整工程
- 选择具体 STM32 型号和封装。
- 配置时钟树、调试接口(SWD)和需要的外设。
- Toolchain 选
Makefile,不要只生成 IDE 工程。 - 生成后确认目录里有
Makefile、Core/、Drivers/和启动文件。
只上传 .ioc 文件不够。云端构建需要完整源码、Makefile 和链接脚本。
二、上传 ZIP 并选择目标
把整个 CubeMX 工程目录打成 ZIP,在 MCU Pilot 的 STM32 工作台上传。系统会检查工程结构,把 ZIP 送到 Worker,执行 make -j1。
构建队列一次只跑一个任务,避免小内存服务器被并发编译拖垮。等待时会显示排队状态,不会静默卡住。
三、看日志定位
GCC 的错误通常比 C51 更明确:
Core/Src/main.c:88: undefined reference to `HAL_GPIO_Init' collect2: error: ld returned 1 exit status
这类错误先看链接阶段缺少哪个源文件或库,再看 CubeMX 是否真的把对应外设生成进工程。不要只让 AI 改 main.c,链接错误往往在工程结构。
四、产物与烧录
构建成功后会返回 .elf / .hex / .bin 等产物。用 ST-LINK 连接 SWD:
- 确认目标板供电和 SWDIO/SWCLK/GND 连接。
- 确认没有开启读保护,或先解除保护。
- 烧录后复位,再看串口日志。
AI 在 STM32 工程里的边界
AI 适合改应用层逻辑、状态机、串口协议和注释;不应擅自改时钟树、链接脚本、启动文件或中断向量。涉及这些文件时,先让 AI 解释,再由工程师确认。
常见问题
没有本机 GCC 可以吗?
可以。STM32 构建在 Worker 上完成,本机只需要浏览器和 ST-LINK 驱动。
为什么构建要排队?
Worker 资源有限,串行构建可以保证每个工程的编译稳定性,避免内存不足导致随机失败。
CubeMX 重新生成后要重新上传吗?
要。工程结构变了,云端需要最新 ZIP。