目前RISC-V的官方调试上位机是openocd,调试工具可以是JLink或者CMSIS-DAP,RISCV调试框架如图所示。 RISC-V调试系统框架 DTM模块 作为DTM使用的JTAG tap必须具有至少5位的IR。当TAP时,IR必须默认为00001,选择IDCODE指令。DTM模块的寄存器定义如图所示。 DTM寄存器 IDCODE寄存器(0x01)当TAP状态
JTAG主机通过IR SCAN设置IR寄存器的值,然后通过DR SCAN来读、写相应的DR寄存器。二、RISC-V调试Spec ...
RISC-V 架构提供32个通用寄存器x0-x31,其中x0 有些特殊,x0 寄存器被设置为硬件连线的常数0,读恒为0,写无效,这个寄存器在一些地方很有作用,因为程序运行中常数0的使用频率非常高,所以专门用一个寄存器来存放常数0,并没有浪费寄存器数量,并且使得编译器工作更加简便,这一点也是RISC-V架构优雅性的体现,比如后面讲...
目录 收起 第4 章 调试支持 第4 章 调试支持 为支持软件调试,IOMMU 可提供一个可选的寄存器接口,软件可使用该接口请求 IOMMU 执行地址转换。当 capabilities.DBG 为 1 时,IOMMU 支持该功能。该接口由两组寄存器组成;转换请求寄存器,用于软件编程 IOVA,以及将 IOVA(第 2.3 节)作为未转换请求转换所需的其他...
main函数使用jal指令,跳转到函数a,并且设置了ra寄存器(这是jal指令的操作)。 接着在函数a()内,首先把ra寄存器的值存储到栈上,然后开始执行其他操作。 在函数a()将要返回的时候,从栈上取出ra的值,并设置到ra寄存器内,于是ret指令就能返回到main函数了。
GDB Stub 会通 过网络或者串行口接收用户通过 GDB 发来的调试指令,将被调试的应用程序从主 机载入到目标系统中,并设置软件断点等。当应用程序运行并触发了软件断点后, 处理器的控制又回到 GDB Stub 手中,然后由用户做进一步调试。GDB Stub 支持 的常用功能包括应用软件的载入、软件断点的设置、寄存器和内存的读取...
【错误中断】下方Registers窗口显示的是RISCV内核的CSR+GPR寄存器,可以用来观测内核状态,有几个寄存器在出现HARDFAULT 错误时可以帮助定位问题,在进入硬件错误中断处理函数时,mepc显示的是出错时的地址,mcause 显示的是原因,mtval 显示的是出错时cpu取到的值,mcause值含义如下图。【断点窗口】Breakpoints窗口可以...
RISC-V通用寄存器 寄存器ABI名称说明 x0zero0值寄存器,硬编码为0,写入数据忽略,读取数据为0 x1ra...
TX_mode: CE拉低后,配置发射地址、发射地址宽度、射频信道、传输速率,发射功率,配置发射模式、CRC、清除STATUS寄存器的标志位!!!(可能在调试程序或者异常退出,没有清除STATUS,但是芯片没断电,可能IRQ的电平一直为低,最好就在初始化时清除STATUS寄存器的标志位。