Emacs 调试单片机

Emacs 使用的人少, Emacs 开发单片机的人就更少了, Debuff 叠满了属于是 :rofl:

本人开始接触的都是从 IAR, Keil 等 IDE 软件开发单片机的, 对于外部使用 gdb 进行调试单片机经验相对较少, 想在 Emacs 调试单片机历程就相当艰辛了..

自从 Emacs 后, 渐渐的开始用 Emacs 编写代码了, 这时候就有着 Emacs 替代 IDE 软件的想法了, 毕竟 Emacs 真的太酷, 好用 , 便开始了寻找在 Emacs 调试单片机的方法了

PS: Keil, IAR 等 IDE 软件的调试功能真的是相当好了, 可惜不是免费的.

过程当中看到使用 Vscode 调试单片机功能如此完善, 有 EIDE, Cortex-M Debug 等优秀的插件助攻 VSCode 调试单片机, 而且竟然还看到了 Neovim 竟然有类似 Vsocd 的 Cotex-M Debug 的支持, 反观 Emacs…

真是令人唏嘘啊 :smiling_face_with_tear:

重要的是接触到了 vscode 调试方面貌似类似 LSP 那样开放? 为后续留下线索

好在在某个 vim 帖子看到有人居然直接可以用 cpptools 调试硬件了, 直接开干(最后面才发现有这路子)

Emacs 调试单片机历程:

  1. eshell 运行 arm-none-eabi-gdb

    对比 IDE 软件真的是相当难用了(因为我基本没用过 gdb 调试过), 对新手来说简直是噩梦了, 无法根据源码文件 breakpoints, 也无法 breakpoints 自动跳转到源码行 , 无法从 GUI 方式 Watch

  2. gud-gdb 运行 arm-none-eabi-gdb

    有了根据源码文件 breakpoints, 可以 breakpoints 自动跳转到源码行, 就是有点问题, 跳转问题有是好有时坏, 失效了一次就没办发继续跳转了, 无法观察 watch 很不方便

  3. dape.el + arm-none-eabi-gdb + cpptools (最终方案)

    终于找到了一个相当满意的方案了, 基本满足了基本需求, 现在就缺失了 mcu register 的支持(只要不是太大问题, 这个功能基本没有用到, 根本不看 mcu reg), 哈哈

这个历程相当艰辛了, 陆陆续续, 断断续续, 已经接近2年了, 走了各种弯路, 查了各种各样的资料, 最后真的用上 Emacs 调试单片机了…

单片机网上的资料资源 对比 软件方面真的少了好几个档次, 不知道是不是因为单片机的人不爱分享还是为啥.

希望此论坛有单片机相关工作的人员, 也多多分享你是怎么使用 Emacs 的.

附上教程: Emacs 调试单片机 dape.el + arm-none-eabi-gdb + cpptools

13 个赞

真好啊,你们用的mcu竟然能用调试器,我们用的国内几家mcu,没有给资料说怎么调试的,也不是arm架构…平时全靠printf😂

不过习惯了也还好,暂时没有觉得必须要上调试器的情况,可能我们只是业务逻辑多,没开发啥算法