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

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

FreeRTOS 使用 进行构建 CMake

CMake 默认情况下, 会将主机操作系统作为目标系统。要使用 CMake 进行交叉编译,请提供工具链文件以指定要使用的编译器。您可以在 中找到一些示例。/tools/cmake/toolchains.

如果您使用的编译器不同于随 提供的编译器FreeRTOS,请在FreeRTOS使用 构建之前编写此工具链文件CMake。 您还必须在 CMAKE_TOOLCHAIN_FILE 读取顶级CMake文件之前设置 CMakeLists.txt 变量。CMAKE_TOOLCHAIN_FILE 变量指定要使用的编译器并设置一些CMake变量,例如系统名称和默认搜索路径。有关使用 进行交叉编译的更多信息CMake,请参阅官方 Wiki 上的交叉编译CMake。

CMakeLists.txt 和工具链文件必须位于正确的位置。FreeRTOS 在使用 构建 之前CMake,请确保您已在本地计算机上设置FreeRTOS目录结构以匹配 FreeRTOS上的GitHub目录结构。 有关说明,请参阅 README.md 文件。

构建基于 CMake的项目

  1. 运行 CMake 为本机构建系统(如 Make 或 Ninja)生成构建文件。

    您可以使用 CMake 命令行工具CMake GUI 为本机构建系统生成构建文件。

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

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

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

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

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

要生成构建文件,请运行 cmake。 对于 DVENDOR 选项,指定供应商。对于 DBOARD 选项,请指定主板。对于 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使用 Visual Studio。例如:

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 "Unix 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_TYPE 设置为 debug。 启用此选项后, 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 GUI 生成构建文件

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

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

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

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

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

    FreeRTOS 的默认配置为模板主板,该主板不提供任何可移植层目标。因此,将显示一个包含消息的窗口 .

  6. GUI 现在应如下所示:

    选择 AFR_BOARD,选择您的主板,然后再次选择 Configure (配置)。

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

从生成的构建文件构建 FreeRTOS

可以使用本机构建系统构建 FreeRTOS,方法是从输出二进制目录调用构建系统命令。例如,如果构建文件输出目录为 build,并且您使用 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构建模式的更多信息,请参阅 CMake 文档