在尝试阅读了文档并阅读了Internet上的其他示例之后,我着手为嵌入式CMake指定以下变量。
set(CMAKE_SYSTEM_NAME Generic)
#set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_SYSTEM_PROCESSOR cortex-m3)
我已经尝试将
arm
和cortex-m3
用作提供给CMAKE_SYSTEM_PROCESSOR
的值,但是我仍然必须使用以下标志手动标识要编译的体系结构。add_compile_options(
-mcpu=cortex-m3
-mthumb
)
我希望这些看似显而易见的标志会被CMake抽象化,并通过指定
CMAKE_SYSTEM_PROCESSOR
的值来拾取。我是否弄乱了明显的东西,还是应该在CMake工具链文件中利用不同的变量?
最佳答案
您的假设是错误的。所有 ARM 处理器都不同。
如以下示例所示, ARM 内核可能具有一些硬件选项:
因此,不存在单臂内核,更不用说M3了,每个硬件制造商的实现方式都不同。
因此,您必须为arm内核指定编译器选项。