CLion-2025 嵌入式开发调试环境详细搭建
0 前言
Keil功能很强大,但是界面和支持已经落后时代了。而Keil的debug体验仍没有更好的IDE可以替代,因此之前都是用VsCode+KeilAssistant编辑,用Keil编译下载和调试。
偶然的机会,发现CLion除了超棒的代码编辑外,还可以获得Keil般的Debug体验,而且CLion非商用是免费的,因此本文提供CLion的嵌入式开发调试环境搭建过程。
之前已经有很多大佬发过CLion的教程了,但是最新版本的CLion有了一些改变,因此写一篇帖子帮助最新使用的小伙伴们,也记录一下防止自己忘记。
- 终竟的花海——【嵌入式】CLion & CubeMX __推荐IDE
- StriverLite——【教程】手把手教你用Clion进行STM32开发【如何优雅の进行嵌入式开发】
- 稚晖——配置CLion用于STM32开发【优雅の嵌入式开发】
1 环境
1.1 软件环境
- Windows 11 24H2
- CLion 2025.1.1
- STM32CubeMX 6.14.1
- STM32CubeCLT 1.18.0
- gcc-arm-none-eabi-10.3-2021.10
- OpenOCD 20240916
- JLink V7.88
1.2 硬件环境
- STM32F407ZGT6 正点原子EXPLORER开发板
- JLink-V9
2 准备工作
2.1 安装CLion
下载传送门:CLion 2025.1.1
下载完成后正常安装就行,安装选项这里我一个都没有选,因为还不想创建文件关联。
创建一个文件夹,用于存放嵌入式开发需要用到的环境,我这边的目录是:
D:\CLion\Environment\STM32
CLion的安装到这里就完成了,暂时不用打开,先把其他的东西安装好。
2.2 安装STM32CubeMX
下载传送门:STM32CubeMX
正常安装即可,过程略。
注:新版本的CLion应该搭配新版本的STM32CubeMX使用,因为旧版本的STM32CubeMX不支持生成cmake。
2.3 安装STM32CubeCLT
下载传送门:STM32CubeCLT
下载完成后解压,会得到5个压缩包。
其中后缀为_x86_64的是我们需要的,将这个压缩文件解压,会得到安装exe文件。
正常安装即可,过程略。
2.4 准备编译工具链
下载传送门:GNU Arm Embedded Toolchain Downloads
把下载后的压缩包解压到上面创建的CLion环境目录下,即D:\CLion\Environment\STM32
。解压后的目录结构如下:
将bin文件的目录加入到系统的环境变量中:
此电脑->右键进入属性->高级系统设置->高级->环境变量->系统变量->编辑Path->新建->确定->确定->确定
我这边的目录是:D:\CLion\Environment\STM32\gcc-arm-none-eabi-10.3-2021.10\bin
在cmd中输入:arm-none-eabi-gcc -v
,看是否配置成功。
2.5 OpenOCD
下载传送门:OpenOCD
把下载后的压缩包解压到上面创建的CLion环境目录下,即D:\CLion\Environment\STM32
。解压后的目录结构如下:
3 CLion配置
点击右下角齿轮,并选择settings。
在左侧选择Embedded Development,在右边配置三个目录。
- OpenOCD Location:
D:\CLion\Environment\STM32\OpenOCD-20240916-0.12.0\bin\openocd.exe
- Stm32CubeMX Location:
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeMX\STM32CubeMX.exe
(换为你的STM32CubeMX的可执行文件路径) - Stm32CubeCLT Location:
C:\ST\STM32CubeCLT_1.18.0
(换为你的STM32CubeCLT路径)
配置好后点击OK退出。
在左侧选择工具链,修改C编译器和C++编译器目录,选择我们前面解压好的编译器文件夹中,bin目录下的arm-none-eabi-gcc.exe
和arm-none-eabi-g++.exe
。
- C编译器目录:
D:\CLion\Environment\STM32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe
- C++编译器目录:
D:\CLion\Environment\STM32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-g++.exe
’
配置好后点击OK退出。
4 创建工程
首先需要用CubeMX创建一个新工程,可以直接打开CubeMX创建,也可以在CLion中打开CubeMX创建。
这里在CLion中打开CubeMX创建。
打开CubeMX后,选择ACCESS TO MCU SELECTOR,进入MCU选择器。
这里硬件使用的是正点原子STM32F407ZGT6 EXPLORER开发板,因此选择STM32F407ZGT6,然后Start。
这里创建一个简单的工程,让开发板上的两颗LED闪烁。
LED引脚为PF9和PF10,点击这两个引脚,配置为GPIO输出。
其余的均保持默认设置。
选择Project Manager,配置好名称、目录后,选择Toolchain为CMake,然后GENERATE CODE。
(再次提醒,低版本CubeMX该选项没有CMake)
过程中让安装什么库就安装什么库,根据指示操作即可。
CubeMX代码生成完毕,关闭CubeMX即可。
创建好的目录结构如下所示:
回到CLion,位置选择刚才创建的工程目录。该目录下应该有CMakeLists.txt。
我这里弹了个窗,先不管他,选择确定。
在main.c的主循环中,加入以下闪灯代码。
while (1){/* USER CODE END WHILE */HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9|GPIO_PIN_10, GPIO_PIN_RESET);HAL_Delay(500);HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9|GPIO_PIN_10, GPIO_PIN_SET);HAL_Delay(500);/* USER CODE BEGIN 3 */}
点击右上角的锤子,编译。
5 JLink 下载 & 调试
在设置-高级设置中,搜索debug,勾选“启用调试服务器”,点击确定。
重新进入设置,依次点开构建、执行、部署->调试器->调试服务器,新建SEGGER J-Link。
修改可执行文件位置,我这里是C:\Program Files (x86)\SEGGER\JLink\JLinkGDBServerCL.exe
。
修改设备,选择STM32F407ZG
,点击确定退出。
点击右上角的右箭头,把程序下载到MCU中。
点击下面的“服务”一栏,可以看到JLINK的Command输出。
下载完程序后,需要手动复位一下开发板,然后就能看到开发板闪灯了。
点击右上角的debug,进入调试模式。
6 其它
6.1 关于JLINK复位
现在下载完还要手动给板子复位(通过NRST引脚),目前看来重置设备中的monitor reset
命令是无效的。
我尝试将这个命令改为JLink的复位命令r
,有时候可以成功下载并复位,有时候就根本下不进去程序了。
因此在上面的流程里面没有动这里的设置。如果你遇到下载的问题,很有可能就是修改这里导致的。
因此后面还会研究一下原因和手段。
7 结语
本人也是刚接触CLion,经验尚且不足,如遇到问题请多参考大佬的文章。
欢迎大家随时评论区交流问题,一起进步!