[STM32C0] gcc 报错 “processor does not support `cpsid i' in Thumb mode”

[复制链接]
91|0
HomeKit 发表于 2025-11-20 10:18 | 显示全部楼层 |阅读模式

我的目标是搭建一套系统:既能本地用于编程 / 调试,也能适配 CI 集成。
STM32C0(M0 内核)Makefile 编译问题:gcc 报错 “processor does not support `cpsid i' in Thumb mode”,感觉问题出在 Makefile 生成环节。
工具:STM32CubeIDE、STM32CubeMX
开发板: NUCLEO-C031C6 开发板
操作流程:
生成 CubeIDE 项目并添加简单的流水灯(blinky)代码→编译运行一切正常;
删除 CubeIDE 项目文件,通过 CubeMX 生成 Makefile;
通过 Chocolatey 安装 make,并将其路径添加到系统 “PATH” 环境变量;
配置 GCC_PATH 指向 ARM-GNU 工具链的 bin 目录;
在 CubeIDE 中创建 Makefile 项目并选择对应项目目录。
遇到的问题
编译时出现如下汇编错误:selected processor does not support cpsid i' in Thumb mode。
该错误在以下场景中均会触发:
无论是在 CubeIDE 中调用 make,还是通过命令行执行 make;
无论 GCC_PATH 指向独立的 ARM-GNU 工具链,还是指向 CubeIDE 自带的工具链(路径:cubeide...externaltools...gnu-tools...,已从 Program Files 目录复制出来)。
所以问题要么是 Makefile 配置不正确,要么是 GNU 工具链尚未支持这款芯片?
为完整呈现问题,以下是 Makefile 生成的、触发错误的 gcc 编译命令:
C:\arm-gnu\12.2-rel1\bin/arm-none-eabi-gcc -c -mthumb  -DUSE_HAL_DRIVER -DSTM32C031xx -ICore/Inc -IC:/Users/HansW/STM32Cube/Repository/STM32Cube_FW_C0_V1.0.1/Drivers/STM32C0xx_HAL_Driver/Inc -IC:/Users/HansW/STM32Cube/Repository/STM32Cube_FW_C0_V1.0.1/Drivers/STM32C0xx_HAL_Driver/Inc/Legacy -IC:/Users/HansW/STM32Cube/Repository/STM32Cube_FW_C0_V1.0.1/Drivers/CMSIS/Device/ST/STM32C0xx/Include -IC:/Users/HansW/STM32Cube/Repository/STM32Cube_FW_C0_V1.0.1/Drivers/CMSIS/Include -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/main.d" -Wa,-a,-ad,-alms=build/main.lst Core/Src/main.c -o build/main.o



您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

71

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部