ESESC仿真器的安装
2016-03-23 11:42
519 查看
一、ESESC简介
1、ESESC blog has these slides
http://masc.soe.ucsc.edu/esesc2、ESESC forum
https://groups.google.com/forum/#!forum/esesc3、ESESC repository at github
https://github.com/masc-ucsc/esesc4、To get the code
https://github.com/masc-ucsc/esesc.git注意:上面都是一些链接,你可以从这些网站得到一些关于ESESC仿真器的资料。
二、ESESC仿真器的安装
1、首先从官网下载源代码,上面的链接已经给出
2、建立自己的目录结构,例如:/home/ercesi/cyh/esesc
3、将下载好的源代码解压到自己的目录下,例如: /home/ercesi/cyh/esesc/esesc-master
4、ESESC版本
ESESC有两个版本,即release版本和debug版本,debug版本slower、 more information ,然而release版本 faster 、less information,在本文中采用的是release版本。在/home/ercesi/cyh/esesc/esesc-master下面建立build目录,在build目录下建立release目录,最后结果:/home/ercesi/cyh/esesc/esesc-master/build/release
5、安装下面的软件
sudo apt-get install build-essential sudo apt-get install cmake sudo apt-get install libboost-dev sudo apt-get install bison flex sudo apt-get install g++ sudo apt-get install python sudo apt-get install texinfo sudo apt-get install libglib2.0-dev sudo apt-get install libncurses5-dev
6、编译
执行下面的指令:cmake ~/cyh/esesc/esesc-master
输出的内容:
ercesi@demo:~/cyh/esesc/esesc-master/build/release$ cmake /home/ercesi/cyh/esesc/esesc-master -- The C compiler identification is GNU 4.4.7 -- The CXX compiler identification is GNU 4.4.7 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Using /usr/bin/cc -DESESC_SYSTEM=0 Enable esesc/qemu user mode simulation -DESESC_LIVE=0 Disable esesc live compilation (default) -DCMAKE_HOST_MARCH=native compilation -DCMAKE_BUILD_TYPE=Release release compilation options (default) -- Found ZLIB: /usr/local/lib/libz.so (found version "1.2.8") -- Looking for include file pthread.h -- Looking for include file pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Found Curses: /usr/lib/x86_64-linux-gnu/libcurses.so -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found -- Looking for gethostbyname -- Looking for gethostbyname - found -- Looking for connect -- Looking for connect - found -- Looking for remove -- Looking for remove - found -- Looking for shmat -- Looking for shmat - found -- Looking for IceConnectionNumber in ICE -- Looking for IceConnectionNumber in ICE - found -- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so -- Could NOT find pixman-1 (missing: PIXMAN_LIBRARY PIXMAN_INCLUDE_DIR) -- Found PkgConfig: /usr/bin/pkg-config (found version "0.26") -- checking for one of the modules 'sdl2' -- Found PythonInterp: /usr/bin/python (found version "2.7.6") -- Configuring done -- Generating done -- Build files have been written to: /home/ercesi/cyh/esesc/esesc-master/build/release
执行下面的指令:
make
在这一步的时候我遇到了好多的问题,下面来谈谈我遇到的问题。
问题1:在80%的时候由于qume的问题而无法继续
解决的方法:执行下列代码
cd ~/cyh/esesc/esesc-master/emul/qemu ./configure sudo make sudo make install
问题2:再次make的时候,出现的问题是提示pixman的版本低
解决的方法:下载高版本的pixman,并且按照一般软件安装的方法进行安装。
问题3:再次make又会出现如下的问题:
ERROR: DTC (libfdt) not present. Your options: (1) Preferred: Install the DTC (libfdt) devel package (2) Fetch the DTC submodule, using: git submodule update --init dtc
解决的方法:执行下面的代码:
sudo apt-get install libfdt-dev
问题4:再次make的时候出现以下的问题,提示许多的库找不到,这个时候耐心的安装所有短缺的库就可以。
/usr/bin/ld: cannot find -lGLESv2 /usr/bin/ld: cannot find -lepoxy /usr/bin/ld: cannot find -lEGL /usr/bin/ld: cannot find -lGLESv2 /usr/bin/ld: cannot find -lepoxy /usr/bin/ld: cannot find -lEGL /usr/bin/ld: cannot find -lGLESv2 /usr/bin/ld: cannot find -lepoxy /usr/bin/ld: cannot find -lEGL /usr/bin/ld: cannot find -laio /usr/bin/ld: cannot find -lcurl /usr/bin/ld: cannot find -lssh2 /usr/bin/ld: cannot find -lbz2 /usr/bin/ld: cannot find -lpixman-1 /usr/bin/ld: cannot find -lnuma /usr/bin/ld: cannot find -lncursesw /usr/bin/ld: cannot find -luuid /usr/bin/ld: cannot find -lSDL collect2: ld returned 1 exit status make[2]: *** [main/esesc] Error 1 make[1]: *** [main/CMakeFiles/esesc.dir/all] Error 2 make: *** [all] Error 2
解决的方法:安装下列库文件
sudo apt-get install libgles2-mesa-dev sudo apt-get install libepoxy-dev sudo apt-get install libegl1-mesa-dev sudo apt-get install libaio-dev sudo apt-get install libcurl4-openssl-dev sudo apt-get install libssh2-1-dev sudo apt-get install libbz2-dev sudo apt-get install libnuma-dev sudo apt-get install libncursesw5-dev sudo apt-get install uuid-dev sudo apt-get install libsdl-dev
问题5:再次make又会出现下面的问题。
/usr/bin/ld: cannot find -lseccomp collect2: ld returned 1 exit status make[2]: *** [main/esesc] Error 1 make[1]: *** [main/CMakeFiles/esesc.dir/all] Error 2 make: *** [all] Error 2
解决的方法:执行下面的指令即可
sudo apt-get install libseccomp-dev
然后make,如果出现以下的内容证明ESESC安装成功。
[ 98%] Building CXX object main/CMakeFiles/rabbitso.dir/__/misc/libsuc/Snippets.cpp.o Linking CXX shared library librabbitso.so [ 98%] Built target rabbitso Scanning dependencies of target gtest [ 98%] Building CXX object tests/gtest-1.7.0/CMakeFiles/gtest.dir/src/gtest-all.cc.o Linking CXX static library libgtest.a [ 98%] Built target gtest Scanning dependencies of target gtest_main [100%] Building CXX object tests/gtest-1.7.0/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o Linking CXX static library libgtest_main.a [100%] Built target gtest_main
7、运行例子程序
在release下面建立run文件夹,并且将/home/ercesi/cyh/esesc/esesc-master/bins/和/home/ercesi/cyh/esesc/esesc-master/conf/下的所有文件拷贝到run下。接着执行下面的代码:
cd ~/cyh/esesc/esesc-master/build/release/run ~/cyh/esesc/esesc-master/build/release/main/esesc <crafty.in
输出的结果如下:
Fill router is ITLB(0) Bottom:clear router is Memory(0) single:clear router is L2(0) single:clear router is IL1(0) single:clear router is ITLB(0) Fill router is PTLB(0) Bottom:clear router is Memory(0) single:clear router is L2(0) Creating ooorder processor 0 Fill router is ITLB(1) Bottom:clear router is Memory(1) single:clear router is L2(1) single:clear router is IL1(1) single:clear router is ITLB(1) Fill router is PTLB(1) Bottom:clear router is Memory(0) single:clear router is L2(0) Creating ooorder processor 1 Fill router is ITLB(2) Bottom:clear router is Memory(2) single:clear router is L2(2) single:clear router is IL1(2) single:clear router is ITLB(2) Fill router is PTLB(2) Bottom:clear router is Memory(1) single:clear router is L2(1) Creating ooorder processor 2 Fill router is ITLB(3) Bottom:clear router is Memory(3) single:clear router is L2(3) single:clear router is IL1(3) single:clear router is ITLB(3) Fill router is PTLB(3) Bottom:clear router is Memory(1) single:clear router is L2(1) Creating ooorder processor 3 Sampler: inst, R:2500000, W:2450000, D:20000, T:130000 Sampler: inst, nInstMax:500000000, nInstSkip:100000000, maxnsTime:500000000 Power calculations disabled STARTING QEMU ...... QEMUReader: Initializing qemu... Starting qemu with arg[0] is: qemu arg[1] is: spec00_crafty.mips64 r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0 Crafty v14.3 White(1): White(1): pondering disabled. White(1): noise level set to 0. White(1): search time set to 99999.00. White(1): verbosity set to 5. White(1): White(1): search depth set to 11. White(1): clearing hash tables depth time score variation (1) 1 ###.## 4.14 Qxb6 1-> ###.## 4.14 Qxb6 2 ###.## 4.01 Qxb6 e4 2-> ###.## 4.01 Qxb6 e4 3 ###.## ++ Qxb6!! 3 ###.## 4.32 Qxb6 Rf6 Qd8+ Kh7 3-> ###.## 4.32 Qxb6 Rf6 Qd8+ Kh7 4 ###.## 4.22 Qxb6 e4 Qe6 Rf2 4-> ###.## 4.22 Qxb6 e4 Qe6 Rf2 5 ###.## 4.15 Qxb6 Rf2 Qd8+ Kh7 Qd3+ e4 Qd6 5-> ###.## 4.15 Qxb6 Rf2 Qd8+ Kh7 Qd3+ e4 Qd6 6 ###.## 4.01 Qxb6 Rf2 Qd8+ Kh7 Qd5 Qe2 b4 6-> ###.## 4.01 Qxb6 Rf2 Qd8+ Kh7 Qd5 Qe2 b4 r0r0 7 ###.## -- Qxb6 r0r0r0r0r0 7 ###.## 0.09 Qxb6 Rf1 Qd8+ Kh7 Qd3+ e4 Qxf1 Qxf1 b4 r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0 7-> ###.## 0.09 Qxb6 Rf1 Qd8+ Kh7 Qd3+ e4 Qxf1 Qxf1 b4 r0r0r0r0r0r0r0r0r0r0r0r0r0 8 ###.## -0.13 Qxb6 Rf1 Qd8+ Kh7 Qd3+ e4 Qxf1 Qxf1 b4 e3 r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0BootLoader::unboot called... Finishing the work Destroying TQueue 15 with pending nodes
继续执行下面的代码:
~/cyh/esesc/esesc-master/conf/scripts/report.pl -a
输出的结果如下:
Good Luck Fern!
相关文章推荐
- iOS开发的一些奇巧淫技
- 使用多线程方法实现一个死锁程序,用来提醒自己不要犯这样的错误
- 键路径(keyPath)、键值编码(KVC)和键值观察(KVO)
- 工厂方法模式( Factory Method 模式 )
- wordpress内存不足问题“Fatal error:out of memoryin etc...”
- VS 自动添加注释
- java多线程回顾2:生命周期与控制
- tcp/ip ---子网寻址
- Ubuntu上安装Maven Eclipse以及配置
- vimdff cannot read or write temp files
- (java)求N阶乘末尾0的个数
- layout_width和width有什么区别
- 关于多线程的使用一些基本介绍
- 更改导航栏的背景和文字Color
- Linux文件访问权限
- Java字符串:StringBuilder使用详解及源码分析
- POJ 1837 Balance(01背包 动态规划)
- hdu 1394 Minimum Inversion Number
- #6号板问题
- centos6.5下使用NMON监控、分析系统性能!!!