基于Ubuntu+Eclipse+GDB+OpenOCD+STlink搭建STM32开发环境
- 准备工作:一台能够上网的配置还不错的电脑,stm32开发板,stlink下载器。
本人的mcu为stm32f429;ST-LINK/V2;Ubuntu18.10 64bit; - 第一步 搭建ubuntu环境 (如果你已搭建好,可忽略);
- 第二步 利用OpenOCD+GDB+STlink连接你的开发板;
- 第三步 配置你的eclipse环境;
第一步 搭建ubuntu环境
- 准备工作:
- 下载ubuntu镜像 https://www.ubuntu.com/download/desktop
- 下载VMware 链接:https://pan.baidu.com/s/1fgH5CuE76xAIF59FWqD1VA
提取码:xfk4
解压VMware,你将看到如下文件 点击"安装VMware"
选择“0、一键安装所有服务”以及“2、USB设备支持服务”
完成之后关闭窗口,打开桌面上的VMware图标
点击创建新的虚拟机
选择推荐设置,
选择下载好的ubuntu镜像
注:创建虚拟机目录最好不要选择c盘,除非你的c盘空间足够多,然后就是分配给ubuntu的最大磁盘大小默认是20G,这里给了80G的空间。
选择“自定义硬件” 我这里内存给了4G,处理器给了4个内核。
点击完成,搞定,然后可以去休息一下,准备迎接全新的世界。
完成之后,
第二步 利用OpenOCD+GDB(GNU Debugger)+STlink连接你的开发板
-
准备工作
-
安装Stlink驱动 驱动链接:https://pan.baidu.com/s/1vZObrb1842WpOohwASTQ5A
提取码:vp5f
-
如果你是在虚拟机中运行的Ununtu,为了能让Ubuntu连接stlink,需要开启虚拟机的usb设备支持功能,在第一步中已选择“2、USB设备支持服务”,如果你的虚拟机没有这一选项,那么需要手动打开。挂起系统,选择虚拟机设置,配置usb控制器如图,然后确定。
-
打开Ubuntu终端(alt+ctrl+t)输入
lsusb
如果一切顺利的话你将看到 STMicroelectronics ST-LINK/V2 表明Ubuntu能够识别stlink了。
-
安装openocd 打开Ubuntu终端(alt+ctrl+t)输入
sudo apt install openocd
我这里是之前安装好了的。
完成之后 输入
openocd
查看版本信息
-
下载GDB工具链 :
到官网下载:gcc-arm-none-eabi下载 选择linux-64bit版。
如果网速不够快 到百度云下载 链接:https://pan.baidu.com/s/1vyoXUjY5HQXJ162mj4UhUg
提取码:sum8
成功后右击选择extract Here 即可解压到本目录下
接下来我们打开终端,尝试运行一下刚才我们下载好了的 arm-none-eabi-gdb,终端来到如下的bin目录下,会有arm-none-eabi-gdb可执行文件。在如下终端目录输入
./arm-none-eabi-gdb
表示运行此目录下arm-none-eabi-gdb文件
如果运行成功会出现进入gdb调试窗口
注:下载的gcc-arm-none-eabi 的版本最好是最新的,因为最新的版本不会出现2015版或2016版运行arm-none-eabi-gdb时找不到命令can not command提示;
-
开始连接目标板,并下载程序
- 在终端中输入
openocd -f interface/stlink-v2.cfg -f target/stm32f4x.cfg
如果你的mcu不是stm32F4系列,你就需要自己改变stm32f4x.cfg的内容。比如你的板子是stm32f1系列的, 你要到如下路径找到“stm32f1x.cfg”文件,那么终端中的命令变为
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
成功会出现如下的画面:
然后alt+shift+t 打开另一个端口 输入:
telnet localhost 4444
接下来就可以下载程序到目标板了,下载程序之前需要挂起目标 输入命令
halt
然后输入命令:
flash write_image erase xxx.hex
擦除flash并下载程序
xxx.hex是你要下载的程序,也可以是.elf文件
注:pwd 查看当前目录 要下载的程序要放在此目录下。
最后输入命令
reset
程序就可以跑起来了。
小提示:windows上的文件可以直接拖曳到Ubuntu磁盘中。
参考博客:https://blog.csdn.net/baidu_36482169/article/details/81005060
-
利用GDB工具链来下载,调试代码。
首先我们需要用OpenOCD连接我们的目标板
在终端输入命令:
openocd -f interface/stlink-v2.cfg -f target/stm32f4x.cfg
与目标板连接成功后在,我们打开另一个窗口,运行之前我们准备好了的 arm-none-eabi-gdb,在gdb调试模式下输入:
target remote localhost:3333
如下图表示gdb与目标板连接成功。
然后我们输入挂起命令:
monitor halt
复位命令:
monitor reset
一切正常如下图
关于OpenOCD与GDB更多的调试方法以及大致原理可参考下面的文章:
https://stackoverflow.com/questions/38033130/how-to-use-the-gdb-gnu-debugger-and-openocd-for-microcontroller-debugging-fr
这里我截个图:
第三步 配置你的eclipse环境
以上两步如果你已成功了,那么接下来也不会有什么难度了,无非就是把openocd 与gdb嵌入到eclipse中,把编译、链接、调试等命令集中到这个IDE中,完成一条龙服务。
- 准备工作:
-
下载eclipse下载时选择中国境内的镜像会快很多
-
安装java_jdk:在终端输入sudo apt-get install default-jdk
eclispe需要java环境才能运行。
eclipse下载完成后,右击extract here 解压到本目录,打开eclipse文件夹选择eclipse可执行文件,
因为我们每次都要到此目录下打开eclipse,不胜其烦,所以我们开始配置环境变量,可以在终端中输入eclipse
就可打开;
同样alt+ctrl+t打开终端输入:
vim ~/.bashrc
编辑bashrc文件;
在文件的最后输入
export PATH=/path/to/your/dir:$PATH
其中/path/to/your/dir 为你的eclipse可执行文件的目录。(可以用终端来到eclipse目录下,然后输入pwd命令,查看当前目录,然后复制粘贴,ctrl+shift+c为复制,ctrl+shift+v为粘贴,如图左边为查找路径,右边为编辑bashrc文件)
这里提一下vim的简单使用方法,按键盘“i”键进入编辑模式,编辑完成后按esc键进入命令模式,然后输入:wq
按回车键即可保存并退出;
最后在终端中输入:
source ~/.bashrc
就可立即生效;
By : Bingo
E-mail : 1554459957@qq.com
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)