我对 GNU GCC ARM 编译器还很陌生。我需要找到正确的 ARM 编译器类型(CM4F、CM0 等)。我知道这取决于目标,但为了简单起见,我只是使用一个现有的示例。我真的很想看看是否有命令行解决方案或编译器指令来找出到底需要哪一个。但是,我使用的是 verbose,相反,我只是得到“arm-none-eabi”,我不确定为什么,对于示例应用程序,它是 CM4F。如果我还不知道答案是 CM4F,我该如何找出答案?预先感谢!
我已经尝试过:
详细的编译器命令/指令(抱歉,我并不总是擅长精确的技术定义)。
查看 GNU GCC ARM 文档(在线,快速搜索)
GCC 的
arm
目标包括所有受支持的 32 位 ARM 架构和 CPU。您可以在编译程序时使用 -march
/-mcpu
/-mtune
选项选择所需的选项。有关详细信息,请参阅https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gcc/ARM-Options.html。架构和 CPU 列表分别位于 -march
和 -mtune
选项下。
所以如果你想编译只需要在 Cortex M4 上运行的代码,你可以使用
-mcpu=cortex-m4
。如果您想要向后兼容 ARMv6,但想要在 Cortex M0 上获得最佳性能,请使用 -march=armv6 -mtune=cortex-m0
。