JTAG主机通过IR SCAN设置IR寄存器的值,然后通过DR SCAN来读、写相应的DR寄存器。二、RISC-V调试Spec ...
RISC-V通用寄存器 寄存器ABI名称说明 x0zero0值寄存器,硬编码为0,写入数据忽略,读取数据为0 x1ra...
【添加监测变量】Experssions可以自定义添加监测的变量,也同样可以修改,效果和Variables窗口中的一致。【错误中断】下方Registers窗口显示的是RISCV内核的CSR+GPR寄存器,可以用来观测内核状态,有几个寄存器在出现HARDFAULT 错误时可以帮助定位问题,在进入硬件错误中断处理函数时,mepc显示的是出错时的地址,mcause 显示...
GDB Stub 会通 过网络或者串行口接收用户通过 GDB 发来的调试指令,将被调试的应用程序从主 机载入到目标系统中,并设置软件断点等。当应用程序运行并触发了软件断点后, 处理器的控制又回到 GDB Stub 手中,然后由用户做进一步调试。GDB Stub 支持 的常用功能包括应用软件的载入、软件断点的设置、寄存器和内存的读取...
性能统计相关和调试接口相关,如MCYCLE(Machine Cycle)等。 CSR寄存器列表如下: CSR寄存器的读写 访问CSR寄存器需要特别的CSR指令,CSR 指令在 RISC-V 的 Zicsr 扩展模块中定义。 3 程序计数器PC 有些处理器架构中用通用寄存器来存放PC,这样使用普通的指令即可改变PC值,从而引起跳转,这样并不是一个很好的做法,RISC...
如胡振波老师所说,CPU调试机制可能比CPU core本身的调试还要费时间,cpu进入debug模式,此时pc应指向debugrom,在debug rom内,cpu会根据当前状态执行一段固定程序,程序入口包括entry、resume或exception。 entry的作用是将s0存入CSR_DSCRATCH寄存器、然后进行状态寄存器检查、s1存到debugram最后位置(DEBUG_RAM + DEBUG_RAM_...
通过该调试接口完成转换请求的时间 UNSPECIFIED,但要求是有限的。如果通过该寄存器接口发出请求时,IOMMU 正在处理来自 IO Bridge 的转换请求,那么完成请求的时间可能会比 IOMMU 空闲时长。 调试接口是可选的,但建议实施调试接口,以帮助软件调试和实施架构符合性测试。
main函数使用jal指令,跳转到函数a,并且设置了ra寄存器(这是jal指令的操作)。 接着在函数a()内,首先把ra寄存器的值存储到栈上,然后开始执行其他操作。 在函数a()将要返回的时候,从栈上取出ra的值,并设置到ra寄存器内,于是ret指令就能返回到main函数了。