理想下载站 手游攻略 新游动态 『详解』Linux下搭建STM32开发环境安装eclipse步骤与配置

『详解』Linux下搭建STM32开发环境安装eclipse步骤与配置

时间:2024-06-29 05:29:31 来源:网络整理 浏览:7

点击上方“大鱼机器人”,选择“置顶/星级公众号”

福利资讯,第一时间送达!

阅读本文大约需要10分钟。

写在前面

上一篇文章中写道:

51单片机可以在Linux下开发吗?这里给大家一个教程

随后有很多朋友给我留言,问STM32是否也能在liunx上搭建开发平台?

概述

1.1 目的

MDK+Jlink开发环境集编译、下载、调试于一体,配合友好的操作界面,为用户提供了非常开心的开发工具。不过玩过Linux系统的人,总想尝试把开发环境搬到Linux上来看看效果如何。

在Linux下,为STM32搭建开发环境是一个很有挑战性的工作,从中我们可以学到如何创建一个集成开发环境,或者说了解一个集成开发环境的要素。不得不提的“Eclipse”绝对是一个好东西,它就像一个开发环境框架,我们在其中添加STM32专用的编译器和调试工具,就构造出了一个STM32集成开发环境。

开源为电子行业的从业者提供了向技术深度进阶的机会,也在技术垄断的商业模式中开辟了属于全世界的免费知识财富。

1.2 开发环境说明

硬件开发板:Wildfire STM32开发板

Cortex-M3型号:STM32F103VET6

下载器及调试接口:Jlink+JTAG

操作系统:虚拟机VMware6.5+Ubuntu12.0.4

集成开发环境平台:面向 C/C++ 开发人员的 Eclipse IDE

交叉编译链:arm-none-eabi-gcc

调试服务器:JLink GDB 服务器

1.3 Eclipse搭建的STM32集成开发环境结构

1.4 GDB/GDB 服务器调试模型

GNU 项目调试器 (GDB) 是一款免费提供的调试器,根据 GPL 条款发布。它通过 TCP/IP 连接连接到仿真器。它可以连接到每个有 GDB 服务器软件的仿真器。

GDB Server 是 GDB 的远程服务器。当您在 GDB 源目录中运行 GDB 时,它将读取 .gdb 文件。GDB .gdb 文件包含默认设置信息和其他监控命令。GDB 和 GDB Server 通过 TCP/IP 连接进行通信,使用标准 GDB 远程串行协议。GDB Server 将 GDB 监控命令转换为 J-Link 命令。

构建步骤

1. 为 C/C++ 开发人员安装 Eclipse IDE

2.安装交叉编译链arm-none-eabi-gcc

3.安装JLink驱动

4.安装GNU ARM Eclipse插件包

5.新建LED_Test项目并配置、编译

6.安装GDB调试插件--C/C++ GDB HardWare Debugging

7.设置Eclipse调试环境并调试

阐明:

本文所需要的Eclipse插件的下载地址不能确保读者能从本网站找到可用的资源,因为Eclipse插件的下载地址会经常更新,下载地址会有所改变。

因此如果找不到该资源的话,就需要通过Google搜索Eclipse目前提供的可用资源。

详细施工流程

3.1 为 C/C++ 开发人员安装 Eclipse IDE

参考:在 Ubuntu 上为 C/C++ 开发人员安装 Eclipse IDE

网址:(复制即可在网页上打开)

安装到这一步之后就可以像VC6.0一样进行C/C++开发了,但是编译出来的代码只能运行在X86平台上,不支持ARM。

为了进行交叉编译,我们需要安装交叉编译链arm-none-eabi-gcc,但是这个编译链并不是Eclipse的一部分,也不是Eclipse可安装的插件。

Eclipse只是用来调用交叉编译链的,调用之前需要安装“GNU ARM Eclipse插件”,通过这个插件就可以调用arm-none-eabi-gcc来编译我们的源程序了。

如果没有安装GNU ARM Eclipse插件,打开项目属性,情况如下:

如果只安装“eclipse IDE for C/C++ developers”,则只能进行X86平台的程序调试,而不能进行ARM平台的硬件调试。

