目前RISC-V的官方调试上位机是openocd,调试工具可以是JLink或者CMSIS-DAP,RISC-V调试系统框架如图3所示。 图3 RISC-V调试系统框架 可以看到主要分为3个部分,分别是Debug Host,可以理解为PC;Debug Hardware,可以理解为JLink或者CMSIS-DAP这样的调试工具;第三部分就是嵌入在芯片内部的调试模块。在调试模块内部,与调试...
【启动调试】以CH32V103C8T6的芯片工程为例来说,首先保证工程可以编译通过,然后点击菜单栏 按钮,开始进入调试模式,正常进入调试模式会停在如图所示的位置,此位置有一个临时断点:【更改默认断点位置】当然如果希望工程可以直接停在main函数起始地方,也可以去手动更改此断点的位置,点击调试图标旁的下拉按钮,选择”...
前面的工作已经编译生成了基于RISC V架构的GDB可执行程序,可以进行目标机上被调试程序的交叉调试工作。若GDB调试过程中出现了BUG或者需要进一步理解内部运行机制,则需要进入GDB源码调试模式。为了方便阅读调试源码,选择VSCode进行GDB源码调试,需配置launch.json文件,该配置文件主要作用是添加GDB调试任务并运行可执行文件。laun...
调试模块(debug module)是risc-v内核设计的比较独立也比较重要的一块,虽然0.13.2是risc-v debug的draft版本,但目前市面上risc-v处理器的调试模块几乎都是基于这个spec设计,在risc-v处理器设计中添加调试模块(电路)的目的是在设计固化后,用户仍能获取当前系统状态(通过访问各种资源信息)。所以调试(debug),也可以简...
RISC-V使用ripes进行可视化仿真调试 前言 在学习RISC-V时往往需要有一些工具进行汇编级别的代码仿真调试,或者进行一些可视化的仿真,一般使用qemu,但是其对于新手来说稍微显得有点复杂。ripes则是一个非常不错的项目可以满足这种需求,并且其提供一些可视化的模块,可以进行仿真测试,很方便。
程序的调试 提到了断点和 GDB,在 RISC-V 已经发布的官方标准中,除了用户指令集与特 权架构外,还包括了一个“外部调试器支持”标准(External Debugger Support)。 提示:不过与前两者不同的是,始终无法找到外部调试器支持标准在 1.0 以上的版本。在本书被撰写之际,该标准的最新官方版本是 0.13.2。鉴于这种 情况...
图2.2 RISC-V调试框架总览 玄铁CPU中的调试模块,是基于《RISC-V Debug Spec v0.13.2》实现的,实现的功能包括:复位及调试控制、寄存器访问、内存访问、断点等功能。 关于调试模块中具体的功能及其操作接口,请查阅《RISC-V Debug Spec v0.13.2》,附链接:https://github.com/riscv/riscv-debug-spec ...
本文将详细介绍RISC-V CPU调试机制的设计原理,架构如下图: 如胡振波老师所说,CPU调试机制可能比CPU core本身的调试还要费时间,cpu进入debug模式,此时pc应指向debug rom,在debug rom内,cpu会根据当前状态执行一段固定程序,程序入口包括entry、resume或exception。
【创建调试配置】MRS调试配置可以由以下几种方式创建:A. MRS模板创建的工程自带.launch配置文件。B. 点击工具栏Debug Configurations选项打开调试配置页,双击GDB OpenOCD Debugging菜单项,创建调试配置。C. 选中工程后直接点击右键菜单”Debug As->OpenOCD Debug”,MRS会根据对应的目标芯片内核创建默认调试...
USB方式通信连接,硬件调试器与RISC‑V芯片组 通过串行线调试协议通信连接,且,RISC‑V芯片 组包含至少一个RISC‑V芯片;在调试过程中,可 以支持RISC‑V芯片组中多芯片、多核或多线程的 调试模式,以提高时效性,并且,由于应用了串行 线调试协议,可以节约调试接口的硬件资源,同 时因为串行线调试协议的奇偶校验...