Ubuntu 12.04下SimpleScalar_PISA 的安装

Ubuntu 12.04下SimpleScalar_PISA 的安装(1)首先准备需要的安装文件,如果没有可到以下地址下载:simpletools‐2v0.tgz:http://www.simplescalar.com/tools.htmlsimplesim‐3v0d‐with‐cheetah.tar.gz:http://www.ict.kth.se/courses/IS2202/softwaresimpleutils‐990811.tar.

大家好,又见面了,我是你们的朋友全栈君。

(1)首先准备需要的安装文件,如果没有可到以下地址下载:

simpletools‐2v0.tgz:

http://www.simplescalar.com/tools.html

simplesim‐3v0d‐with‐cheetah.tar.gz:

http://www.ict.kth.se/courses/IS2202/software

simpleutils‐990811.tar.gz:

http://www.eecs.umich.edu/mirv/software

gcc‐2.7.2.3.ss.tar.gz:

http://american.cs.ucdavis.edu/RAD/gcc‐2.7.2.3.ss.tar.gz

(2)打开终端,设置环境变量为:

(安装目录)

$ exportIDIR=/home/student/simplescalar

(主机)

$ export HOST=i686‐pc‐linux

(目标机)

$ export TARGET=sslittle‐na‐sstrix

(3)student主目录下创建目录simplescalar,并将4个安装包移动至该目录:

$ mkdir $IDIR

$ mv simplesim‐3v0d‐with‐cheetah.tar.gz$IDIR

$ mv simpletools‐2v0.tgz $IDIR

$ mv simpleutils‐990811.tar.gz $IDIR

$ mv gcc‐2.7.2.3.ss.tar.gz $IDIR

(4)使用命令更新Ubuntu下的软件包build‐essential,flex,bison:

$ sudo apt‐get installbuild‐essential flex bison

ubuntu12.04里还需要gcc-multilib

$ sudo apt-get install gcc-multilib

(5)安装SimpleTools:

解压包文件,并移除旧的gcc文件夹:

$ cd $IDIR

$ tar xvfz simpletools‐2v0.tgz

$ rm ‐rf gcc‐2.6.3

(6)安装SimpleUtils:

首先解压包文件。

$ cd $IDIR

$ tar xvfz simpleutils‐990811.tar.gz

$ cd simpleutils‐990811

编译前需要修改一处代码错误:

在目录simpleutils‐990811/ld下找到文件ldlex.l并将所有

yy_current_buffer替换为YY_CURRENT_BUFFER.

接下来开始配置,编译:

$ ./configure ‐‐host=$HOST‐‐target=$TARGET ‐‐with‐gnu‐as ‐‐with‐gnu‐ld‐‐prefix=$IDIR

$ make CFLAGS=‐O

$ make install

(7)安装模拟器:

$ cd $IDIR

$ tar xvfzsimplesim‐3v0d‐with‐cheetah.tar.gz

$ cd simplesim‐3.0

$ make config‐pisa

$ make

测试:

$ ./sim‐safetests/bin.little/test‐math

(8)安装gcc交叉编译器:

解压源代码,并配置安装,修改代码文件读写权限:

$ cd $IDIR

$ tar xvfz gcc‐2.7.2.3.ss.tar.gz

$ cd gcc‐2.7.2.3

$ ./configure ‐‐host=$HOST‐‐target=$TARGET ‐‐with‐gnu‐as ‐‐with‐gnu‐ld‐‐prefix=$IDIR

$ chmod ‐R +w .

接下来,为使编译顺利进行,需要做以下修改:

修改Makefile的第130,行末添加‐I/usr/include;

修改protoize.c的第60,将“#include<varargs.h>”替换为“#include<stdarg.h>”;

1.为了解决decl.c的一处错误信息,名为“invalidlvalue in increment”,做以下修改:

编辑obstack.h的第341行并将:

*((void**)__o‐>next_free)++=((void *)datum);\

替换为:

*((void**)__o‐>next_free++)=((void *)datum);\

并运行以下命令:

$ cp ./patched/sys/cdefs.h../sslittle‐na‐sstrix/include/sys/cdefs.h

$ cp ../sslittle‐na‐sstrix/lib/libc.a../lib/

$ cp ../sslittle‐na‐sstrix/lib/crt0.o../lib/

接下来构建(build)编译器:

$ make LANGUAGES=c CFLAGS=‐O CC=”gcc‐m32″

这个命令执行后会产生错误信息,可能还需要作如下修改:

追加 ‘\’insn‐output.c675, 750823行末尾;

2.再次执行“make LANGUAGES…”,碰到错误“buffer overflow”,这是由于Ubuntu版本

较新造成的。

下载以下文件,放在$IDIR/sslittle‐na‐sstrix/bin:

‐http://www.ict.kth.se/courses/IS2202/ar

‐http://www.ict.kth.se/courses/IS2202/ranlib

然后,请修改arranlib的权限为可执行,不然会提示“Permissiondenied”!

