当我尝试使用ARM Cortex-M4编译某些代码时,出现了以下错误:
gcc -mcpu=cortex-m4 arm.c
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
arm.c:1: error: bad value (cortex-m4) for -mtune= switch
我正在关注GCC 4.7.1 ARM选项,不确定是否缺少某些重要选项。任何有关使用GCC编译ARM的启动指南都将非常有帮助。
正如错误信息所说,-mcpu已被弃用,您应该使用其他选项。然而,“deprectated”仅意味着其使用可能不再得到支持;它仍将起作用。
ARM Cortex-M4是ARM架构V7E-M,因此您应该使用-march=armv7-m
(文档没有明确列出armv7e-m
,但自文档上次更新以来可能已添加)。 E
实际上是M3和M4之间的区别 - DSP指令,因此编译器不会生成利用这些指令的代码。使用ARM的Cortex-M DSP库可能是利用这些指令使您的应用受益的最佳方法。如果您的部件具有FPU,则需要其他选项才能启用针对其的代码生成。
gcc
吗?gcc -dumpmachine
输出什么? - starbluenewlib
(或者其他一些C库)? - starblue