传统的IDE功能强大,特别是调试功能,但是如今,其它软件的发展,大家感觉到传统的IDE用户交互、编辑界面、编码效率不够友好;或者为了降低成本,需要使用开源工具。于是,有人选择使用IDE用来调试,用其它编辑器编码(比如source insight 、notepad++、Vim等),来提高效率;或者使用其它的工具链来配合编辑器达到自制一个IDE的效果。还有人在Eclipse上使用GNU ARM Eclipse plug来简化一系列的操作,会帮助自动生成makefile,管理芯片包(现在使用的Keil的包),提供例示程序,以及提供编译、调试的一个框架,只要再安装一些必要的软件(工具链、build工具(比如make)、调试组件)(安装插件时不会一同安装,需要手动安装)就可以进行编译、调试。已经有人写了一篇用Eclipse开发stm32(GNU ARM Eclipse Plug-in)(编码+编译+下载+调试)。

我属于前者。我用source insight或者Vim编辑代码,用Cygwin+GCC+Makefile完成代码编译。最后使用Eclipse+OpenOCD+arm-none-eabi-gdb实现在线调试。我安装Eclipse走了挺多弯路,这里总结一下下载与安装步骤:

1.  下载Eclipse IDE for C/C++ Developers环境,到 https://www.eclipse.org/downloads/packages/ 找到Eclipse IDE for Embedded C/C++ Developers

2.  解压Eclipse, 下载GNU ARM Eclipse Plug-in最新版本

目前官方最新的版本 Embedded C/C++ v6.x Updates - https://download.eclipse.org/embed-cdt/updates/v6/

直接运行Eclipse,在help菜单下选择"Install New Software…"

直接从Embedded C/C++ v6.x Updates -https://download.eclipse.org/embed-cdt/updates/v6/ 选择最新版本的插件,然后"Next"。

如果没有你要得这个选项,你可以Add增加Repository

按照自己的需求选择安装。

1. Arm Cross Compiler Developer Resources 交叉编译链插件 xPack Windows Build Tools & xPack GNU Arm Embedded GCC

2. CMSIS Packs Developer Resources  芯片安装包插件 CMSIS Packs

3. GDB JTAG Debugging Developer Resources GDB调试插件 xPack GNU Arm Embedded GCC

4. OpenOCD Debugging Developer Resources  OpenOCD工具插件 xPack OpenOCD

5. QEMU Debugging Developer Resources 仿真调试工具插件 xPack QEMU Arm

6. Cortex-M Project 因为我使用的Cortex M7的芯片,所以我选择了Cortex-M工程模板

等待"Installing Software:(100%)"

记住以上操作只是安装Eclipse插件,而不是软件包。这些插件只是为了你能在Window --> Perference窗口下看到相应的工具配置栏。

3.   工具包安装

下面是安装 Eclipse plug-ins后,需要安装如下工具。

• xPack Windows Build Tools

The xPack Windows Build Tools project includes the additional tools required to perform builds on Windows (make & rm).

• xPack GNU Arm Embedded GCC

The xPack GNU Arm Embedded GCC project is an alternate binary distribution that complements the official GNU Arm Embedded Toolchain maintained by Arm. Binaries for Windows, macOS and GNU/Linux are available.

• xPack GNU RISC-V Embedded GCC

The xPack GNU RISC-V Embedded GCC project is a new distribution of the bare metal version of RISC-V GCC, maintained by SiFive. Binaries for Windows, macOS and GNU/Linux are available.

• xPack OpenOCD

The xPack OpenOCD project is a new distribution of OpenOCD, customised for a better/more convenient integration with the OpenOCD Debugging plug-in. Binaries for Windows, macOS and GNU/Linux are available.

•xPack QEMU Arm

ThexPack QEMU Armproject is a fork of QEMU(an open source machine emulator), intended to provide support for Cortex-M emulation in Eclipse Embedded CDT. Binaries for Windows, macOS and GNU/Linux are available.

直接将这些压缩包解压到 C:/Users/wezhu/AppData/Roaming/xPacks/这个是我对应的安装目录,因为我的C盘够用懒得改目录了。其实你可以自行选择其他目录安装,但是下面的配置路径你得改成和你解压的路径一直。

你可以通过以下方式检查Eclipse plug-ins是否安装成功, 然后看对应的路径下有没有相关工具文件?

xPack Windows Build Tools

xPack GNU Arm Embedded GCC

xPack GNU RISC-V Embedded GCC

xPack OpenOCD

xPack QEMU Arm

芯片CMSIS Pack包安装(看官方文档我走挺多弯路,下面步骤帮大家少走弯路)

通过菜单Window --> Perference --> C/C++ --> MCU Package

到对应的目录下去找,有没有文件存在。需要在线手动安装。选择Make the CMSIS Packs perspective visible,然后Update the CMSIS packs definitions

等待Refresh all packs from all repositories.因为是从Arm/Keil网站去下载相应的支持芯片的列表。比较费时我大概花了半个多小时。

下载完后窗口列表会发生变化如下:

其实不用都下载,用到哪个芯片下载哪个芯片CMSIS包。因为CMSIS包里面没有我需要的NXP S32K3系列的芯片,所以我选择了ARM CMSIS包。

我手上有三种STM32的开发板,所以我还选择安装STMicroelectronics的STM32F0/F2/F4/F7 Series,

下面我们开始创建个Cortex M的工程:

File --> New --> C/C++ Project --> All --> C managed Build

C Project中填写工程项目名称,选择 Hello World Arm Cortex-M C/C++ Project后,Next

设置目标处理器配置, Next。

GNU Arm Cross Toolchain 交叉编译链路径配置, Finish。

工程生成后先编译一下工程。Project --> Build Project

