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

标签 c arm cross-compiling stm32 gnu-toolchain

我正在尝试在 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/

相关文章:

c - 将复合文字分配给数组指针会在同一地点和时间同时给出预期结果和垃圾?

c - realloc 收缩失败

CC110L 拒绝包裹 - 只有重置有帮助

ios - 在 iOS 上复制原始类型是原子的吗?

OpenCV 使用 TBB 为 ARM 配置(Ubuntu,3.0.63)

c++ - GCC:__attribute__ ((format (printf, x, y)) 在使用可变参数宏调用函数时似乎不起作用

为 iOS 编译半浮点 neon 指令

android - 在 getrrsetbyname.c 中交叉编译适用于 Android 的 OpenSSH 失败

linux - 适用于 Linux 的 Xscale 编译器? (还有 Xscale 编译标志问题)

我可以跳过 cmake 编译器测试或避免 "error: unrecognized option ' -rdynamic'"