1

我正在尝试在 Mac 上编译一个项目,但我遇到了很多错误。它在 Linux 上编译得很好。我参考了 STM 研讨会中包含的工具包。

从 /build/debug运行cmake ../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=../../tools/toolchain/nucleo_f746zg.cmake时,我得到以下输出..

/var/folders/fg/ldkpxwvn45v5y854s4zsw_b00000gn/T//ccBDWJKO.s:404: Error: selected processor does not support `dsb' in ARM mode
/var/folders/fg/ldkpxwvn45v5y854s4zsw_b00000gn/T//ccBDWJKO.s:407: Error: selected processor does not support `isb' in ARM mode
make[2]: *** [platform/nucleo-f746zg/CMakeFiles/alesi-platform-nucleo-f746zg.dir/osal/freertos/os_context.c.obj] Error 1
make[1]: *** [platform/nucleo-f746zg/CMakeFiles/alesi-platform-nucleo-f746zg.dir/all] Error 2
make: *** [all] Error

有人对此有建议吗?如何为 ARM 编译代码?我正在运行 ARM GNU 工具并使用 arm-none-eabi-g++ 和 arm-none-eabi-gcc 编译器。

4

2 回答 2

1

STM32 系列微控制器基于 Cortex 内核,它们无法运行 ARM 指令集,它们使用 Thumb-1 和 Thumb-2。

对于 STM32F4 系列,我使用-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16.

gcc-arm-embedded中的readme.txt可以为您提供一些关于如何为您的目标架构选择最合适标志的提示。

于 2017-08-24T07:43:59.640 回答
0

如果您是初学者,只需安装带有工具链的现成 IDE。谷歌开放STM32。它是一个 Eclipse + 插件 + 工具链。

它将为您节省很多天的谷歌搜索和配置

于 2017-08-24T08:38:05.603 回答