Ubuntu 64位 CLion+stm32cube 环境搭建

目录

文章目录

  • 目录
    • 1、前言
    • 2、软件环境
      • 2.1、openocd配置相关
      • 2.2、arm-none-eabi-gcc
      • 2.3、Stm32CubeMX
      • 2.4、配置系统
        • 2.4.1、删除无用的配置文件
        • 2.4.2、编写烧录配置文件
        • 2.4.3、 修改usb权限
      • 2.5、CLion配置相关
        • 2.5.1、软件安装
        • 2.5.2、新建工程
        • 2.5.3、配置软件
    • 3、坑汇总
        • 3.1、Error: init mode failed (unable to connect to the target)
        • 3.2、Error: libusb_open() failed with LIBUSB_ERROR_ACCESS

1、前言

在日常学习中,使用keil编写stm32的程序太正常不过,但是keil的自动补全非常的差劲,不仅效果不好还经常死机,如果你想要更好的代码编写体验,希望本文能给大家提供一些帮助。CLion为收费软件,其余的都是免费的,CLion是我认为在除了windows环境下体验最好的IDE了,Stm32CubeMX是stm32hal库的自动代码生成工具,能极大的节约项目的底层代码编写时间。windows安装步骤差不多,但是编译器安装比较繁琐,所以在ubuntu下安装比较方便。

2、软件环境

Ubuntu 16.04Lts
Stm32CubeMX 4.27
CLion 2019.2
OpenOCD 0.10.0
arm-none-eabi-gcc 9-2019-q4

2.1、openocd配置相关

官方git地址:git://git.code.sf.net/p/openocd/code(实在慢,不是一般的慢)
官方git镜像地址:git://repo.or.cz/openocd.git(推荐)
csdn下载:https://download.csdn.net/download/dielaoji0733/12043524
最简单的安装方式是apt安装:

sudo apt install openocd

这个版本比较老很多新的器件不支持,比如stm32h7,推荐源码安装。

#先安装依赖
sudo apt install build-essential pkg-config autoconf automake libtool libusb-dev libusb-1.0-0-dev libhidapi-dev
sudo apt install libtool libsysfs-dev
#编译安装
cd openocd
sudo ./bootstrap
sudo ./configure
sudo make
sudo make install

测试安装是否成功

openocd --version

2.2、arm-none-eabi-gcc

直接apt安装没有什么问题,但是版本比较老,推荐源码安装。

#apt安装
sudo apt install gcc-arm-none-eabi

官方下载地址:https://links.jianshu.com/go?to=https%3A%2F%2Fdeveloper.arm.com%2Ftools-and-software%2Fopen-source-software%2Fdeveloper-tools%2Fgnu-toolchain%2Fgnu-rm%2Fdownloads
csdn:https://download.csdn.net/download/dielaoji0733/12043555

#解压包放到任何路径下即可
vim /etc/profile #最后添加以下环境变量,记得改路径
export PATH=$PATH:/usr/local/gcc-arm-none-eabi-9-2019-q4-major/bin 

重启计算机,验证安装成功

arm-none-eabi-gcc -v

2.3、Stm32CubeMX

官方网址:https://www.st.com/en/development-tools/stm32cubemx.html
先安装jre环境

sudo apt install default-jre

下载zip包,stm32cubemx 5.0以上版本解压后直接双击.linux文件安装即可。本人不喜欢5.0以上的界面,故安装4.27版本。由于需要32位系统支持,所以安装i386支持

sudo apt install libc6-i386

2.4、配置系统

2.4.1、删除无用的配置文件

为了使用方便,可以把其他的板子的配置文件都删了。

sudo rm -r /usr/local/share/openocd/scripts/board/*

2.4.2、编写烧录配置文件

新建一个文件,名字随便起

sudo vim /usr/local/share/openocd/scripts/board/stm32h7xx.cfg
#写入以下内容
source [find interface/stlink-v2.cfg] #仿真器配置文件
source [find target/stm32h7x.cfg] #目标芯片配置文件

其他型号的仿真器和芯片的配置文件到以下目录找,将上面的内容修改成对应的文件名即可。

/usr/local/share/openocd/scripts/interface	#仿真器
/usr/local/share/openocd/scripts/target		#芯片

2.4.3、 修改usb权限

使用lsusb命令查看usb设备,本人的stlink设备如下

Bus 003 Device 005: ID 0483:3748 STMicroelectronics ST-LINK/V2

新建一个文件,以增加对usb设备的访问权限

sudo vim /etc/udev/rules.d/stlink.rules	#文件名随意,以.rules结尾
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", GROUP="users", MODE="0666"

重启电脑

2.5、CLion配置相关

2.5.1、软件安装

clion官方下载地址:https://www.jetbrains.com/clion/download/other.html
汉化包地址(不想用中文可以不装):https://github.com/pingfangx/jetbrains-in-chinese
这里使用一个插件来支持stm32,File->Settings->Plugins,搜索openocd,点击install安装。
Ubuntu 64位 CLion+stm32cube 环境搭建_第1张图片

2.5.2、新建工程

直接用stm32cubemx生成指定的工程文件,ide选择SW4STM32(重要)。生成完成后直接用CLion打开该文件夹即可。
Ubuntu 64位 CLion+stm32cube 环境搭建_第2张图片

2.5.3、配置软件

路径为对应的可执行程序路径,点test测试路径是否正确。
Ubuntu 64位 CLion+stm32cube 环境搭建_第3张图片
选择烧录配置文件。
Ubuntu 64位 CLion+stm32cube 环境搭建_第4张图片
Ubuntu 64位 CLion+stm32cube 环境搭建_第5张图片
在这里插入图片描述
直接点运行就可以烧录了。

3、坑汇总

3.1、Error: init mode failed (unable to connect to the target)

  • 检查线是否连接正确,电源,仿真器是否工作正常
  • 之前的工程,没有预留debug引脚,程序烧录不进去,遇到这个问题可以使用stm32cubemx生成一个新的工程,sys-debug选择Serial Wire,把boot0和boot1接到vcc上,复位一次,这时应该可以正常烧录,把该工程烧录进去,boot0和boot1接回到gnd,再复位一次。如果还不能烧录下电重新再试。切记以后生成工程时一定要开启Debug,否则下一次无法烧录。
    Ubuntu 64位 CLion+stm32cube 环境搭建_第6张图片

3.2、Error: libusb_open() failed with LIBUSB_ERROR_ACCESS

usb打开失败,可能是没有权限,确认2.4.3步骤是否正确执行。

你可能感兴趣的:(Ubuntu 64位 CLion+stm32cube 环境搭建)