Coremark-Proのコンパイルができるようになったので、シミュレータで動作させてみた。
swimmer -h builds/linux/gcc-mips/bin/zip-test.srec -o zip-test.sw.log -c 1000000
終了までの命令数を見てみると、
========================================================== Simulation Stop PC = 8002b5ac, InstCount = 17420 ==========================================================
うーん、速すぎない?こんなときのために、コンパイル時に、システムコールでread/writeが読み出されたときはUARTに出すようにしており、 さらにUARTからの読み書きを行うとシミュレータにログが残るようにしている。
_READ_WRITE_RETURN_TYPE _EXFUN(write, (int __fd, const void *__buf, size_t __nbyte )) { int todo; unsigned int *buf = (unsigned int *)__buf; for (todo = 0; todo < __nbyte; todo++) { UART_DR(UART0_ADDR) = *buf++; } return __nbyte; }
grep SimIO zip-test.sw.log SimIO => Mall(6c6c614d) SimIO => oc F(4620636f) SimIO => aile(656c6961) SimIO => d fr(72662064) SimIO => om /(2f206d6f) SimIO => home(656d6f68) SimIO => /vag(6761762f) SimIO => rant(746e6172) SimIO => /ben(6e65622f) SimIO => chma(616d6863) SimIO => rks/(2f736b72) SimIO => core(65726f63) SimIO => mark(6b72616d) SimIO => -pro(6f72702d) SimIO => _1.1(312e315f) SimIO => .244(3434322e) SimIO => 6/be(65622f36) SimIO => nchm(6d68636e) SimIO => arks(736b7261) SimIO => /dar(7261642f) SimIO => kmar(72616d6b) SimIO => k/zi(697a2f6b) SimIO => p/zi(697a2f70) SimIO => p_da(61645f70) SimIO => rkma(616d6b72) SimIO => rk.c(632e6b72) SimIO => :92!(2132393a) ...
Malloc Failed from /home/vagrant/benchmarks/coremark-pro_1.1.2446/benchmarks/darkmark/zip/zip_darkmark.c:92!
うわああん、調査する。