为了进行硬件调试,我们需要在交叉编译链arm-none-eabi-gcc中安装工具arm-none-eabi-gdb。此工具不属于Eclipse的一部分,也不是Eclipse的可安装插件。

Eclipse 只调用这个调试器,调用之前需要安装“GDB Debug Plugin”,有了这个插件,就可以调用 arm-none-eabi-gdb 来硬件调试我们的源程序了。如果没有安装“GDB Debug Plugin”,打开“Debug Configurations”,情况是这样的:

如果你只安装了“eclipse IDE for C/C++ developers”,那么你可以调用外部硬件调试服务器——JLinkGDBServer,但是此时由于无法连接GDB调试客户端,所以还不能进行调试。

3.2 安装交叉编译链arm-none-eabi-gcc

1> 下载编译器:

+下载

2> 解压并安装tar

3> 修改/etc/profile

4> 使/etc/profile的修改生效

5> 测试

#arm-none-eabi-gcc -v

成功界面如下:

3.3 安装JLink驱动

Jlink驱动包括四个工具:JLinkExe、JLinkGDBServer、JLinkRemoteServer、JLinkSWOViewer。

1>驱动下载,地址为

注意您选择的安装包:“Linux V4.86a 的软件和文档包,DEB 安装程序 32 位版本”

2>使用dpkg -i命令进行安装,安装位置在/usr/bin目录

3> 测试版本

首先将硬件Jlink连接到电脑,然后将Jlink从物理PC传输并映射到虚拟机中,输入测试命令

#JLinkExe

成功界面如下

4>下载测试

命令序列

① h——停止程序

② exec device=STM32F103ZE --选择芯片型号

这里选择的是STM32F103ZE,而不是STM32F103VET6,原因是这个版本的JLink驱动不支持STM32F103VET6,所以用接近的型号代替。

③ loadbin Led_Test.bin 0x8000000 --下载

3.4 安装 GNU ARM Eclipse 插件包

本插件包内含有6个插件,可以手动下载安装,但此方式只能安装其中4个;若使用自动下载安装,则可以完整安装所有插件。

方法一:手动下载安装

1>下载插件,地址:%20Releases/2.x/

插件名称:ilg.gnuarmeclipse.repository-2.2.2-2.zip

2> 复制到 Linux 中的一个目录,假设它是 /source

3> 安装插件

打开Eclipse-->help-->Install New Software-->Add-->Archive-->选择插件-->选择“√”-->Next-->等待

☆ 测试

测试1:Eclipse-->help-->Install New Software-->already installation查看已安装的插件:

测试2:插件安装成功后,新建C项目时界面变化

安装eclipse_安装eclipse步骤与配置_ubuntu安装eclipse

3.5 新建LED_Test项目并配置、编译

1> 创建新项目

文件-->项目-->C项目-->项目名称-->CrossARM GCC-->工具链路径-->Finsh

此时工作目录下(笔者的是/root/workspace)会多出一个子目录LED_Test

2> 将源代码复制到此目录

将MDK中LED实验的源码复制到Linux系统中,放在/root/workspace/LED_Test目录下

3> 将源代码添加到项目

在 Project Explorer 中,点击“F5”刷新,所有源目录和其中的文件都将被添加。

4> 更改所需文件

① 启动文件

另外,请注意将TureSTUDIO/startup_stm32f10x_hd.s的后缀“s”改为大写的“S”。原因是编译器会对S文件进行预处理然后进行汇编操作,而s文件只进行汇编操作。详细原因请参考gcc编译.s文件与.S文件有什么区别。

② 连接脚本

③ 其余文件与MDK上所需文件类似,保留所需文件,删除工程中不需要的文件。

5>开始配置项目

在项目浏览器中选中项目,右键选择Properties,然后选择C/C++ Build-->Settings,弹出如下界面

6> 配置 Cross ARM GNU 汇编器

主要添加预处理宏

7> 配置编译器 Cross ARM C Compiler

①添加预处理宏

② 添加头文件搜索目录

8> 配置 Cross ARM C 链接器

主要选择连接脚本文件

9> 配置生成的镜像文件Cross ARM GNU Create Flash Image

选择生成二进制图像文件

10> 编译

项目->构建项目

可以在/root/workspace/LED_Test/Debug目录下看到生成的目标文件

使用 C/C++ GDB 硬件调试进行硬件调试

1.安装GDB调试插件--C/C++ GDB HardWare Debugging

1> 安装

该方法中Eclipse会自动搜索用户提供的网络地址然后下载并安装,所以请确保虚拟机可以访问网络。

2> 验证

成功后可以在Run-->Debug Configurations中看到以下界面

需要注意的是,如果在Run菜单下找不到“Debug Configurations”选项,那是因为项目处于编译环境,还未切换到调试环境。只有切换到调试环境,才能在Run菜单下找到这个选项。切换方法是:

2.设置Eclipse调试环境并调试

1> 配置Eclipse调试选项

① 调试器

运行-->调试配置-->GDB硬件调试-->调试器

② 启动

在初始化命令中输入检测参数

监控闪存设备 = STM32F103ZE

monitor flash download = 1
monitor flash breakpoints
= 1
monitor clrbp
monitor endian little
monitor speed
5
monitor reset
monitor sleep
100
monitor speed auto
   monitor writeu32
0xE000ED08 = 0x00000000


然后在运行命令中输入命令

monitor reg r13 = (0x00000000)
monitor reg pc
= (0x00000004)
break ResetHandler
break main
continue

2> 配置 Eclipse 调试选项

运行-->外部工具-->外部工具配置-->新_configuration

3> 调试

运行-->调试

3. 另一种调试方法

1> 配置

配置仍然是步骤7中的1>和2>

2>启动JLinkGDBServer

在终端上启动JLinkGDBServer

3> GDB调试

运行-->调试

如果连接成功的话,终端上会打印如下界面

5.使用arm-none-eabi-gdb直接调试硬件

1.安装Jlink驱动

2.安装交叉编译链arm-none-eabi-gcc

3.编译项目生成elf文件

4.在当前用户目录下创建.gdbinit文件

笔者当前用户是root,所以在根目录下创建.gdbinit初始化文件

#gedit ~/.gdbinit

内容是:

set auto-load safe-path /

5.在项目文件夹下的Debug目录下创建.gdbinit文件

在项目的Debug目录下创建一个.gdbinit文件,内容如下:

target remote :2331
set mem inaccessible-by-default off
monitor speed auto
monitor endian little
monitor reset
monitor flash device = STM32F103ZE
monitor flash breakpoints = 1
monitor flash download = 1
load
monitor reg sp = (0x08000000)
monitor reg pc = (0x08000004)
break ResetHandler
break main
continue

需要注意的是:由于目前版本的Jlink驱动不支持STM32F103VET6,所以选择STM32F103ZE。

6.启动JLinkGDBServer

打开终端并输入命令

root@daneiqi:~# JLinkGDBServer

7.开始调试

打开另一个终端,在项目的Debug目录下输入命令:

root@daneiqi:~/workspace/LED_Test/Debug# arm-none-eabi-gdb LED_Test.elf

调试界面如下

//结尾

标题:『详解』Linux下搭建STM32开发环境安装eclipse步骤与配置
链接:https://www.ltthb.com/news/xydt/121837.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
ToonMe怎么取消自动续费?自动续费关闭方法

ToonMe怎么取消自动续费?自动续费关闭方法[多图],ToonMe中的迪士尼滤镜很火爆,有不少小伙伴都喜欢,不过在使用

2024-06-29
航海王热血航线藏宝图位置在哪?全部藏宝图位置坐标大全

航海王热血航线藏宝图位置在哪?全部藏宝图位置坐标大全[多图],航海王热血航线藏宝图在哪里?怎么样才能找到藏

2024-06-29
cf手游云悠悠角色怎么获得?云悠悠什么时候上线

cf手游云悠悠角色怎么获得?云悠悠什么时候上线[多图],cf手游云悠悠角色什么时候出?云悠悠角色获得的方法是什

2024-06-29
英雄联盟联动优衣库活动详情一览:LOL联动优衣库T恤购买地址入口

英雄联盟联动优衣库活动详情一览:LOL联动优衣库T恤购买地址入口[多图],英雄联盟联动优衣库T恤衫什么时候发售

2024-06-29