简述
后面需要在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, readhttp://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行
-
添加自定义文件,直接在目录里添加即可,添加相关依赖时,选择默认即可
-
然后直接编译会报错,需要删除CMakeLists.txt里的一些新内容。
参考链接
ubuntu 使用clion 搭建stm32开环境使用stlink下载调试
Linux上 openocd的安装和使用
Ubuntu下OpenOCD+GDB的安装、编译及使用