单片机学习小组
登录
直播中
向日葵的花季
8年用户
1237经验值
擅长:电源/新能源
私信
关注
如何基于Ubuntu+Eclipse+GDB+OpenOCD+STlink搭建STM32开发环境?
开启该帖子的消息推送
Ubuntu
stlink
如何基于Ubuntu+Eclipse+GDB+OpenOCD+STlink搭建
STM32
开发环境?
回帖
(1)
王莉淳
2022-2-8 11:30:34
准备工作:一台能够上网的配置还不错的电脑,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,需要开启虚拟机的u***设备支持功能,在第一步中已选择“2、USB设备支持服务”,如果你的虚拟机没有这一选项,那么需要手动打开。挂起系统,选择虚拟机设置,配置u***控制器如图,然后确定。
打开Ubuntu终端(alt+ctrl+t)输入
lsu***
如果一切顺利的话你将看到 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-jdkeclispe需要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
就可立即生效;
配置eclipse
安装ARM-GCC组件
打开instll New Software
点击添加输入网址:
http://gnuarmeclipse.sourceforge.net/updates
然后会出现如下的组件,全选然后一路next,最后finish
静待安装完毕。注:在安装过程中会有warning,不要理会,强制执行安装。
让我们新建一个stm32工程文件吧:
点击file,新建New Project,选择C Project,点击next
给你的工程取个名字,然后根据你的板子选择合适的工程模版,如下,我的MCU为stm32f429
根据你的目标板上的外置时钟,修改外部时钟频率,默认是8Mhz。我的是25Mhz。
点击next
点击next
选择工具链路径,这一路径就是我们第二步中arm-none-eabi-gdb的路径。
完成之后,打开main时会有一些错误,不要急,看看eclipse右下角是不是在安装一些c/c++组件,静等一下。
点击bulide all(快捷键ctrl+b),完成。
在eclipse中配置OpenOCD,连接目标板。
点击External Tools Configurations。
双击Program选项。
打开终端输入如下命令 查找可执行文件openocd的路径,然后把路径复制到Location一栏,
which openocd
在Arguments一栏中输入如下配置信息:
-f /usr/share/openocd/scripts/interface/stlink-v2.cfg
-f /usr/share/openocd/scripts/target/stm32f4x.cfg
其中的stm32f4x.cfg需要根据你的目标板上的MCU不同而会改变。
此配置文件路径是安装openocd通过命令sudo apt install openocd安装的,是系统默认路径。如果你在此路径中找不到相关文件,那么请自行查找与修改路径。
然后点击Apply,Run后会在窗口出现如下的信息,表示连接成功。
断开连接,接下来我们终于来到了debug环节了。
配置debug环境:
点击Debug Configurations选项
双击GDB OpenOCD Debugging
在窗口点击Debugger一栏
分别修改如下三个窗口的内容,第一个为可执行openocd命令所在路径,第二个为openocd连接stlink与目标板的命令,第三个为工具链arm-none-eabi-gdb等所在的路径。
点击Apply,Debug就可以开始愉快的调试了。
如果你想移植stm32 MDK中的程序,这里给你一个demo
链接:
https://pan.baidu.com/s/1ohiUXdMRPvViT4jJOXLdNA
提取码:ehjc
在编译之前你需要修改以下两个地方的路径,确保编译通过。
以及
准备工作:一台能够上网的配置还不错的电脑,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,需要开启虚拟机的u***设备支持功能,在第一步中已选择“2、USB设备支持服务”,如果你的虚拟机没有这一选项,那么需要手动打开。挂起系统,选择虚拟机设置,配置u***控制器如图,然后确定。
打开Ubuntu终端(alt+ctrl+t)输入
lsu***
如果一切顺利的话你将看到 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-jdkeclispe需要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
就可立即生效;
配置eclipse
安装ARM-GCC组件
打开instll New Software
点击添加输入网址:
http://gnuarmeclipse.sourceforge.net/updates
然后会出现如下的组件,全选然后一路next,最后finish
静待安装完毕。注:在安装过程中会有warning,不要理会,强制执行安装。
让我们新建一个stm32工程文件吧:
点击file,新建New Project,选择C Project,点击next
给你的工程取个名字,然后根据你的板子选择合适的工程模版,如下,我的MCU为stm32f429
根据你的目标板上的外置时钟,修改外部时钟频率,默认是8Mhz。我的是25Mhz。
点击next
点击next
选择工具链路径,这一路径就是我们第二步中arm-none-eabi-gdb的路径。
完成之后,打开main时会有一些错误,不要急,看看eclipse右下角是不是在安装一些c/c++组件,静等一下。
点击bulide all(快捷键ctrl+b),完成。
在eclipse中配置OpenOCD,连接目标板。
点击External Tools Configurations。
双击Program选项。
打开终端输入如下命令 查找可执行文件openocd的路径,然后把路径复制到Location一栏,
which openocd
在Arguments一栏中输入如下配置信息:
-f /usr/share/openocd/scripts/interface/stlink-v2.cfg
-f /usr/share/openocd/scripts/target/stm32f4x.cfg
其中的stm32f4x.cfg需要根据你的目标板上的MCU不同而会改变。
此配置文件路径是安装openocd通过命令sudo apt install openocd安装的,是系统默认路径。如果你在此路径中找不到相关文件,那么请自行查找与修改路径。
然后点击Apply,Run后会在窗口出现如下的信息,表示连接成功。
断开连接,接下来我们终于来到了debug环节了。
配置debug环境:
点击Debug Configurations选项
双击GDB OpenOCD Debugging
在窗口点击Debugger一栏
分别修改如下三个窗口的内容,第一个为可执行openocd命令所在路径,第二个为openocd连接stlink与目标板的命令,第三个为工具链arm-none-eabi-gdb等所在的路径。
点击Apply,Debug就可以开始愉快的调试了。
如果你想移植stm32 MDK中的程序,这里给你一个demo
链接:
https://pan.baidu.com/s/1ohiUXdMRPvViT4jJOXLdNA
提取码:ehjc
在编译之前你需要修改以下两个地方的路径,确保编译通过。
以及
举报
更多回帖
rotate(-90deg);
回复
相关问答
Ubuntu
stlink
Eclipse
如何
搭建
STM32
的
开发
环境
2021-10-13
672
eclipse+openocd
+debug设置执行后有错误该怎么办?
2019-10-29
4535
在
Ubuntu
环境
下如何使用
stlink
调试
stm32
f4-discovery程序呢
2021-11-02
2034
用
eclipse
搭建
了
stm32
cubemx
开发
环境
,生成代码报错的原因?
2023-01-17
232
请问vscode和
eclipse
哪个好使?哪个官方支持更好些?
2023-02-21
448
如何在linux虚拟机上使用GUN工具链
搭建
stm32
开发
环境
?
2021-11-05
1606
如何
搭建
嵌入式
GDB
的调试
环境
?
2021-12-24
748
如何利用
Eclipse
去
搭建
一种
stm32
+jlink
开发
环境
呢
2021-10-11
1257
如何利用
Eclipse
调试
STM32
?
2021-09-30
1132
如何利用Clion IDE
搭建
STM32
开发
环境
?
2021-11-26
1511
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分