CLion编译STM32记录V1.0.2

使用CLion编译STM32工程(Windows10)

版本日期描述
V1.0.020230112记录CLion编译STM32工程的过程,记录编译RT-Thread、记录调试过程
V1.0.120230229记录使用STM32CubeIde的ST-LINK_gdbserver工具调试工程的方式
V1.0.220240509jlink调试中,添加配置记录

一、工具安装

1.下载安装CLion

2.下载安装STM32CUBEMX

  • STM32CUBEMX需要先安装Java

3.下载解压OpenOCD

  • 解压内容如下:
  • 在这里插入图片描述
问题记录:OpenOCD解压目录推荐英文,且名称中无空格,避免出现以下错误:
Unexpected command line argument: Files\STMicroelectronics\STM32Cube\OpenOCD-202
11118-0.11.0\share\openocd\scripts...// 问题是由于安装在"Program Files"目录造成的

4.下载安装MinGw

  • 推荐安装在非C盘目录,安装完成后勾选安装以下内容:在这里插入图片描述
  • 添加环境变量:右键桌面左下角win图标,选择系统,在系统->高级系统设置->高级->环境变量->PATH添加路径
    在这里插入图片描述
  • 配置完成后,重启电脑,在命令查看验证安装是否成功:
  • 使用快捷键win+r,然后在运行输入cmd命令打开控制台:
    在这里插入图片描述
  • 输入命令gcc -v查看是否成功安装:
    在这里插入图片描述

5.下载解压GCC

在这里插入图片描述

  • 解压内容:
    在这里插入图片描述
  • 添加环境变量:右键桌面左下角win图标,选择系统,在系统->高级系统设置->高级->环境变量->PATH添加路径:
    在这里插入图片描述
  • 配置完成后,重启电脑,在命令查看验证安装是否成功:
  • 使用快捷键win+r,然后在运行输入cmd命令打开控制台:
    在这里插入图片描述
  • 输入命令arm-none-eabi-gcc -v查看是否成功安装:
    在这里插入图片描述

二、CLion配置

1.插件使用:

  • 选择File->Settings
    在这里插入图片描述
  • 选择Plugins在这里插入图片描述
  • 中文化:搜索chinese,选择安装
    在这里插入图片描述
  • VS配色:搜索visula,选择安装
    在这里插入图片描述

2 配置Toolchains

  • File->Settings->Build,Execution,Deployment,添加MinGW-STM32:
    在这里插入图片描述
  • 修改C CompilerC++ Compiler为之前的gcc目录:
    在这里插入图片描述
  • 配置完成后,在CMake栏下查看是否可以选择使用
    在这里插入图片描述

3.配置STM32CubeMX和OpenOCD

  • File->Settings->Build,Execution,Deployment->Embedded Development下添加软件对应路径:在这里插入图片描述

三、CLion使用

1.创建一个STM32工程进行测试

  • File->New->Project
    在这里插入图片描述
  • 选择STM32CubeMX,修改Location到自己想使用的目录,然后点击create创建
    在这里插入图片描述
  • 点击Open with STM32CubeMX,跳转到STM32Cubemx进行配置:在这里插入图片描述
    在这里插入图片描述
  • 要修改芯片,可以自己在stm32cubemx选择,只需要保证cubemx工程路径和clion生成的cubemx路径一致就行,目的是新生成的可以直接覆盖旧工程。在这里插入图片描述
  • 这里替换成了stm32F407vet6,cubemx配置完成后,点击GENERATE CODE生成,弹窗点击YES在这里插入图片描述
  • 回到Clion,会弹出板卡选择窗口,这些信配置文件主要和OpenOCD有关,不影响编译,这里没有我们用的,点击X先不进行配置。
    在这里插入图片描述
  • 然后现在可以编辑工程了,点击编译图标在这里插入图片描述
  • 编译完成如下:在这里插入图片描述

