RISC-V特权模式spec学习笔记 特权模式的软件视角 软件分层:AEE/SEE/HEE 特权等级:User/Supervisor/Hypervisor/Machine debug模式 CSR寄存器 Control and Status Registers (CSRs) CSR寄存器编址约定:特权等级划分、读写属性标识 CSR地址映射表 CSR寄存器读写属性 Machine-Level ISA machine mode读写的寄存器,如mhartid、...
调试模块(debug module)是risc-v内核设计的比较独立也比较重要的一块,虽然0.13.2是risc-v debug的draft版本,但目前市面上risc-v处理器的调试模块几乎都是基于这个spec设计,在risc-v处理器设计中添加调试模块(电路)的目的是在设计固化后,用户仍能获取当前系统状态(通过访问各种资源信息)。所以调试(debug),也可以简...
下面的内容基于RISC-V debug spec 0.13版本。 目前RISC-V的官方调试上位机是openocd,调试工具可以是JLink或者CMSIS-DAP,RISC-V调试系统框架如图3所示。 图3 RISC-V调试系统框架 可以看到主要分为3个部分,分别是Debug Host,可以理解为PC;Debug Hardware,可以理解为JLink或者CMSIS-DAP这样的调试工具;第三部分就是嵌入...
# Pull the latest RISC-V Docs container image: docker pull riscvintl/riscv-docs-base-container-image:latest git clone https://github.com/riscv/riscv-debug-spec.git cd riscv-debug-spec # Optionally, check out a specific revision: # git checkout <rev> git submodule update --init --rec...
对于符合SIFIVE的debug spec的设备来讲,分成DTM、DMI和DM几个部分。这里先祭上事实上的RISC-V标准中的external debug连接关系图,这张图信息量很大。里面的每个部分负责什么工作?如何实现呢?这里的细节不细说了,又可以单独成文了,感兴趣的同学可以自行研读spec。
在2022年,赛昉科技向客户交付了当时业界性能最高的RISC-V CPU Core IP产品,即昉·天枢。一年后,他们再次超越自我,发布了Dubhe-90,其性能媲美ARMCortex-A76,SPECint20069.4/GHz,继续保持了国产RISC-V CPU Core IP产品的领先地位。Dubhe-90的客户主要涵盖了PC、高性能网络通讯、机器学习和数据中心等高端...
现在打开head.S文件,可以直接在代码的左侧点击设置断点,或者在DEBUG CONSOLE下输入 -exec b xxx 设置断点,如下图,左侧红色的小点就是设置的断点: 点击countinue按钮运行: 就会命中断点,左侧还提供了非常丰富的信息: 02 VScode调试MMU开启之后的kernel 有了以上的基础,调试MMU开启之后的kernel就很简单了,只需修改laun...
但是为了完整性,tinyriscv还是加入了JTAG模块,还单独为JTAG写了一篇文章《深入浅出RISC-V调试》,感兴趣的同学可以去看一下,这里不再单独介绍了。要明白JTAG模块的设计原理,必须先看懂RISC-V的debug spec。 4.12 RTL仿真验证 写完处理器代码后,怎么证明所写的处理器是能正确执行指令的呢?这时就需要写testbench来...
作为一款基于RISC-V指令集架构的64位商用处理器核心,Dubhe-80采用9+级流水线、三发、乱序执行设计,SPECint2006 8.0/GHz,性能超越ARM皮质-A75。 Dubhe-80支持迄今为止最完整的RISC-V指令集,包括RV64GC、位操作扩展B(Bitmanip 1.0)、向量扩展V(Vector 1.0)和虚拟化扩展H(Hypervisor 1.0)等。' S...
在玄铁CPU的硬件设计上,调试功能集中在调试模块(Debug Module)中基本结构如图2.2所示。基于该架构,调试模块的各个功能可以覆盖各种IOT设备领域的CPU,包括低功耗、音频处理、视频处理、计算型等领域的CPU。 图2.2 RISC-V调试框架总览 玄铁CPU中的调试模块,是基于《RISC-V Debug Spec v0.13.2》实现的,实现的功能包括...