Ubuntu 上使用 CLion+cubemx+openocd 开发 STM32
简述
后面需要在 linux 下学习驱动开发,然后不想玩虚拟机,就直接安装了双系统。用 kde 桌面玩的蛮开心的,就索性把 win 下的开发内容都搬过来吧
在 Linux 下开发 STM32,使用 Clion 和 Cubemx 开发,openocd 调试,关于芯片下载,编译器选项,代码起始内容都需要自行通过工程的配置文件修改,不依靠 keil5 的 IDE 选项界面,用起来虽然说麻烦了点,但对于整个单片机系统启动、运行、配置的相关内容来说,学习起来会更深入些。
环境版本
- 操作系统: Kubuntu22.04.3
- Clion: CLion 2023.2.2
- CubeMX: CubeMX 6.9.2
- Openocd: Openocd 0.12.0
- 试验板子: Art-pi ——STM32H750XBH6
- 仿真器: STlink-v2
下载 Clion
clion 是 jetbrains 全家桶里的一个,收费,可以试用一个月
- 学生可以免费使用,只需要提供校园邮箱或者学信网学籍证明注册一个账号即可。
- 下载完成后解压,找到目录里的安装脚本即可(clion.sh)
- 安装完成后,可以在软件目录里找到 Clion,向桌面添加即可,或者使用软链接到桌面,也可以自行创建.desktop 文件,输入相关内容。
下载 CubeMX
- 下载后解压,执行解压目录下的可执行文件,选择默认安装位置即可
- 添加桌面快捷方式:这个我在软件目录里没有找到,就在桌面创建了个 CubeMX.desktop 文件,用于快捷访问 CubeMX。
CubeMX.desktop 文件
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=STM32CubeMX
Exec=/home/augety/STM32CubeMX/STM32CubeMX
Terminal=false
Type=Application
Icon=/home/augety/Pictures/Icon/cubemx.png
StartupWMClass=STM32CubeMX
Categories=Development;IDE;
Comment=STM32CubeMX
下载 openocd
apt 直接安装
sudo apt install openocd
编译安装
#github下载
git clone git://git.code.sf.net/p/openocd/code openocd
#安装依赖
sudo apt-get install build-essential pkg-config autoconf automake libtool libusb-dev libusb-1.0-0-dev libhidapi-dev libtool libsysfs-dev
#引导生成环境
./bootstrap
#配置
./configure
测试
#执行版本查询命令
openocd -version
#输出版本信息
Open On-Chip Debugger 0.12.0+dev-00344-gf76c8de91 (2023-10-05-02:13)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
openocd: invalid option -- 'e'
安装 stlink 驱动
下载后安装 deb 包
安装 arm 编译器
sudo apt install gcc-arm-none-eabi
配置 clion
- 打开设置>构建、执行、部署>嵌入式开发
配置相关工具路径,点击测试。
新建项目,注意项目命名
会自动运行 CubeMX 并且配置出一个 F030 的工程。
- 这里 clion 会自动将目标型号芯片的配置文件复制到工程里 选择 复制到项目并使用
- 我们选择点击工程目录里的.ioc 文件,选择 通过 STM3CubeMX 打开
- 打开后修改相关内容即可
- 注意最后工程名字,并配置为 STM32CubeIDE
- 生成文件后,更新工程,在左边目录里进入用户代码。
- 点击右上角编译,点击运行下载,点击调试进行调试
其他具体操作可以自行尝试,包括汉化插件、主题、添加自定义文件夹等等。
相关小操作
官方提供的配置文件里有些小问题
openocd 下载的代码不能自动复位,需要手动复位,这里修改.cfg 的 21 行
添加自定义文件,直接在目录里添加即可,添加相关依赖时,选择默认即可
不要选择添加到目标,否则编译会报错,创建后,更新cmake然后编译即可。
参考链接
ubuntu 使用 clion 搭建 stm32 开环境使用 stlink 下载调试
Ubuntu 下 OpenOCD+GDB 的安装、编译及使用
欢迎访问我的博客