在RISC-V内核进入Debug模式后,Debugger设置dcsr.step位,让RISC-V内核返回正常工作模式之后,只执行一条指令,然后马上重新进入Debug模式。 如果dcsr.ebreakX被置1,则内核执行到ebreak指令时会进入Debug模式。 退出Debug模式条件: 在Debug模式执行dret指令,会使内核退出Debug模式,恢复正常指令流的执行。RISC-V内核跳转...
RISC-V调试标准主要包含RISC-V调试规范(Debug Specification)。它定义了调试接口和协议,为RISC-V处理器的调试提供统一的框架 。 从调试接口来看,RISC-V调试规范定义了一个标准化的调试访问端口(Debug Access Port,DAP)。这个端口通常基于JTAG(Joint Test Action Group)或SWD(Serial Wire Debug)等常见的调试接口协议进...
调试模块(debug module)是risc-v内核设计的比较独立也比较重要的一块,虽然0.13.2是risc-v debug的draft版本,但目前市面上risc-v处理器的调试模块几乎都是基于这个spec设计,在risc-v处理器设计中添加调试模块(电路)的目的是在设计固化后,用户仍能获取当前系统状态(通过访问各种资源信息)。所以调试(debug),也可以简...
4. 每个hart在硬件平台上都能独立进行debug。 5. 一个debugger能探测到几乎所有信息,无需用户额外配置。 6. 每个hart都能从首条指令开始执行时进行debug。 7. 当软件断点指令被执行时,RISCV hart可以被中止。 8. 硬件支持单步执行,即每次只执行一条指令。 9. debug功能使用的transport是独立的。 10. debugger...
在MMU开启之前,内核代码是位置无关的代码(Position Independent Code, PIC),可以在任意地址上运行,也就导致了运行地址与链接地址不一致的情况,需要加载symbol到相应的位置才能进行debug。而在MMU开启之后,内核开始运行在虚拟地址上,此时运行地址和链接地址是一致的。
下图是FT2232和FT4232芯片的原理图,FT2232有channel 0,1两个通道,在下图已经标出。FT4234有channel 0,1,2,3共4个通道;而ELITES-232DL使用的是FT232,它只有channel 0.所以在使用不同的下载噐方案时,尤其是在对RISCV进行debug时就是使用不同的配置参数;否则就会报上面的错误。
目前RISC-V官方支持的调试方式是JTAG(Joint Test Action Group),而ARM支持的调试方式有JTAG和SWD(Serial Wire Debug)这两种。 JTAG是一种国际标准的调试方式(IEEE1149.1),而SWD是ARM开发的。 标准JTAG采用四线方式,分别是TCK、TMS、TDI和TDO,有一个可选的TRST引脚。
【更改默认断点位置】当然如果希望工程可以直接停在main函数起始地方,也可以去手动更改此断点的位置,点击调试图标旁的下拉按钮,选择”Debug Configurations”,在弹出的页面中选择Startup选项卡,将set breakpoint at 设置为 main即可。配置完成后点击右下角 Debug,或者保存之后退出配置,点击菜单栏 ,进入调试模式...
【更改默认断点位置】当然如果希望工程可以直接停在main函数起始地方,也可以去手动更改此断点的位置,点击调试图标旁的下拉按钮,选择”Debug Configurations”,在弹出的页面中选择Startup选项卡,将set breakpoint at 设置为 main即可。 配置完成后点击右下角 Debug,或者保存之后退出配置,点击菜单栏 ,进入调试模式后就会停...
下图是FT2232和FT4232芯片的原理图,FT2232有channel 0,1两个通道,在下图已经标出。FT4234有channel 0,1,2,3共4个通道;而ELITES-232DL使用的是FT232,它只有channel 0.所以在使用不同的下载噐方案时,尤其是在对RISCV进行debug时就是使用不同的配置参数;否则就会报上面的错误。