嵌入式开发
本页面概述了如何将 CLion 用作您的嵌入式开发 IDE。 有关详细的功能描述和设置说明,请参阅本节中的专门文章。
硬件类型
CLion 支持 任何与 GCC 或 IAR 工具链兼容的硬件 的嵌入式开发。
一些示例:基于 ARM 的 MCU,例如 STM32 系列 ,Xtensa(ESP8266、 ESP32), mips32 (pic32),AVR8(Arduino), RISC-V。
对于 STM32 MCU 和开发板, CLion 集成了 STM32CubeMX。 您可以创建和打开 .ioc 项目,并将其自动转换为 CMake。 请注意,目前某些 STM32 芯片不受支持。
工具链和编译器
对于 ARM Cortex-M 和 Cortex-R MCU,请使用 GNU ARM 工具链。
安装工具链,确保其在您的系统中
PATH存在,并在 中设置工具。对于 STM32 MCU, STM32CubeMX 项目 设置包括安装 GNU ARM 工具链的步骤,CubeMX 将为您生成链接脚本和硬件支持库。
对于非 STM32 的 ARM MCU,您需要提供所需的库和链接脚本(可以从供应商处获取或使用供应商的标准示例手动创建)。
也支持与 GCC 兼容的非 ARM 芯片。 工具链设置将类似于 ARM 的情况(见上文)。
您可以使用 IAR Systems 的编译器。 CLion 对 IAR 工具链 的支持可在带有 MinGW 的 Windows 和 Linux 上使用。 请注意,CLion 不提供 IAR 许可证。
作为覆盖整个嵌入式环境的替代方案,请考虑通过 PlatformIO 插件 在 CLion 中支持的 PlatformIO 生态系统。 该插件提供了一个向导,用于创建基于 CMake 的 PlatformIO 项目、调试和上传的特殊配置,并允许从 IDE 运行 PlatformIO 操作。
构建系统
CMake
CLion 完全集成了 CMake ,并捆绑了最新的 CMake 版本之一,因此 CMake 可以被视为嵌入式项目的主要构建系统。
然而,CLion 提供的所有嵌入式开发功能(除 STM32CubeMX 和 PlatformIO 支持外)也适用于 Makefiles ,以及通过 自定义构建目标 配置的任何任意构建系统。
如果您决定将项目转换为 CMake,我们建议您使用我们的 模板 CMakeLists.txt 并根据需要进行调整:填写 TODO 部分并在必要时修改库路径。
Zephyr West
CLion 还支持基于 Zephyr RTOS 的项目。 您可以使用内置的 West 插件 打开、构建和运行/调试这些项目。 与 CLion 的 CMake 集成相比,West 集成提供了一种更本地化且更简单的方式来处理 Zephyr。
如果您有一个现有的 Zephyr 项目并将其作为 CMake 项目运行,您可以 将其转换为 West 项目。 您还可以将 West 项目转换回 CMake。
烧录和调试
CLion 支持使用 OpenOCD 或 GDB Server 在芯片上进行 调试。
GDB Server 是一个更通用的选项。 它涵盖了各种供应商特定的情况,例如 ST-Link/V2、Segger J-Link、QEMU、独立的 OpenOCD GDB 服务器、PE-Micro 等。
在 CLion 中,针对这两种选项都有特殊的运行/调试配置: OpenOCD 下载和运行 和 嵌入式 GDB 服务器。 对于 STM32CubeMX 项目,OpenOCD 配置会自动创建。
这些配置允许切换客户端调试器。 您可以在配置设置中直接选择工具链的 GDB 或 CLion 捆绑的 GDB(适用于 ARM 设备)。
当您启动调试会话时,CLion 会将调试器连接到 MCU 并上传您的二进制文件。 之后,运行在芯片上的固件可以使用 CLion 的完整调试功能集进行调试,其中包括 内存 和 反汇编 视图、 ARM 设备的外设视图 ,以及芯片复位操作。
PlatformIO 项目 可以使用 PIO Unified Debugger 进行调试,并且所有调试功能也都可用。
对于缺乏 GDB 支持的平台,不支持调试。 在这种情况下,目标芯片的烧录应使用特定的工具(例如 AVR 的 Avrdude )完成。
了解更多
除了网页帮助文章和常见问题解答,您可能还想查看 CLion 博客中关于嵌入式开发的以下文章: