coremark

coremark源码下载

https://github.com/eembc/coremark

解压

cts@cts-pc:~/share/coremark-main$ cp -r linux arm64

cts@cts-pc:~/share/coremark-main$ vi posix/core_portme.mak

CC = aarch64-linux-gnu-gcc -static -lpthread   #支持多核

cts@cts-pc:~/share/coremark-main$ make PORT_DIR=arm64 XCFLAGS="-DMULTITHREAD=8 -DUSE_FORK=1"
make XCFLAGS="-DMULTITHREAD=8 -DUSE_FORK=1 -DPERFORMANCE_RUN=1" load run1.log
make[1]: Entering directory '/home/cts/share/coremark-main'
make port_prebuild
make[2]: Entering directory '/home/cts/share/coremark-main'
make[2]: Nothing to be done for 'port_prebuild'.
make[2]: Leaving directory '/home/cts/share/coremark-main'
make link
make[2]: Entering directory '/home/cts/share/coremark-main'
aarch64-linux-gnu-gcc -static -lpthread -O2 -Iarm64 -Iposix -I. -DFLAGS_STR=\""-O2 -DMULTITHREAD=8 -DUSE_FORK=1 -DPERFORMANCE_RUN=1 -lrt"\" -DITERATIONS=0 -DMULTITHREAD=8 -DUSE_FORK=1 -DPERFORMANCE_RUN=1 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c posix/core_portme.c -o ./coremark.exe -lrt
Link performed along with compile
make[2]: Leaving directory '/home/cts/share/coremark-main'
make port_postbuild
make[2]: Entering directory '/home/cts/share/coremark-main'
make[2]: Nothing to be done for 'port_postbuild'.
make[2]: Leaving directory '/home/cts/share/coremark-main'
make port_preload
make[2]: Entering directory '/home/cts/share/coremark-main'
make[2]: Nothing to be done for 'port_preload'.
make[2]: Leaving directory '/home/cts/share/coremark-main'
echo Loading done ./coremark.exe
Loading done ./coremark.exe
make port_postload
make[2]: Entering directory '/home/cts/share/coremark-main'
make[2]: Nothing to be done for 'port_postload'.
make[2]: Leaving directory '/home/cts/share/coremark-main'
make port_prerun
make[2]: Entering directory '/home/cts/share/coremark-main'
make[2]: Nothing to be done for 'port_prerun'.
make[2]: Leaving directory '/home/cts/share/coremark-main'
./coremark.exe 0x0 0x0 0x66 0 7 1 2000 > ./run1.log
/bin/sh: 1: ./coremark.exe: Exec format error
Makefile:112: recipe for target 'run1.log' failed
make[1]: *** [run1.log] Error 2
make[1]: Leaving directory '/home/cts/share/coremark-main'
Makefile:100: recipe for target 'rerun' failed
make: *** [rerun] Error 2

这里报错是因为交叉编译的二进制无法在linux平台上运行

 C:\Users\c003>adb push coremark.exe /system/bin

C:\Users\c003>adb shell
bati:/ # coremark.exe   #运行
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 26794
Total time (secs): 26.794000
Iterations/Sec : 119429.723072
Iterations : 3200000
Compiler version : GCC7.5.0
Compiler flags : -O2 -DMULTITHREAD=8 -DUSE_FORK=1 -DPERFORMANCE_RUN=1 -lrt
Parallel Fork : 8
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[1]crclist : 0xe714
[2]crclist : 0xe714
[3]crclist : 0xe714
[4]crclist : 0xe714
[5]crclist : 0xe714
[6]crclist : 0xe714
[7]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[1]crcmatrix : 0x1fd7
[2]crcmatrix : 0x1fd7
[3]crcmatrix : 0x1fd7
[4]crcmatrix : 0x1fd7
[5]crcmatrix : 0x1fd7
[6]crcmatrix : 0x1fd7
[7]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[1]crcstate : 0x8e3a
[2]crcstate : 0x8e3a
[3]crcstate : 0x8e3a
[4]crcstate : 0x8e3a
[5]crcstate : 0x8e3a
[6]crcstate : 0x8e3a
[7]crcstate : 0x8e3a
[0]crcfinal : 0x65c5
[1]crcfinal : 0x65c5
[2]crcfinal : 0x65c5
[3]crcfinal : 0x65c5
[4]crcfinal : 0x65c5
[5]crcfinal : 0x65c5
[6]crcfinal : 0x65c5
[7]crcfinal : 0x65c5
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 119429.723072 / GCC7.5.0 -O2 -DMULTITHREAD=8 -DUSE_FORK=1 -DPERFORMANCE_RUN=1 -lrt / Heap / 8:Fork

posted @ 2022-03-09 19:28  牧 天  阅读(706)  评论(0)    收藏  举报