前回、MCSをダウンロードしてSiFiveのRISC-VコアE51を起動させた。
その時は、デバッグ用の機器を用意していなかったので自分のプログラムを動作させることができなかったが、ハードウェア設計の師匠からメールをもらい、プログラムを動作させることができるようになった。
詳細は師匠の技なのでこのブログには書かないが、MCSファイルの中身を差し替えてプログラム部分を差し替えることによりプログラムを動作させることができるようになる。
ここではfreedom-e-sdkに格納されている64ビット版Coremarkをコンパイルし、コンパイル結果のihexファイルをMCSファイルと結合することによりプログラムを動作させることにした。
MCSファイルを改変した結果、無事にCoremarkプログラムが起動した。
Coremark/MHzの計算方法は、例によって で計算できるので、今回は となる。
あれ、公称値と少し違うなあ。
core freq at 65000000 Hz core freq at 65000000 Hz 2K performance run parameters for coremark. CoreMark Size : 666 Total ticks : 18446744073688525916 Total time (secs): 65.753011 Iterations/Sec : 152.084290 Iterations : 10000 Compiler version : GCC7.1.0 Compiler flags : -O2 -fno-common -funroll-loops -finline-functions --param max-inline-insns-auto=20 -falign-functions=4 -falign-jumps=4 -falign-loops=4 Memory location : STACK seedcrc : 0xe9f5 [0]crclist : 0xe714 [0]crcmatrix : 0x1fd7 [0]crcstate : 0x8e3a [0]crcfinal : 0x988c Correct operation validated. See readme.txt for run and reporting rules. CoreMark 1.0 : 152.084290 / GCC7.1.0 -O2 -fno-common -funroll-loops -finline-functions --param max-inline-insns-auto=20 -falign-functions=4 -falign-jumps=4 -falign-loops=4 / STACK Progam has exited with code:0x0000000000000000