前言:之前都是使用Windows平台开发单片机,自从使用Ubuntu之后,真的太香了。相同电脑硬件配置情况下,Ubuntu流畅的不行,于是开始使用Ubuntu开发单片机。
之前使用Jlink调试烧录单片机,想着STlink也应该可以,于是网上搜索STlink安装教程,恕我一个小白,尝试了网上论坛的各种方法,都失败了。不是到这步命令错误,就是到最后查看版本或者下载提示没有这条命令。
总算通过各种尝试,忙活了一小会搞好了(老子才不是搞了一个上午才弄好的)。下面是战术总结。
虚拟机:VirtualBox 6.1
使用系统:Ubuntu16.04
硬件主板:正点原子潘多拉开发板
下载器版本:STMicroelectronics ST-LINK/V2.1 (Nucleo-F103RB)
git clone https://github.com/texane/stlink stlink.git
说明:可能存在已经安装过的情况,没关系。敲一遍也不影响,系统会识别有没有安装,安装过了它不会再安装一遍。
遇到提示版本过低,需要升级的,可以直接在网上找方法,大神们都写的很明白,按照大神们的说明一步一步来,你也可以是大神。我在make的时候,就提示版本过低,于是升级了一下版本,如果需要我贴出方法流程的,可以留言。
sudo apt-get install libusb-1.0
sudo apt-get install cmake
sudo apt-get install libgtk-3-dev
1)进入stlink目录下
$ cd stlink.git
2)我在执行下面第三步的时候,一直没有反应,于是在论坛查到需要安装工具,于是执行以下命令安装工具
sudo apt-get install autoconf automake libtool
3)编译,在stlink目录下,执行一遍make,再分别执行下面两条make语句
$ make
$ make release
$ make debug
执行结果如下:
这个太多,放不下,就截一部分图哈
4)进入build文件夹
$ cd build
5)分别执行下面语句
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
$ make
cmake -DCMAKE_BUILD_TYPE=Debug ..执行结果如下:
make执行结果如下:
6)下一步进入Release文件夹,执行命令
$ cd Release
$ sudo make install
$ sudo ldconfig
执行结果如下:
我这边执行sudo ldconfig没有结果输出,供参考。故直接切回stlink目录
7)切回stlink目录,将文件49-stlinkv2.rules,拷贝到位置:/etc/udev/rules.d/
说明:文件49-stlinkv2.rules在目录stlink.git/config/udev/rules.d/下,我使用的STLINK版本为V2.1
,故将49-stlinkv2.rules拷贝到位置:/etc/udev/rules.d/下。
执行命令:
$ sudo cp ~/stlink.git/config/udev/rules.d/49-stlinkv2.rules /etc/udev/rules.d/
执行后,可以看到文件已经被拷贝:
8)分别执行下面命令,重新导入规则,接受事件
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
9)查看安装信息
$ st-info –version
说明:我在执行上述命令之后,提示我因为权限不够,无法打开并被拒绝访问,于是我执行下面语句。
$ sudo st-info -version
执行完之后,没有任何提示信息,于是再执行st-info –version也没有任何提示信息,不知道原因,但是并不影响后面的程序烧录。通过查看USB连接,可以看到我们的STLINK信息。如下:
说明:这是我的路径,命令改成你自己的路径就行了
$ cd test/rt-thread/bsp/stm32/stm32l475-atk-pandora/
执行下面命令进行烧录:
$ st-flash write rtthread.bin 0x8000000
烧录结果如下(烧录成功):
6、写在后面
Jlink可以通过./***.sh方式直接执行文件就可以烧写,那么STlink肯定是也可以的,就不需要每次烧录都要进入工程目录,输命令了,后面找个时间出教程