硬汉嵌入式论坛

 找回密码
 立即注册
查看: 649|回复: 13
收起左侧

[其它] CLion写代码,keil或IAR编泽,配合CMAKE跳转提示超级给力!

[复制链接]

2

主题

10

回帖

16

积分

新手上路

积分
16
发表于 2026-6-11 17:29:49 | 显示全部楼层 |阅读模式
最近开发转到keil,实在忍受不了keil的代码编辑功能,最开始尝试用VSC配合keil的插件, 但提示跳转有时失效,变量、宏波浪线很多
,非常不爽,这2天试了一上clion,CLion 2026.2 EAP版本上图:


配合CMAKE,编写代码超级超级舒服,2天下来,没有VSC奇奇怪怪问题,clion使用起来非纯净,
提示跳转非常快,大家可以尝试一下!
不过用clion如果工程比较复杂,得写CMAKEList.txg, 把keil工程的头文件包含进来.
直接用clion打开CMAKEList.txt就可以!



CMAKEList.txt可以套这个模板,主要是包含头文件,源文件:


#---------------- CMAKEList.txr 内容 ----------------
cmake_minimum_required(VERSION 4.3) # 本cmake 要求最低版本
project(HC32F46X_rtx5_mdk) # 项目命名
set(CMAKE_CXX_STANDARD 20) # 支持C++标准(C++20)

#-------------------------------- 设置包含路径 --------------------------------
#--- ${var}: 引用cmake变量值,并就地展开
#                ${CMAKE_CURRENT_SOURCE_DIR}:引用CMAKEList.txt所有目录(CMAKE工作目录)
#                最好把所有待编辑代码和目录放到与CMAKEList.txt同目录
set(RAW_PATHS
        ${CMAKE_CURRENT_SOURCE_DIR}/bsp/inc   # 添加包含: ./bsp/inc
        ${CMAKE_CURRENT_SOURCE_DIR}/inc   # 添加包含: ./inc
        ${CMAKE_CURRENT_SOURCE_DIR}/devlib   # 添加包含: ./devlib
        ${CMAKE_CURRENT_SOURCE_DIR}/devlib/hc32_ll_driver/inc   # 添加包含: ./devlib/hc32_ll_driver/inc
        ${CMAKE_CURRENT_SOURCE_DIR}/devlib/cmsis/Include   # 添加包含: ./devlib/cmsis/Include
        ${CMAKE_CURRENT_SOURCE_DIR}/devlib/Device/HDSC/hc32f4xx/Include   # 添加包含: ./devlib/cmsis/HDSC/hc32f4xx/Include
        ${CMAKE_CURRENT_SOURCE_DIR}/emlib/eml   # 添加包含: ./emlib/eml
        ${CMAKE_CURRENT_SOURCE_DIR}/emlib/etl   # 添加包含第三方c++模板库: ./emlib/etl
        ${CMAKE_CURRENT_SOURCE_DIR}/mdk/RTE/_Debug  # 添加MDK RTE _Debug包含: ./mdk/RTE/_Debug
        ${CMAKE_CURRENT_SOURCE_DIR}/mdk/RTE/CMSIS  # 添加MDK RTE cmsis-rtx5包含: ./mdk/RTE/CMSIS
        ${CMAKE_CURRENT_SOURCE_DIR}/mdk/RTE/Device/HC32F460PETB # 添加MDK RTE Device包含: ./mdk/RTE/Device/HC32F460PETB
        D:/Keil_v5/AppData/Local\\Arm/Packs/ARM/CMSIS-RTX/5.9.1/Source # 添加MDK RTX包含
        D:\\Keil_v5\\AppData\\Local\\Arm\\Packs\\ARM\\CMSIS-RTX\\5.9.1\\Source\\GCC # 添加MDK RTX GCC包含
        D:\\Keil_v5\\AppData\\Local\\Arm\\Packs\\ARM\\CMSIS\\6.3.0\\CMSIS\\RTOS2\\Source # 添加MDK tick包含
        D:\\Keil_v5\\AppData\\Local\\Arm\\Packs\\ARM\\CMSIS\\6.3.0\\CMSIS\\RTOS2\\Include
)
file(TO_CMAKE_PATH "${RAW_PATHS}" ALL_INC_DIRS) #- 调用file(TO_CMAKE_PATH...)转为cmake路径格式
include_directories(${ALL_INC_DIRS})

