Ubuntu16.04安装使用STLINK(rtthread)
前言:过去一直依赖Windows平台进行单片机开发。自换用Ubuntu以来,则体验非常棒。在同样配置下, Ubuntu运行得极为顺畅, 因此我也转向采用Ubuntu进行单片机开发.
之前通过JLink工具实现单片机的烧录过程;我也怀疑STLink工具是否同样适用;为了进一步验证这一想法,在网络上查找相关安装指南;作为一个新手用户而言;在多个网络论坛上进行了深入探讨;均未成功实施;具体来说, 或许是操作步骤中缺少关键指令, 或者最终检查软件版本时并未包含该命令.
经过一番努力后(其实不然),折腾了一会儿算是完成了(说实话,并非花了一个上午才算搞定)。下面是战术总结
虚拟机:VirtualBox 6.1
使用系统:Ubuntu16.04
硬件主板:正点原子潘多拉开发板
下载器版本:STMicroelectronics ST-LINK/V2.1 (Nucleo-F103RB)
1、首先进入系统打开终端:

2、git代码
git clone https://github.com/texane/stlink stlink.git
3、安装必要依赖包
在软件界面操作时可能会出现提示信息:已存在应用程序或插件的情况无需担心。输入一次后系统将判断当前状态并不再进行重复操作。
当遇到提示信息显示版本不足时,并且需要进行升级操作时,请尝试通过优化软件配置参数的方式来解决问题。很多高手都有详细的步骤指南可供参考,并且这些指南通常会以清晰的方式呈现出来。在安装过程中出现提示信息时,请先对软件进行全面检查并进行相应调整。如果有具体的问题或需要进一步的帮助,请随时留言询问。
sudo apt-get install libusb-1.0
sudo apt-get install cmake
sudo apt-get install libgtk-3-dev
4、编译STlink代码
1)进入stlink目录下
$ cd stlink.git
当我处理第三步时,始终未收到任何反馈信号。后来我发现需要安装特定的工具包,并按照以下步骤进行了操作
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/下的详细说明。
,故将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端口(即查看USB连接),我们能够获取到我们的STLINK信息(即STLINK相关数据)。

5、进入RT-thread的bsp目录下的单片机工程,进行烧写
说明:这是我的路径,命令改成你自己的路径就行了
$ cd test/rt-thread/bsp/stm32/stm32l475-atk-pandora/
执行下面命令进行烧录:
$ st-flash write rtthread.bin 0x8000000
烧录结果如下(烧录成功):


6、写在后面
Jlink支持通过./***.sh脚本轻松完成文件烧写。相比之下,STlink同样提供了类似的便利操作方式,并无需每次都切换至工程目录即可完成操作。操作相对便捷,并建议在后续时间发布详细的使用指南以供参考。
