CMake 工具链文件:嵌入式开发的适当值"CMAKE_SYSTEM_PROCESSOR"

CMake toolchain file: Appropriate value of `CMAKE_SYSTEM_PROCESSOR` for embedded development

本文关键字:quot CMAKE PROCESSOR SYSTEM 文件 工具 嵌入式 开发 CMake      更新时间:2023-10-16

在尝试阅读文档并阅读互联网上的其他示例后,我开始为嵌入式CMake指定以下变量。

set(CMAKE_SYSTEM_NAME Generic)
#set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_SYSTEM_PROCESSOR cortex-m3)

我已经尝试了armcortex-m3作为提供给CMAKE_SYSTEM_PROCESSOR的值,但我仍然必须使用以下标志手动识别编译的架构。

add_compile_options(
-mcpu=cortex-m3
-mthumb
)

我本以为这些看似明显的标志会被 CMake 抽象出来,并通过指定CMAKE_SYSTEM_PROCESSOR的值来拾取。

我是否搞砸了一些明显的东西,或者我应该在我的 CMake 工具链文件中使用不同的变量?

你的假设是错误的。所有 arm 处理器都不同。

举个例子,这里有一些 arm 内核可能具有的硬件选项:

  • 拇指-1 指令
  • 拇指-2 指令
  • 硬件乘法(32/32/32 和 32/
  • 32/64(
  • DSP
  • 单精度浮点硬件
  • 双精度浮点硬件
  • 信任区域
  • 共处理器
  • 还有更多...

因此,不存在单个臂芯,更不用说M3核心了,它因硬件制造商的实现而异。

因此,您必须为 arm 内核指定编译器选项。