锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2022-08-19 00:00:01 4m7光颉电阻

传统的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
ThexPack Windows Build Toolsproject includes the additional tools required to perform builds on Windows (make&rm).
?xPack GNU Arm Embedded GCC
ThexPack GNU Arm Embedded GCCproject is an alternate binary distribution that complements the officialGNU Arm Embedded Toolchainmaintained by Arm. Binaries for Windows, macOS and GNU/Linux are available.
?xPack GNU RISC-V Embedded GCC
ThexPack GNU RISC-V Embedded GCCproject is a new distribution of the bare metal version ofRISC-V GCC, maintained bySiFive. Binaries for Windows, macOS and GNU/Linux are available.
?xPack OpenOCD
ThexPack OpenOCDproject is a new distribution ofOpenOCD, customised for a better/more convenient integration with theOpenOCD Debuggingplug-in. Binaries for Windows, macOS and GNU/Linux are available.
?xPack QEMU Arm
ThexPack QEMU Armproject is a fork ofQEMU(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。

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

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章