本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 CMake 配 FreeRTOS
您可以使用 CMake 生成项目构建文件 FreeRTOS 应用程序源代码,以及用于构建和运行源代码。
您还可以使用IDE编辑、调试、编译、闪存和运行代码 FreeRTOS-合格的设备。每个主板特定的入门指南提供了针对特定平台设置 IDE 的指南。如果您更喜欢在没有IDE的情况下工作,可以使用其他第三方代码编辑和调试工具来开发和调试您的代码,然后使用 CMake 以构建和运行应用程序。
以下主板支持 CMake:
-
Espressif ESP32-DevKitC
-
Espressif ESP-WROVER-KIT
-
英飞龙XMC4800 IoT 连接套件
-
Marvell MW320 AWS IoT 初学者工具包
-
Marvell MW322 AWS IoT 初学者工具包
-
Microchip Curiosity PIC32MZEF Bundle
-
Nordic nRF52840 DK 开发工具包
-
STMicroelectronicsSTM32L4发现套件 IoT 节点
-
Texas Instruments CC3220SF-LAUNCHXL
-
Microsoft Windows Simulator
有关使用的更多信息,请参阅以下主题 CMake 配 FreeRTOS.
Prerequisites
请先确保主机符合以下先决条件,然后再继续:
-
您的设备的编译工具链必须支持机器的操作系统。 CMake 支持所有版本的Windows, macOS、和Linux
不支持 Windows Subsystem for Linux (WSL)。使用本机 CMake 在Windows计算机上。
-
您必须有 CMake 版本3.13或更高版本已安装。
您可以下载 CMake 从 CMake.org公司
. 注意 如果您下载了的二进制分发 CMake,请确保添加 CMake 可执行到PATH环境变量中,然后使用 CMake 从命令行。
您还可以下载和安装 CMake 使用包管理器,例如 内花
于 macOS,和 勺子 或 巧克力色 在Windows上。 注意 的 CMake 许多Linux发行版的包管理器中提供的包版本已过时。如果您分发的软件包管理器不提供最新版本的 CMake,您可以尝试备用包管理器,例如
linuxbrew
或nix
. -
必须具有兼容的本机构建系统。
CMake 可以针对许多本机构建系统,包括 GNU Make
或 Ninja 。Make和Ninja均可在Linux上安装包管理器, macOS 和Windows。如果在 Windows 上使用 Make,则可从 Equation 安装独立版本,或安装捆绑了 Make 的 MinGW 。 注意 使可执行 MinGW 被称为
mingw32-make.exe
,而不是make.exe
.我们建议使用 Ninja,因为它不仅速度快于 Make,还可提供对所有桌面操作系统的本机支持。
使用第三方代码编辑器和调试工具开发 FreeRTOS 应用程序
您可以使用代码编辑器和调试扩展或者第三方调试工具来为 FreeRTOS 开发应用程序。
例如,如果您使用 Visual Studio Code
对于调试,您可以向 VS Code 提供类似于下文的调试配置:
"configurations": [ { "name": "Cortex Debug", "cwd": "${workspaceRoot}", "executable": "./build/st/stm32l475_discovery/aws_demos.elf", "request": "launch", "type": "cortex-debug", "servertype": "stutil" } ]
建筑 FreeRTOS 配 CMake
默认情况下,CMake 将主机操作系统作为目标系统。要将其用于交叉编译, CMake 需要一个工具链文件,该文件用于指定要使用的编译器。英寸 FreeRTOS,我们提供默认工具链文件
。将此文件提供给 CMake 取决于您是否使用 CMake 命令行界面或GUI。有关更多详细信息,请按照以下生成构建文件(CMake 命令行工具)说明进行操作。有关交叉编译的更多信息 CMake,请参阅 交叉编译freertos
/tools/cmake/toolchains
要构建 CMake-基于项目
-
运行 CMake 为原生构建系统生成构建文件,如Make或Ninja。
可以使用 CMake 命令行工具
或 CMake GUI 为本机构建系统生成构建文件。 有关生成 FreeRTOS 构建文件的信息,请参阅生成构建文件(CMake 命令行工具)和生成构建文件 (CMake GUI)。
-
调用本机构建系统,将项目制作为可执行文件。
有关如何制作 FreeRTOS 构建文件的信息,请参阅从生成的构建文件构建 FreeRTOS。
生成构建文件(CMake 命令行工具)
您可以使用 CMake 命令行工具(命令)生成构建文件 FreeRTOS. 要生成构建文件,您需要指定目标主板、编译器以及源代码和构建目录的位置。
您可以对 cmake 使用以下选项:
-
-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}.*
用于搜索匹配的主板,因此对于 VENDOR
和 BOARD
选项,不必使用完整的供应商和主板名称。在只有单个名称匹配的情况下,部分名称也是可行的。例如,以下命令可从同一源文件生成相同的构建文件:
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 图形用户界面
-
从命令行中发出
cmake-gui
以启动 GUI。 -
选择 Browse Source (浏览源) 并指定源输入,然后选择 Browse Build (浏览构建) 并指定构建输出。
-
选择 Configure (配置),然后在 Specify the build generator for this project (指定此项目的构建生成器) 下,查找并选择要用于构建所生成的构建文件的构建系统。如果您未看到弹出窗口,则可能正在重用现有的构建目录。在这种情况下,删除 CMake 通过选择 删除缓存 从 文件 菜单。
-
选择 Specify toolchain file for cross-compiling (指定用于交叉编译的工具链文件),然后选择 Next (下一步)。
-
选择工具链文件(例如,
),然后选择 Finish (完成)。freertos
/tools/cmake/toolchains/arm-ti.cmakeFreeRTOS 的默认配置为模板主板,该主板不提供任何可移植层目标。结果,将出现一个窗口,其中包含消息 .
注意 如果您看到以下错误:
CMake Error at
tools/cmake/toolchains/find_compiler.cmake:23
(message): Compiler not found, you can specify search path withAFR_TOOLCHAIN_PATH
.这意味着编译器不在您的
PATH
环境变量中。您可以设置AFR_TOOLCHAIN_PATH
的变量,以告知 CMake 其中安装了编译器。如果您未看到AFR_TOOLCHAIN_PATH
变量,请选择 Add Entry (添加条目)。在弹出窗口中, 名称,类型AFR_TOOLCHAIN_PATH
。低于 编译器路径 键入编译器的路径。例如,C:/toolchains/arm-none-eabi-gcc
. -
GUI 现在应如下所示:
选择 AFR_BOARD,选择主板,然后选择 Configure (配置)。
-
选择 生成. CMake 生成构建系统文件(例如,makefiles或ninja文件),这些文件将显示在您在第一步中指定的构建目录中。按照下一节中的说明生成二进制映像。
从生成的构建文件构建 FreeRTOS
使用本机构建系统构建
可以使用本机构建系统构建 FreeRTOS,方法是从输出二进制目录调用构建系统命令。
例如,如果构建文件输出目录为 <build_dir>
,并且您使用 Make 作为本机构建系统,则可运行以下命令:
cd <build_dir> make -j4
建筑使用 CMake
您还可以使用 CMake 用于构建的命令行工具 FreeRTOS. CMake 提供用于调用本地构建系统的抽象层。例如:
cmake --build
build_dir
以下是一些其他常见的 CMake 命令行工具的构建模式:
# Take advantage of CPU cores. cmake --build
build_dir
--parallel 8
# Build specific targets. cmake --build
build_dir
--target afr_kernel
# Clean first, then build. cmake --build
build_dir
--clean-first
有关 CMake 构建模式,请参阅 C制作文档