讲师中心 微信公众号
AI工具推荐 视频效率加速

CLion嵌入式开发有哪些技巧

云静小哥_1207

云静小哥_1207

发布时间:2026-09-14 12:28:15

|

984人浏览过

|

来源于php中文网

原创

Clion嵌入式开发需确保arm-none-eabi-gcc、OpenOCD、STM32CubeMX三者路径无空格/中文且版本匹配;CMakeLists.txt必须显式声明交叉编译目标、HAL宏定义及头文件路径,并手动重载CMake项目;OpenOCD调试需选对ST-Link配置文件与SVD文件,且调试时须暂停才能查看寄存器。

clion嵌入式开发有哪些技巧

Clion 嵌入式开发不是“装完就能用”,关键在于工具链协同和调试链路的稳定性。只要 arm-none-eabi-gccopenocdSTM32CubeMX 三者路径干净、版本对得上,90% 的编译失败和断点失效问题都能绕开。

Clion 中 CMake 配置必须显式声明交叉编译目标

Clion 默认按宿主机(x86_64)构建,不加约束会静默生成错误架构的二进制。CMakeLists.txt 里漏掉这几行,工程就只是个“能编辑但不能跑”的空壳:

  • set(CMAKE_SYSTEM_NAME Generic)
  • set(CMAKE_SYSTEM_PROCESSOR ARM)
  • set(CMAKE_C_COMPILER arm-none-eabi-gcc)
  • set(CMAKE_CXX_COMPILER arm-none-eabi-g++)

如果用 STM32CubeMX 生成的工程,还要补上:add_definitions(-DSTM32F103xB -DUSE_HAL_DRIVER)include_directories(...) 路径,否则 HAL_GPIO_TogglePin 这类函数会报未定义。

OpenOCD 调试配置容易卡在“Waiting for GDB client”

这不是 Clion 的锅,而是 OpenOCD 启动参数或硬件连接没对齐。常见触发点:

CLion 2026.2.0.1
CLion 2026.2.0.1

CLion 2026.2.0.1 官方历史版本安装包,适合旧项目兼容、开发环境回退、工具链验证、CMake 配置复现和调试行为对比等场景使用。

下载
  • ST-Link 驱动未安装或版本太老(尤其 Windows 上,必须用 ST 官方 STSW-LINK009 或新版 STSW-LINK007
  • OpenOCD 配置文件路径写错,比如用了 stlink-v2.cfg 却连的是 ST-Link V3 —— 应该用 stlink-v3.cfg
  • Clion 的 Run Configuration 中 “GDB Server configuration” 选了 OpenOCD Download and Run,但没填对 Configuration file(通常是 interface/stlink.cfg + target/stm32f1x.cfg 两行)
  • 板子供电不足或 SWD 引脚接触不良,OpenOCD 日志里会出现 Unable to match requested speed 1000 kHz, using 950 kHz 后直接超时

STM32CubeMX 生成代码后,Clion 头文件索引失效

现象是:函数名有高亮、能跳转,但 #include "stm32f1xx_hal.h" 报红,HAL_Delay 提示 “Cannot find declaration”。根本原因是 Clion 没把 Drivers 目录加入头文件搜索路径。解决方式:

  • 手动在 CMakeLists.txt 中加 include_directories(${CMAKE_SOURCE_DIR}/Drivers/STM32F1xx_HAL_Driver/Inc)${CMAKE_SOURCE_DIR}/Core/Inc
  • 不要依赖 CubeMX 自动生成的 include_directories —— 它有时只写进 Makefile,Clion 的 CMake 解析器看不到
  • 改完 CMakeLists.txt 后,必须点 Clion 右上角的 Reload CMake project 图标(不是重启 IDE),否则索引不会更新

调试时外设寄存器显示为 0 或无法刷新

Clion 的 Peripherals 视图依赖 SVD 文件(System View Description)。没加载或加载错 SVD,看到的全是 0x00000000:

  • SVD 文件必须和芯片型号严格匹配,stm32f103.svd 不能用于 stm32f103c8t6(虽然同属 F1 系列,但外设地址偏移可能不同)
  • Clion 中打开 Peripherals 标签页后,点击齿轮图标 → “Select SVD file”,路径要指向真实文件,不能是相对路径或缩写
  • 推荐从 cmsis-svd 仓库下载对应型号的最新 SVD,别用 CubeMX 自带的旧版
  • 即使 SVD 正确,也要确保调试已暂停(不是运行中),否则寄存器值不会实时同步

最常被忽略的一点:所有路径——Clion 的 Toolchain 设置、CMake 的 CMAKE_C_COMPILER、OpenOCD 的 config 文件路径、SVD 文件路径——都不能含空格或中文。哪怕只在 C:\Program Files\ 里装了一个工具,后续所有调试失败都可能源于此。

热门AI工具

更多
切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

相关专题

更多
AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

140

2026.09.16

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

60

2026.09.16

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

60

2026.09.16

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

40

2026.09.16

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

40

2026.09.16

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

360

2026.09.11

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

120

2026.09.11

GDB C++程序怎么调试
GDB C++程序怎么调试

本专题围绕GDB调试C++程序的实际过程,详细说明程序编译、调试器启动、命令行参数传入、断点命中和程序继续运行等步骤,并介绍条件断点、临时断点和观察点的设置方法,方便开发者跟踪复杂代码的执行状态。

140

2026.09.11

Iris框架MVC架构与依赖注入合集
Iris框架MVC架构与依赖注入合集

本专题讲解Iris框架MVC开发模式,包含控制器注册、方法命名与路径映射、By参数绑定、BeforeActivation自定义路由,以及依赖注入容器注册、数据库依赖注入、返回值序列化及MVC下WebSocket与gRPC整合实践。

80

2026.09.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn