在Apple MAC书上为STM编译ARM二进制文件的问题

时间:2017-08-24 06:00:11

标签: c arm cross-compiling stm32 gnu-toolchain

我正在尝试在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编译器。

2 个答案:

答案 0 :(得分:1)

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

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

readme.txt from gcc-arm-embedded可以为您提供有关如何为目标体系结构选择最合适标志的一些提示。

答案 1 :(得分:0)

如果您是初学者,只需安装带有工具链的现成IDE。谷歌的openSTM32。这是一个eclipse +插件+工具链。

它将为您节省多天的Google搜索和配置