【问题标题】:Unrecognized CPU by ARM gccARM gcc 无法识别 CPU
【发布时间】:2023-03-28 20:30:02
【问题描述】:

我想为 Stellaris 板编译一个 C 文件。 (皮层 m4) 但是编译器总是抛出以下错误:

Building file: ../main.c
Invoking: Cross GCC Compiler
arm-none-eabi-gcc -DPART_LM4F120H5QR -DARM_MATH_CM4 -DTARGET_IS_BLIZZARD_RA1 -I/home/erbal/src/stellaris -I/usr/lib/gcc/arm-none-eabi/4.5.1/include-fixed -I/usr/lib/gcc/arm-none-eabi/4.5.1/include -I/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include -O0 -g3 -Wall -c -fmessage-length=0 -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.c"
as: unrecognized option '-mcpu=cortex-m4'
subdir.mk:21: recipe for target 'main.o' failed
make: *** [main.o] Error 1

【问题讨论】:

  • -mcpu : 这个选项不被 gcc 识别。试试 -march 或 -mtune
  • 您是否注意到您的makefile 触发器as(汇编程序)没有前缀arm-none-eabi
  • 那我该怎么办? :)
  • -mthumb -mcpu=cortex-m3 -march=armv7-m
  • 根据从 4.6 更改 doc gcc 支持 cortex-m4。 gcc.gnu.org/gcc-4.6/changes.html

标签: c linux gcc arm archlinux


【解决方案1】:

除了 arm-none-eabi-gcc 之外,您还需要安装 arm-none-eabi-binutils 包。

【讨论】:

    【解决方案2】:

    您可以使用GCC -B 选项指定工具链二进制文件的前缀,因此使用交叉编译器而不是本机。

    【讨论】:

      【解决方案3】:

      需要将 arm-none-eabi-c++ 或 arm-none-eabi-gcc 与整个 gcc 文件夹放在一起[例如在 arm-none-eabi 文件夹中]。因为编译器也会依赖其他 binutils 组件/文件。

      【讨论】:

        【解决方案4】:

        假设您在 /usr/local/arduino-packages-1.6.8 有特定于 ARM EABI 的工具链,请确保 /usr/local/arduino-packages-1.6.8/arduino/tools/arm-none -eabi-gcc/4.8.3-2014q1/arm-none-eabi/bin 可读且在PATH环境变量中,其内容具有可执行权限。

        【讨论】:

          猜你喜欢
          • 2015-08-24
          • 1970-01-01
          • 1970-01-01
          • 2022-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-17
          • 1970-01-01
          相关资源
          最近更新 更多