コンソール付きのシミュレータがほしい(XMODEM)

結構放置気味だった、V-scale chip シミュレータに XMODEM 機能を追加しました。
だらだらとしたテストベンチになっちゃいましたが、動けば良いんです。CAN には対応していませんが、CAN なんて来るわけ無いんで良いんです。
kzload は XMODEM の実装で待ち時間を作るために空のループをすごくたくさん回しています。こんなのが有るとシミュレーションがとても終わりません。うまく解決する方法が思いつかないので、#if 使ってループ回数切り替えてます。とっても格好悪いです。Makefile もかなり格好悪いです。もう、動けば何でもいいや状態です。
とりあえず検証環境が完成したので、V-scale と AHB X-bar の役割分担をちゃんと直して、無駄な命令フェッチのストールも無くしたいと思います。
こんな感じで動くのですが、エコーバックが1文字ずつにならないのが謎です。
[追記 getc は改行があるまでバッファするようです。ここに書いてました。ここには解決法も書いてあって、ローカルエコーも改行待ちも無しにするおまじないがありました。真似しました。]
~/RISC-V/vscale-chip/src/main/c/bootload$ make
[省略]
~/RISC-V/vscale-chip/src/main/c/os$ make
[省略]
~/RISC-V/vscale-chip$
make verilator-sim
[省略]
~/RISC-V/vscale-chip$ make verilator-board-test
cp src/main/c/bootload/kzload.ihex loadmem.ihex
cp src/main/c/os/kozos xmodem.dat
touch ram.data3 ram.data2 ram.data1 ram.data0
sim/Vvscale_verilator_top +max-cycles=180000 --vcdfile=tmp.vcd
Running ...
kzload (kozos boot loader) started.
kzload> load

XMODEM receive succeeded.
kzload> run
starting from entry point: 1900
Hello World!
> echo aaa
aaa
> q
rm ram.data3 ram.data2 ram.data1 ram.data0

[PR]
トラックバックURL : http://tom01h.exblog.jp/tb/27519210
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
by tom01h | 2017-02-08 01:29 | PCとか | Trackback | Comments(0)