作品名称:RMP(Red Magic Probe)
作者:iysheng
RMP 是什么?Red Magic Probe。
作为一名嵌入式开发工程师,在 GD32,STM32 这类开发板上调试的时候,你是怎么在 Linux 下载程序和调试的呢?用 stlink, jlink,cmsis-dap 调试器?差不多就是这些了吧。jlink太贵,在 Linux 下用 gdlink,stlink和cmsis-dap 是不是还要用 openocd,还要针对写配置文件。麻烦不?有点麻烦哦。因为最开始我就是这么过来的,我知道用 openocd 调试程序是什么心情。高端,大气上档次。嘿嘿。算了。跑题了,简单来说我做了一个什么呢?我为 Raspberry Pi Zero W 和 BeagleBone Black 这两个开源硬件分别开发了配套的 RMP 支持。
为什么找开源硬件呢?因为我这个项目是源自社区也要回报社区哦。所以整个软硬件都是开源的哦。
软件仓库地址(Makefile + gcc 编译器):
BBB RMP USB 版本
BBB RMP ETHERNET 版本
Raspberry Pi Zero W RMP
硬件仓库地址(KiCad 绘制):
BBB RMP
Raspberry Pi Zero W RMP
整个项目的仓库地址:
RMP
先看看实际的效果一睹为快:
目前实现了如下功能:
- BBB RMP :通过 USB 连接到电脑后,可以实现 gdb 对嵌入式芯片的调试,调试过程的截图为:
- BBB RMP :电脑通过有线网络远程 BBB RMP, 将 BBB RMP 作为一个网络调试器,实现对嵌入式板卡的 gdb 调试:
- Raspberry Pi Zero W RMP:电脑通过 wifi 访问 Raspberry Pi Zero W RMP,将 Raspberry Pi Zero W RMP 作为一个网络调试,实现对嵌入式板卡的 gdb 调试,有关这部分内容我录制了视频:
使用到的模块:
- BeagleBone Black
- Raspberry Pi Zero W
- ESP32 C3 (这部分在 BBB RMP 扩展版上,目前还没有调通,不知道是不是因为我用热风枪焊接将模块吹坏了,呜呜)
系统的整个框图
可以看到,我分别在 BBB 和 Raspberry Pi Zero W 上设计实现了两个扩展板,实现了通过 USB, 以太网或者WIFI的方式完成和 RMP 的连接,并在此基础上实现了一个内置 gdb 的调试器,方便嵌入式开发人员,因为软件也是开源的,再加上 gdb 的强大扩展能力,举一个例子,monitor 命令的透传功能
,大家还可以对调试器服务程序进行二次开发为自己的调试器开发更多更强大的功能。
视频演示
播放器加载失败: 未检测到Flash Player,请到
安装
output
希望我的这个作品可以让大家更了解 black magic probe 这个开源项目(该项目是我的作品软件依托的主要上游仓库,在此向该项目的开发者致敬!),以及 gdb 调试方法(作为C,C++软件开发人员,gdb 是一款使用非常广泛的调试工具,熟悉该工具也可以有助自己能力的提升)。最后,我要感谢这次大赛的主办方,让我有机会可以和其他参赛的小伙伴一起竞技,在这个过程中提升自己。
源码
https://download.eeworld.com.cn/detail/iysheng/630799
https://download.eeworld.com.cn/detail/iysheng/630800
https://download.eeworld.com.cn/detail/iysheng/630798