我正在尝试在 Mac 上编译一个项目,但出现了很多错误。它在 Linux 上编译得很好。我引用了 STM workshop 中包含的工具包。
当从/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 编译器。
最佳答案
STM32 系列微 Controller 基于 Cortex 内核,它们无法运行 ARM 指令集,它们使用 Thumb-1 和 Thumb-2。
对于 STM32F4 系列,我使用像 -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16
这样的标志。
readme.txt from gcc-arm-embedded可以为您提供一些有关如何为您的目标架构选择最合适的标志的提示。
关于c - 在 Apple MAC book 上为 STM 编译 ARM 二进制文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45853997/