Spikeシミュレータの使い方
Spikeシミュレータの使い方
Spikeの起動方法
code:sh
$ spike /opt/riscv/pk/riscv32-unknown-elf/bin/pk test/4649
bbl loader
sp = 0x7ff0bb40, hp = 0x31c80
4649
Spikeの各種コマンド
code:sh
# 指定した番地までプログラムを実行する(0はCPU番号)
until pc 0 10238
# 現在のpcの値を参照(0はCPU番号)
pc 0
# レジスタ一覧(0はCPU番号)
reg 0
# ヘルプ表示
help
# メモリ中の指定したアドレスの値を参照
mem 0 7ff0bb40
# 命令を1つ実行
<retru key>
until pc 0 <番地> で使う番地の調べるには objdump を使う。_min_caml_start の先頭番地に行くには until pc 0 10238 とコマンドを入力すればOK
code:sh
$ riscv32-unknown-elf-objdump -D test/4649
...
00010238 <_min_caml_start>:
10238: 00050d13 mv s10,a0
1023c: 00058d93 mv s11,a1
10240: 010d0d13 add s10,s10,16
10244: fe1d2c23 sw ra,-8(s10)
10248: fe8d2e23 sw s0,-4(s10)
1024c: ff0d0413 add s0,s10,-16
10250: 00001537 lui a0,0x1
10254: 22950513 add a0,a0,553 # 1229 <exit-0xee6f>
10258: 00008293 mv t0,ra
1025c: 005d2223 sw t0,4(s10)
10260: 008d0d13 add s10,s10,8
10264: 054000ef jal 102b8 <_min_caml_print_int>
10268: ff8d0d13 add s10,s10,-8
1026c: 004d2283 lw t0,4(s10)
10270: 00028093 mv ra,t0
10274: 00008293 mv t0,ra
10278: 005d2223 sw t0,4(s10)
1027c: 008d0d13 add s10,s10,8
10280: 0bc000ef jal 1033c <_min_caml_print_newline>
10284: ff8d0d13 add s10,s10,-8
10288: 004d2283 lw t0,4(s10)
1028c: 00028093 mv ra,t0
10290: ff8d2083 lw ra,-8(s10)
10294: ffcd2403 lw s0,-4(s10)
10298: ff0d0d13 add s10,s10,-16
1029c: 00008067 ret
000102a0 <LC0>:
102a0: 6425 .2byte 0x6425
...