openocd的源码学习0-----利用gdb和openocd对riscv芯片进行debug的总体框图
openocd的源码学习0-----利用gdb和openocd对riscv芯片进行debug的总体框图
·
如果想更好的理解gdb和openocd,我画了一张图。我把调试的过程主要分为三部分。
- pc端主要备有gdb和openocd (我是在linux环境下进行调试的,同样也可以在window下进行相关的配置)
- 调试器采用usb转jtag的sipeed调试器
- riscv芯片(内部含有DTM、DMI、DM),可以买市面上的riscv开发板,实在不行就通过qemu来搭建riscv芯片。

使用的gdb的方式有很多,这里介绍一下我使用的gdb的版本。
下载链接如下:嵌入式交叉编译器链接包含gcc和gdb
我使用的是ubuntu20.04,所以安装红色箭头指向的文件就可以。大家可以根据自己的系统版本来选择需要安装的版本。(记得配置环境变量,这样我们就可以系统中的任何地方使用它)
同样,我们也可以根据需要调试的riscv芯片配置自己的交叉编译器,编译的时间很长,将近1个多小时。
下载链接如下:可定制的交叉编译器
这种配置方式对网络的要求很好,尤其是下载github里面的文件以及其子文件。后续我会写一篇文章教大家配置属于自己的交叉编译器。
同样,在riscv官方的调试手册中也可以看到下面的图。

当我们在gdb中输入一个设置断点指令,debug系统的内部是怎样工作的,这是我们需要关注的重点。
我觉得调试的核心在于对openocd的关键代码进行理解。在openocd中有上千个文件,但不是所有的文件我们都需要我们去看的,我们需要抓住其核心,这样才可以尽快的掌握。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)