# 输出所有包含目录
message(STATUS "==========包含目录==========")
if (ALL_INC_DIRS)
    foreach (DIR ${ALL_INC_DIRS})
        message(STATUS "    ${DIR}")
    endforeach ()
endif ()
message(STATUS "==========包含目录结束==========")

#-------------------------------- 设置源文件 --------------------------------
# ==================== 收集源文件 ====================
file(GLOB_RECURSE ALL_C_SOURCES
        "${CMAKE_CURRENT_SOURCE_DIR}/app/*.cpp"
        "${CMAKE_CURRENT_SOURCE_DIR}/bsp/*.cpp"
        "${CMAKE_CURRENT_SOURCE_DIR}/devlib/hc32_ll_driver/*.c"
        "${CMAKE_CURRENT_SOURCE_DIR}/emlib/eml/*.cpp"
        "${CMAKE_CURRENT_SOURCE_DIR}/mdk/RTE/Device/HC32F460PETB/*.c"
        "${CMAKE_CURRENT_SOURCE_DIR}/mdk/CMSIS/*.c"
        "D:/Keil_v5/AppData/Local/Arm/Packs/ARM/CMSIS-RTX/5.9.1/Source/*.c"
        "D:/Keil_v5/AppData/Local/Arm/Packs/ARM/CMSIS/6.3.0/CMSIS/RTOS2/Source/os_systick.c"
)

file(GLOB_RECURSE ALL_ASM_SOURCES
        "D:/Keil_v5/AppData/Local/Arm/Packs/ARM/CMSIS-RTX/5.9.1/Source/GCC/irq_armv7m.S"
        "${CMAKE_CURRENT_SOURCE_DIR}/mdk/RTE/Device/HC32F460PETB/*.s"
)

set(ALL_SOURCES ${ALL_C_SOURCES} ${ALL_ASM_SOURCES})
add_executable(clion ${ALL_SOURCES})

message(STATUS "==========工程源文件==========")
if(ALL_SOURCES)
    foreach (FILES ${ALL_SOURCES})
        message(STATUS "源文件{FILES}")
    endforeach ()
endif ()
message(STATUS "==========工程源文件结束==========")

# 项目内用到的符号
target_compile_definitions(clion PUBLIC
        __DEBUG
        HC32F460
        USE_DDL_DRIVER
)



回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123178
QQ
发表于 2026-6-12 00:01:50 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

26

主题

304

回帖

387

积分

高级会员

积分
387
发表于 2026-6-12 08:33:30 | 显示全部楼层
感觉SEGGER Embedded Studio就挺好用的,编译速度快,启动速度快,也不需要像keil要安装一堆包,代码编辑能力、提示、函数导航、跳转、调试也不差,还支持最新的C/C++标准,推荐大家试一下

点评

我觉得SEGGER Embedded studio插好用,但我用的小华MCU,人家不支持,我又不想浪费时间折腾,所以才用clion尝试下,国产芯片支持它的不多!  详情 回复 发表于 2026-6-12 22:27
回复

使用道具 举报

26

主题

304

回帖

387

积分

高级会员

积分
387
发表于 2026-6-12 08:33:37 | 显示全部楼层
感觉SEGGER Embedded Studio就挺好用的,编译速度快,启动速度快,也不需要像keil要安装一堆包,代码编辑能力、提示、函数导航、跳转、调试也不差,还支持最新的C/C++标准,推荐大家试一下
回复

使用道具 举报

12

主题

