chronos和simplescalar安装
安装预先准备
安装环境
ubuntu 9.04(32-bit) Virtualbox
镜像
ubuntu-9.04-desktop-i386.iso
chronos安装包
chronos2.0版本安装包.zip
安装步骤
系统安装
正常按照步骤安装系统
安装好系统之后,切换源,教程如下,笔者使用的中科大源:
https://mirrors.ustc.edu.cn/help/ubuntu-old-releases.html
sudo sed -i 's/cn.archive.ubuntu.com/mirrors.ustc.edu.cn/ubuntu-old-releases/g' /etc/apt/sources.list
更换完源后,安装桌面工具,点击虚拟机客户端,生成插件到桌面并执行:
sudo sh VBoxLinuxAdditions.run
安装相关工具包:
sudo apt-get install vim
sudo apt upgrade
sudo apt-get install openssh-server
Chronos安装
将chronos传入虚拟机
scp ./chronos2.0.zip chronos@192.168.2.108
创建chronos文件夹,simplescalar将安装包内容解压到此
mkdir simplescalar
unzip chronos2.0.zip
mkdir simplescalar
mv simplesim-3.0.tgz simplescalar/
安装Chronos2.0分析器
添加全局路径
export IDIR=$HOME/chronos
安装相关依赖
sudo apt-get install flex-old
sudo apt-get install bison
sudo apt-get install openjdk-6-* -y
编译est 分析器
cd est && make
cd ..
cd gui && make
安装lp_solve
将其含有文件全部解压
安装simplescalar
cd ..
cd simplescalar
sudo apt-get install gcc-3.4
添加simplescalar环境变量
先查看平台,看是i686或是i386
uname -m
export CC="gcc-3.4"
export HOST=i686-unknown-linux
export TARGET=sslittle-na-sstrix
export IDIR=$HOME/chronos/simplescalar
解压simplescalar
tar xvf simpletools-2v0.tgz
rm -rf gcc-2.6.3
tar -xvzf simpleutils-990811.tar.gz
Simplescalar utils编译安装
./configure --host=$HOST --target=$TARGET --with-gnu-as --with-gnu-ld --prefix=$IDIR
make CC=gcc-3.4
sudo make install CC=gcc-3.4
到此utils工具包安装完成
Simplesim-3.0安装
make config-pisa
make CC=gcc-3.4
Simplescalar gcc安装
操作目录:gcc-2.7.2.3/
PS:$IDIR=&HOME/chronos/simplescalar此时IDIR已改变
tar xvzf gcc
export PATH=$PATH:$IDIR/sslittle-na-sstrix/bin
./configure --host=$HOST --target=$TARGET --with-gnu-as --with-gnu-ld --prefix=$IDIR
make LANGUAGES="c c++" CFLAGS=-O3 CC=gcc-3.4
此时会报错:
修改cxxmain.c
chmod +w cxxmain.c
在第cxxxmain.c 2978与2979行注释掉,修改后重新make:
make clean
make
备份相关文件
cd ..
cd sslittle-na-sstrix/include/sys cp cdefs.h cdefs.h.bak
cp patched/sys/cdefs.h ../sslittle-na-sstrix/include/sys/
make enquire CC=gcc-3.4
测试simlpescalar交叉编译的程序是否能够运行,用编译器运行
../simplesim-3.0/sim-safe ./enquire -f > float.h-cross
出现以下结果则安装成功
将编译好的gcc安装到当前目录
sudo make install LANGUAGES="c c++" CFLAGS=-O3 CC=gcc-3.4 PATH=$PATH:$HOME/chronos/simplescalar/bin
测试simplescalar-gcc是否安装成功
写一个简单的c程序
#include<stido.h>
int main()
{
printf("hello world!");
return 0;
}
sudo make install LANGUAGES="c c++" CFLAGS=-O3 CC=gcc-3.4 PATH=$PATH:$HOME/chronos/simplescalar/bin
simplescalar/simplesim-3.0/sim-safe a.out
切换命令解释器以适配chronos
sudo mv /bin/sh sh.bak
sudo ln /bin/bash /bin/sh
此环境默认jre为:
运行chronos
当前路径:chronos
cd gui
./gui.sh
软件运行结果
出现如下界面:
到此安装成功,配置好相关文件即可运行。
运行结果展示如下:
沙滩玉米: 它这个是指令级别的分类,针对不同指令适配
weixin_43578694: 亲有arm版本吗 ,参考一下 十分感谢
weixin_43578694: 博主有arm版本吗
沙滩玉米: 应该是指令解析要做成ARM版,硬件架构是没变的,貌似github上有人做过arm的
qq_37752246: 如果将指令移植成armv8 指令,SimpleScalar是不是需要重装为SimpleScalar ARM版