如何结合Eclipse+OpenOCD+arm-none-eabi-gdb实现可视化在线调试ARM Cortex M7内核?

传统的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
The xPack QEMU Arm project 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.


以上工具包Eclipse 可提供直接下载,下载链接如下:
xpack-windows-build-tools-4.2.1-2-win32-x64.zip
xpack-arm-none-eabi-gcc-10.2.1-1.1-win32-x64.zip
xpack-riscv-none-embed-gcc-10.1.0-1.1-win32-x64.zip
xpack-openocd-0.11.0-1-win32-x64.zip
xpack-qemu-arm-2.8.0-12-win32-x64.zip

直接将这些压缩包解压到 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 路径正确。前面我们说到你可以解压到其他目录。这里路径必须和你解压的目录保持一致。

这里的ftdi_ft2232d.cfg和nxp_s32k3x4.cfg我们在如何使用FT2232H适配器和开源调式工具OpenOCD对ARM Cortex M系列MCU进行SWD接口调试?详细提到过。


修改Startup --> Load Symbols and Executable --> Apply --> Debug.
因为调试工具不支持芯片内部flash烧写,所以我们不许加载flash里的可执行文件。所以 Load executable 我们不需要勾选,不然会报错。
一串log后,我们进入到Cortex M7 reset后的第一条指令Reset_Handler。

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

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值