使用命令:

$ chmod +x ar ranlib

或在arranlib的属性中修改。

3.再次执行“makeLANGUAGES…”,提示缺少文件stubs-32.h

$ apt-file update

$ apt-file search stubs-32.h

libc6-dev:/usr/include/i386-linux-gnu/gnu/stubs-32.h

新版的ubuntu更改了stubs-32.h的存放位置。可执行

$ sudo cp/usr/include/i386-linux-gnu/gnu/stubs-32.h /usr/include/gnu/stubs-32.h

4.再次执行“makeLANGUAGES…”,如果需要则删除cxxmain.c2978‐2979行。

现在,运行:

$ make LANGUAGES=c CFLAGS=‐OCC=”gcc ‐m32″

$ make enquire

$ ../simplesim‐3.0/sim‐safe./enquire ‐f > float.h‐cross

$ make LANGUAGES=c CFLAGS=‐OCC=”gcc ‐m32″ install

5.这时可能会有错误“sendmsg.c:36:parse error”

在文件objc/sendmsg.c的第35行加上“#defineSTRUCT_VALUE 0”

这时再makeinstall应该就没有问题了。

测试:新建hello.c,内容为:

#include<stdio.h>

int main(int argc, char* argv)

{

printf(“HelloWorld!\n”);

return 0;

}

然后用如下命令编译:

$ $IDIR/bin/sslittle‐na‐sstrix‐gcc ‐o hello hello.c

生成文件hello,可用如下方式运行:

$ $IDIR/simplesim‐3.0/sim‐safe hello

如果输出“HelloWorld!”,说明安装成功!  

本文章参考《山东大学软件学院 计算机系统结构实验指导书》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135063.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • django修改数据_django-vue-admin

    django修改数据_django-vue-admin前言在ORM框架中,所有模型相关的操作,比如添加/删除等。其实都是映射到数据库中一条数据的操作。因此模型操作也就是数据库表中数据的操作。添加一个模型到数据库中:添加模型到数据库中。首先需要创建一

    2022年7月28日
    3
  • QQ开心农场外挂软件设计思路「建议收藏」

    QQ开心农场外挂软件设计思路「建议收藏」今天玩了一下QQ的开心农场,我有一堆朋友在玩。每次去偷别人的东西时,都要一个一个地点选,看看是否有可摘的东西。然后还要一个个地点摘取,这样才算偷到,感觉好像有点太麻烦了。有时候朋友的东西可摘了,但是我没时间去看(总不能每XX分钟查一次,每次查全部的朋友的吧。。@@,那样会累死。。)然后我就想,如果有一软件,可以自动去自己的好友的地里偷东西。每隔十分钟查一次,如果好友的地里有东西可以摘,就把它…

    2025年8月27日
    6
  • 移动机器人轮式里程计

    移动机器人轮式里程计移动机器人灵魂三问:我在哪?我要去哪里?怎么去?其中,第一问对应机器人定位问题。定位问题可阐述为:移动机器人根据自身状态、传感器信息实时确定自己在世界(全局或局部)中的位置与姿态。阿克曼转向的无人驾驶汽车的定位方案主要有:轮式里程计、视觉里程计、激光里程计、惯性导航模块(IMU+GPS)以及多传感器融合。轮式里程计是一种最简单,获取成本最低的方法。与其它定位方案一样,轮式里程计也需要传感器感知外部信息,只不过,轮式里程计采用的电机转速测量模块是一种成本非常低廉的传感器。本文对搭建智能小车系统过程.

    2022年6月15日
    39
  • 手机号码归属地服务[转载]「建议收藏」

    手机号码归属地服务[转载]「建议收藏」服务地址:http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmxWebXml.com.cn国内手机号码归属地查询WEB服务,提供最新的国内手机号码段归属地数据,每月更新。使用本站WEB服务请注明或链接本站:http://www.webxml.com.cn/感谢大家的支持!支持下列操作。有关正式定义,请查看服务说明。…

    2022年7月22日
    11
  • java项目管理软件系统springboot+mysql+layui+mybatis-plus进销存源码

    java项目管理软件系统springboot+mysql+layui+mybatis-plus进销存源码进销存软件源代码,编程语言为java注意事项(1)用户名:admin;密码:123456。采用springboot+mysql+layui+mybatis-plus技术,用idea开发工具可直接打开!

    2022年5月31日
    38
  • 局域网ping有时通有时不通_ping不通局域网电脑

    局域网ping有时通有时不通_ping不通局域网电脑本文介绍利用ping命令回显来解决网络故障的方法,分别介绍常见的目标主机不可达和ping出现timeout的可能性和解决方法,案例。分为同网段和跨网段两种情况进行列举。涉及网络知识,wireshark的使用技巧,都是本人在几年维护网络中遇到问题的总结,基本涵盖常见故障。有错误的地方,请大家指正讨论。…

    2022年8月10日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号