代码之家  ›  专栏  ›  技术社区  ›  Jack Koenig

火箭芯片指令跟踪列

  •  2
  • Jack Koenig  · 技术社区  · 6 年前

    当我跑的时候 make run-asm-tests emulator 火箭芯片目录,我有一堆 *.out 中的文件 emulator/output 目录。这些似乎是指令跟踪,但列没有标记。我想知道每一列是什么意思。谢谢!

    例如:

    C0:      82212 [0] pc=[000000081c] W[r 0=0000000000000400][0] R[r 8=0000000000000000] R[r 0=0000000000000000] inst=[40044403] lbu     s0, 1024(s0)
    C0:      82213 [0] pc=[000000081c] W[r 0=0000000000000400][0] R[r 8=0000000000000000] R[r 0=0000000000000000] inst=[40044403] lbu     s0, 1024(s0)
    C0:      82214 [1] pc=[0000000820] W[r 8=0000000000000000][1] R[r 8=0000000000000000] R[r 3=0000000000000003] inst=[00347413] andi    s0, s0, 3
    C0:      82215 [1] pc=[0000000824] W[r 0=0000000000000000][0] R[r 8=0000000000000000] R[r 0=0000000000000000] inst=[fe0408e3] beqz    s0, pc - 16
    C0:      82216 [1] pc=[0000000814] W[r 8=0000000000000000][1] R[r 0=0000000000000000] R[r20=0000000000000003] inst=[f1402473] csrr    s0, mhartid
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   colins    6 年前

    第一列 C0: 代表核心0。如果有多个核心,则每个核心都将打印其自身的跟踪,并以其为前缀 hartid 是的。

    第二列 82212 通过 82216 是当前循环号。

    第三纵队 [0] [1] 显示此指令是否已提交此周期(即无异常完成)。

    第四纵队 pc=[...] 显示当前程序计数器值。

    第五纵队 W[r 8=...][1] 以的后缀显示当前指令的目标寄存器。 r ,在 = ,以及是否在 [0] [一] 是的。

    第六纵队 R[r 8=...] 'r 从寄存器中读取的值 = 是的。

    第七列与第六列相同,但用于第二个源寄存器。

    第八纵队 inst=[...] 显示当前指令中的位。

    第九列和最后一列显示当前指令的反汇编。

    推荐文章