2.烧录与调试: openOCD-STLINKV2

  • 点击编译按钮旁边下拉框,选择Edit Configurations
    在这里插入图片描述
  • 点击+图标,选择OpenOCD Download & Run
    在这里插入图片描述
  • 配置OpenOCD Dowload & Run在这里插入图片描述
  • Board config file里需要添加的就是我们板子对应的配置文件,这里我们在工程里创建一个stlink.cfg在这里插入图片描述
  • 然后添加到OpenOCD配置里面在这里插入图片描述
  • 配置文件stlink.cfg修改:
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f4x.cfg]
adapter speed 10000
  • 下载固件,点击烧录图标:在这里插入图片描述
  • 点击调试图标,进行调试:
    在这里插入图片描述在这里插入图片描述

3.烧录与调试: JLINK-gdbserver

  • 配置jlink:在这里插入图片描述
  • 配置信息:
    在这里插入图片描述
    以下是填写的配置信息:
tcp:localhost:2331
G:\Program Files\SEGGER\JLink\JLinkGDBServer.exe
-device STM32F407VE -if SWD -speed 4000k
-device STM32F103C8 -if SWD -speed 4000k
  • 备注:调试时jlinkgdbserver会打开软件,在调试过程中不能关闭软件,关闭了就不能调试了。

4.烧录与调试:ST-LINK_gdbserver.exe

  • ST-LINK_gdbserver.exe是STM32CubeIDE的一个调试工具,这里要使用,需要先安装STM32CubeIDE
  • 配置gdb
    在这里插入图片描述
  • 其中GDB服务器选项是根据IDE里面的配置查找的,查找方式如下:
    在这里插入图片描述
    在这里插入图片描述
  • 通过ide的配置可以获取到如下内容:
G:\ST\STM32CubeIDE_1.10.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.win32_2.0.300.202203231527\tools\bin\ST-LINK_gdbserver.exe -p 61234 -l 1 -d -s -cp G:\ST\STM32CubeIDE_1.10.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.0.301.202207041506\tools\bin -m 0 -k
  • 添加tcp端口
    在这里插入图片描述

  • G:\ST\STM32CubeIDE_1.10.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.win32_2.0.300.202203231527\tools\bin\ST-LINK_gdbserver.exe填写到GDB服务器
    在这里插入图片描述

  • -p 61234 -l 1 -d -s -cp G:\ST\STM32CubeIDE_1.10.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.0.301.202207041506\tools\bin -m 0 -k填写到GDB服务器实参
    在这里插入图片描述

  • 然后就可以调试了,其他配置可以使用命令ST-LINK_gdbserver.exe -h查看
    在这里插入图片描述

  • 调试效果如下:
    在这里插入图片描述

四、rt-thread使用CLion

  • 使用的是4.0.5的rt-thread,通过env配置,在env输入命令scons --target=cmake,即可生成支持Clion的工程
    在这里插入图片描述
  • 生成完毕后,用CLion打开文件目录,然后调试和编译就和stm32cubemx生成的一致了。

1.rt-thread添加hex生成

  • 修改project\tools\cmake.py文件,该文件会生成CMakeList:修改如下,添加COMMAND ${CMAKE_OBJCOPY} -O ihex ${CMAKE_PROJECT_NAME}.elf
            cm_file.write("ADD_CUSTOM_COMMAND(TARGET ${CMAKE_PROJECT_NAME}.elf POST_BUILD \nCOMMAND ${CMAKE_OBJCOPY} -O binary ${CMAKE_PROJECT_NAME}.elf ${CMAKE_PROJECT_NAME}.bin \nCOMMAND ${CMAKE_OBJCOPY} -O ihex ${CMAKE_PROJECT_NAME}.elf ${CMAKE_PROJECT_NAME}.hex \nCOMMAND ${CMAKE_SIZE} ${CMAKE_PROJECT_NAME}.elf)")

附录:

参考内容

稚晖君:配置CLion用于STM32开发
嵌入式开发:配置CLion用于STM32开发
在 Clion 中调试 rt-thread 工程

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值