建筑 FreeRTOS 配 CMake - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

建筑 FreeRTOS 配 CMake

默认情况下,CMake 将主机操作系统作为目标系统。使用 CMake 对于交叉编译,您必须提供一个工具链文件,用于指定要使用的编译器。 FreeRTOS 在中提供了一些默认工具链文件 /tools/cmake/toolchains。使用工具链文件的说明因您使用的是 CMake 命令行界面或GUI。 生成构建文件(CMake 命令行工具) 具有更多详细信息。了解有关交叉编译的更多信息 CMake,请访问 交叉编译 官员 CMake 维基

要构建 CMake-基于项目

  1. 运行 CMake 为原生构建系统生成构建文件,如Make或Ninja。

    您可以使用 CMake命令行工具 CMake 图形用户界面 以生成本地构建系统的构建文件。

    有关生成 FreeRTOS 构建文件的信息,请参阅生成构建文件(CMake 命令行工具)生成构建文件 (CMake GUI)

  2. 调用本机构建系统,将项目制作为可执行文件。

    有关如何制作 FreeRTOS 构建文件的信息,请参阅从生成的构建文件构建 FreeRTOS

生成构建文件(CMake 命令行工具)

您可以使用 CMake 命令行工具(cmake)以生成的构建文件 FreeRTOS 从命令行。

要生成构建文件,您必须指定目标主板、编译器以及源代码和构建目录的位置。使用 -DVENDOR 选项。使用 -DCOMPILER 选项指定编译器。使用 -S 开关指定源代码的位置,并使用 -B 开关指定生成的构建文件的位置。

注意

编译器必须包含在系统的 PATH 变量中,否则您必须指定编译器的位置。

例如,如果供应商是 Texas Instruments,主板是 CC3220 Launchpad,编译器是 GCC for ARM,则您可以发出以下命令,从当前目录中的源文件构建到名为 build-directory 的目录:

cmake -DVENDOR=ti -DBOARD=cc3220_launchpad -DCOMPILER=arm-ti -S . -B build-directory
注意

如果您正在使用Windows,则必须指定本地构建系统,因为 CMake 默认情况下使用VisualStudio。例如:

cmake -DVENDOR=ti -DBOARD=cc3220_launchpad -DCOMPILER=arm-ti -S . -B build-directory -G Ninja

或者:

cmake -DVENDOR=ti -DBOARD=cc3220_launchpad -DCOMPILER=arm-ti -S . -B build-directory -G "MinGW Makefiles"

正则表达式 ${VENDOR}.*${BOARD}.* 用于搜索匹配的主板,因此对于 VENDORBOARD 选项,不必使用完整的供应商和主板名称。在只有单个名称匹配的情况下,部分名称也是可行的。例如,以下命令可从同一源文件生成相同的构建文件:

cmake -DVENDOR=ti -DCOMPILER=arm-ti -S . -B build-directory
cmake -DBOARD=cc3220 -DCOMPILER=arm-ti -S . -B build-directory
cmake -DVENDOR=t -DBOARD=cc -DCOMPILER=arm-ti -S . -B build-directory

您可以使用 CMAKE_TOOLCHAIN_FILE 选项,如果您希望使用不在默认目录中的工具链文件 cmake/toolchains。例如:

cmake -DBOARD=cc3220 -DCMAKE_TOOLCHAIN_FILE='/path/to/toolchain_file.cmake' -S . -B build-directory

如果工具链文件没有为您的编译器使用绝对路径,并且您没有将编译器添加到 PATH 环境变量, CMake 可能无法找到它。确保 CMake 查找您的工具链文件,您可以使用 AFR_TOOLCHAIN_PATH 选项。此选项搜索指定的工具链目录路径和工具链的子文件夹,路径位于 bin。例如:

cmake -DBOARD=cc3220 -DCMAKE_TOOLCHAIN_FILE='/path/to/toolchain_file.cmake' -DAFR_TOOLCHAIN_PATH='/path/to/toolchain/' -S . -B build-directory

要启用调试,请设置 CMAKE_BUILD_TYPEdebug。启用这个选项后, CMake 将调试标记添加到编译选项,并构建 FreeRTOS 带调试符号。

# Build with debug symbols cmake -DBOARD=cc3220 -DCOMPILER=arm-ti -DCMAKE_BUILD_TYPE=debug -S . -B build-directory

也可以将 CMAKE_BUILD_TYPE 设置为 release,将优化标志添加到编译选项。

生成构建文件 (CMake GUI)

您可以使用 CMake 要生成的GUI FreeRTOS 构建文件。

要使用生成构建文件 CMake 图形用户界面

  1. 从命令行中发出 cmake-gui 以启动 GUI。

  2. 选择 Browse Source (浏览源) 并指定源输入,然后选择 Browse Build (浏览构建) 并指定构建输出。

  3. 选择 Configure (配置),然后在 Specify the build generator for this project (指定此项目的构建生成器) 下,查找并选择构建系统,以用于构建所生成的构建文件。

    注意

    如果未显示弹出窗口,则您可能正在重用现有的构建目录。在这种情况下,删除 CMake 缓存首先通过单击 文件->删除 菜单中的缓存。

  4. 选择 Specify toolchain file for cross-compiling (指定用于交叉编译的工具链文件),然后选择 Next (下一步)

  5. 选择工具链文件(例如,/tools/cmake/toolchains/arm-ti.cmake),然后选择 Finish (完成)

    FreeRTOS 的默认配置为模板主板,该主板不提供任何可移植层目标。此时将显示一个窗口,其中显示消息 Error in configuration process (配置过程出错)

    注意

    如果您看到以下错误消息:

    CMake Error at tools/cmake/toolchains/find_compiler.cmake:23 (message): Compiler not found, you can specify search path with "AFR_TOOLCHAIN_PATH".

    这意味着编译器不在您的环境变量 PATH 中。您可以在GUI中设置AFR_TOOLCHAIN_PATH变量以 CMake 其中安装了编译器。如果您未看到 AFR_TOOLCHAIN_PATH 变量,请单击弹出窗口中的 Add Entry (添加条目) 按钮,输入 AFR_TOOLCHAIN_PATH 作为 name (名称),选择 PATH 作为 type (类型),并在 value (值) 中输入编译器路径,例如“C:/toolchains/arm-none-eabi-gcc”。

  6. GUI 现在应如下所示:

    选择 AFR_BOARD,选择主板,然后选择 Configure (配置)

  7. 选择 生成. CMake 生成构建系统文件(例如,makefiles或ninja文件),这些文件将显示在您在第一步中指定的构建目录中。按照下一节中的说明生成二进制映像。

从生成的构建文件构建 FreeRTOS

可以使用本机构建系统构建 FreeRTOS,方法是从输出二进制目录调用构建系统命令。例如,如果构建文件输出目录为 build-directory,并且您使用 Make 作为本机构建系统,则可运行以下命令:

cd build-directory make -j4

您还可以使用 CMake 用于构建的命令行工具 FreeRTOS. CMake 提供用于调用本地构建系统的抽象层。例如:

cmake --build build-directory

以下是一些其他常见的 CMake 命令行工具的构建模式:

# Take advantage of CPU cores. cmake --build build-directory --parallel 8
# Build specific targets. cmake --build build-directory --target afr_kernel
# Clean first, then build. cmake --build build-directory --clean-first

有关 CMake 构建模式,请参阅 C制作文档.