然后在Run --> Debug Configurations…中,选择GDB OpenOCD Debugging修改相应的配置属性。

首先替换Main --> C/C++ Application 为你板子里的版本ELF文件。

然后修改Debugger --> OpenOCD Setup --> GDB Client Setup

确保OpenOCD 路径和配置正确,确保GDB 路径正确。前面我们说到你可以解压到其他目录。这里路径必须和你解压的目录保持一致。

修改Startup --> Load Symbols and Executable --> Apply --> Debug.

因为调试工具不支持芯片内部flash烧写,所以我们不许加载flash里的可执行文件。所以 Load executable 我们不需要勾选,不然会报错。

一串log后,我们进入到Cortex M7 reset后的第一条指令Reset_Handler。

你可以在线可视化调试代码了。

openocd调试Linux内核,如何结合Eclipse+OpenOCD+arm-none-eabi-gdb实现可视化在线调试ARM Cortex M7内核?...相关推荐

  1. 重磅!兆易创新推出中国首款Cortex®-M7内核超高性能MCU GD32H737/757/759系列

    关注.星标公众号,精彩内容每日送达 来源:网络素材 中国北京(2023年5月11日)--业界领先的半导体器件供应商兆易创新GigaDevice (股票代码 603986) 今日宣布,正式推出中国首款基 ...

  2. 使用openocd调试Linux内核,OpenOCD-JTAG调试

    title: OpenOCD-JTAG调试 tags: ARM date: 2018-10-13 23:36:28 Todo [ ] JTAG 调试linux内核 [ ] linux下使用OpenOC ...

  3. 使用openocd调试Linux内核,OpenOCD-JTAG调试(示例代码)

    目录 title: OpenOCD-JTAG调试 tags: ARM date: 2018-10-13 23:36:28 --- Todo [ ] JTAG 调试linux内核 [ ] linux下使 ...

  4. openocd调试Linux内核,Ubuntu下配置OpenOCD+FT2232

    Ubuntu下配置OpenOCD+FT2232 [1]确认调试器方案 将调试器插到电脑上,lsusb看一下: Bus 003 Device 009: ID 1457:5118 First Intern ...

  5. 使用openocd调试Linux内核,openocd安装与调试

    环境: 硬件:PC机ARM仿真器v8.00已下载好bit流的Xinlinx SoC开发板(其上有arm cortex-a9核) 软件:Redhat Linux6(或虚拟机) + openocd 使用o ...

  6. openocd调试Linux内核,openocd安装与调试

    环境: 硬件:PC机ARM仿真器v8.00已下载好bit流的Xinlinx SoC开发板(其上有arm cortex-a9核) 软件:Redhat Linux6(或虚拟机)+ openocd 使用op ...

  7. 如何使用FT2232H适配器和开源调式工具OpenOCD对ARM Cortex M7系列MCU进行SWD接口调试

    该篇幅介绍如何使用FT2232H适配器和开源调式工具OpenOCD对ARM Cortex M系列MCU进行SWD接口调试? 如何连接FT2232HL Debuger Adapter和目标板的的SWD调 ...

  8. IDA来远程调试Linux程序

    IDA来远程调试Linux程序,感觉很不一样,当然gdb非常强大,相辅相成吧.作为永远都是Linux的新人,感觉要学的东西真多啊. 在sangfor的时候经常使用pshell,这款工具强大的很啊.特别 ...

  9. elipse调试linux内核,debug eclipse cdt + qemu虚拟机调试linux内核

    debug eclipse cdt + qemu虚拟机调试linux内核 (17页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 A scr ...

  10. Eclipse CDT+Qemu调试Linux 0.11内核

    操作系统:CentOS 6.3 for 32bit 需要软件:eclipse-cpp-galileo-SR2-linux-gtk.tar.gz qemu 需要内核文件:linux 0.11(Makef ...

最新文章

  1. 18.DataGrid内绑定ComboBox和ListBox以及取值
  2. python 魔法参数*argv 和 **kw
  3. *CI框架装载器Loader.php源码分析
  4. PLSQL_day01
  5. OSS音频编程概述(DSP部分)
  6. 字节流复制文件 java
  7. 超大规模数据集类的创建
  8. MongoDB工具介绍
  9. oopc——2.类与对象
  10. mysql 搜索正则表达式_mysql必知必会--用正则表达式 进行搜索
  11. HTML新增便签source语义,互联网的原理,常用标签,标签分类,HTML杂项,CSS
  12. 手把手教你详细分析 Chrome 1day 漏洞 (CVE-2021-21224)
  13. stata令相关系数加显著性
  14. php实现倒计时,PHP实现倒计时功能
  15. Spark的搭建及实现单词统计
  16. k--最近邻算法(KNN)
  17. 使用php制作导航栏,如何制作简单导航栏
  18. 帮我写一个C++程序,输入一个数,输出这个数的平方
  19. C#鸡兔同笼(一个笼子里面关了鸡和兔子(鸡有2 只脚,兔子有4 只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物? 请用C#语言实现这个计算过程;)
  20. OC 教程 极光分享

热门文章

  1. [转]Go语言中的make和new
  2. 脉冲激光器的重要参数
  3. Phalcon调试大杀器之phalcon-debugbar安装
  4. 快递小哥逆袭自传:用了6年时间做到了IT部门主管
  5. JDBC批处理---(java 对数据库的回滚) .
  6. phpstudy连接SQL Server 2008数据库 以及 php使用sql server出现乱码解决方式
  7. VS提示SurfFeatureDetector不是cv的成员函数 .
  8. Ajax运用json数组传输数据
  9. IE调试网页之二:F12 开发人员工具入门 (Windows)
  10. 拓端tecdat|R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率