483

回帖

519

积分

金牌会员

积分
519
发表于 2026-6-12 08:36:18 | 显示全部楼层
clion唯一缺点是调试时,有时会不稳定,没有重启mcu按钮,。
回复

使用道具 举报

11

主题

770

回帖

803

积分

金牌会员

积分
803
发表于 2026-6-12 10:48:17 | 显示全部楼层
keil的优势应该就剩下调试了。还有一些老项目,不能动。
回复

使用道具 举报

82

主题

1450

回帖

1696

积分

至尊会员

积分
1696
发表于 2026-6-12 13:41:57 | 显示全部楼层
爱恋之燕 发表于 2026-6-12 08:33
感觉SEGGER Embedded Studio就挺好用的,编译速度快,启动速度快,也不需要像keil要安装一堆包,代码编辑能 ...

这玩意就是国产新片没法用。
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2026-6-12 22:27:53 | 显示全部楼层
爱恋之燕 发表于 2026-6-12 08:33
感觉SEGGER Embedded Studio就挺好用的,编译速度快,启动速度快,也不需要像keil要安装一堆包,代码编辑能 ...

我觉得SEGGER Embedded studio插好用,但我用的小华MCU,人家不支持,我又不想浪费时间折腾,所以才用clion尝试下,国产芯片支持它的不多!
回复

使用道具 举报

12

主题

483

回帖

519

积分

金牌会员

积分
519
发表于 2026-6-13 09:22:29 | 显示全部楼层
wdliming 发表于 2026-6-12 13:41
这玩意就是国产新片没法用。

基本都可以玩吧,国产芯片核心启动.s文件一般都支持好几个编译器的,
回复

使用道具 举报

82

主题

1450

回帖

1696

积分

至尊会员

积分
1696
发表于 2026-6-13 10:50:10 | 显示全部楼层
fxyc87 发表于 2026-6-13 09:22
基本都可以玩吧,国产芯片核心启动.s文件一般都支持好几个编译器的,

基本不能玩吧。
回复

使用道具 举报

2

主题

28

回帖

34

积分

新手上路

积分
34
发表于 2026-6-14 00:45:08 | 显示全部楼层
Clion编辑器 + GNU编译 + Ozone调试,我用过一段时间。后来被我替换成VSCode编辑器 + MDK6编译 + Ozone调试。
最大原因是gnu的编译器不太给力。单纯的切回keil、IAR编译又太麻烦。
另外SES整体的确是比较方便,界面也现代化一些,但缺少AI工具。用VSCode、CLion最大的好处是有很多AI插件可用。

点评

可以用脚本,调用IAR或者MDK编译,clion也会出现按键  详情 回复 发表于 2026-6-15 15:41
回复

使用道具 举报

1

主题

32

回帖

35

积分

新手上路

积分
35
发表于 2026-6-15 15:40:10 | 显示全部楼层
clion有些宏定义不支持,我掉过坑里
enable_irq()   后面的括号必须加上,但是clion标红,我删除了,IAR编译不报错,但是程序执行出问题了,中断没了,但是调试又没问题,后面发现IAR调试的时候默认打开中断,跟代码无关
回复

使用道具 举报

1

主题

32

回帖

35

积分

新手上路

积分
35
发表于 2026-6-15 15:41:18 | 显示全部楼层
JimmyChang 发表于 2026-6-14 00:45
Clion编辑器 + GNU编译 + Ozone调试,我用过一段时间。后来被我替换成VSCode编辑器 + MDK6编译 + Ozone调试 ...

可以用脚本,调用IAR或者MDK编译,clion也会出现按键
回复

使用道具 举报

14

主题

82

回帖

124

积分

初级会员

积分
124
发表于 2026-6-15 17:13:25 | 显示全部楼层
Keil让我舍不得扔的是RTX操作系统和它自带的一系列库(USB、Ethernet、File)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-6-25 17:52 , Processed in 0.686488 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表