快速业务通道

SimpleScalar的安装方法(Red Hat Linux 9.0,gcc3.2.2环境)

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-04
SimpleScalar的安装方法
Wisconsin.Madison大学发布的SimpleScalar模拟器是一个开放软件,源代码是公开的,具有良好的可移植性和可扩展性,能够支持各种不同层次设计人员的需求,因而得到了广泛的应用.是开发微处理器芯片前期进行体系结构验证的重要工具,下面介绍其在Red Hat Linux 9.0编译器给gcc 3.2.2环境下的安装方法.
一.确定安装环境
本安装方法适用于Red Hat Linux 9.0操作系统,自带的GCC编译器是GCC 3.2.2版本.其他系列的linux操作系统或是其他版本GCC下安装过程可能有些细节上的不同.
注:不同版本的GCC编译器下一些库的定义可能有不同,因此要确定一下本机的GCC编译器版本.确定方法是进入命令行输入命令gcc –v得到的结果如图1.1所示:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 拥有帝国一切,皆有可能。欢迎访问phome.net
图1.1
可见本机的GCC版本为GCC 3.2.2,根据simplescalar网站上的一些介绍,该模拟器的开发工具可能是GCC2.7左右,比较接近GCC 3.2.2,因此估计安装过程会比较顺利.
二.获得安装包
完成本安装过程的安装包可以在[url]http://www.simplescalar.com[/url]下下载,本安装所需要的安装包共有以下三个

三 建立安装目录,解压安装包
建立安装目录为/root/simplescalar,将安装包复制到安装目录,整个过程如下:

解压缩,命令为tar –zxvf,加压缩完毕后用rm*.tgz命令删除压缩包,整个过程输入命令如下:
tar –zxvf simplesim-3v0d.tgz
tar –zxvf simpletools-2v0.tgz
tar –zxvf simpleutils-2v0.tgz
rm*.tgz
加压缩后得到如下七个文件夹:

四.安装binutils2.5.2
用configure命令配置程序的安装环境和参数,生成Makefile文件,整个过程如下:

注:configure命令的参数含义说明
-host:配置安装环境
-target:配置成littleEndian模式
-with-gnu-as 加载汇编器
-with-gnu-ld 加载链接器
-prefix 设置安装目录
此时遇到两个错误,如下所示:

从错误说明可以估计出错误来自于libiberty文件夹下的dummy.c文件.网上一些帖子说是dummy.c中定义的宏functions.def文件中的函数定义与声明不一致引起的,将它们改成一致就可以通过编译.但是这样做的话,继续编译依然会遇到许多错误.这里我试出了最好的方法就是将dummy.c文件中的内容全部删除(即将dummy.c变成空文件)然后再make一次,这回不报任何错误,编译一次通过!
运行make install命令,这时binutils-2.5.2安装成功!
五.安装simplescalar
Simplescalar是最简单的一个安装过程,运行下列命令即可完成安装! 拥有帝国一切,皆有可能。欢迎访问phome.net

六.安装gcc-2.6.3
安装好simplescalar后在安装文件夹/root/simplescalar下可以找到一个名为bin的文件夹,里面包含的是一些simplescalar自带的工具,如链接工具等,该文件内容如下:

可见,里面没有C编译工具gcc,因此还需要安装gcc2.6.3作为simplescalar的内置编译工具,下面介绍安装方法.
对安装环境进行配置,生成Makefile文件,具体方法如下图所示.

Makefile文件生成完毕后,运行make命令,此时出现以下错误:

由错误报告可知,这是sys_errlist的定义不一致造成的,打开cccp.c文件发现其194行附近有如下代码,第194行为extern char *sys_errlist[].显然要消除冲突,只需改变宏编译的分支方向,使其不走这一分支即可.尝试在这段代码前面如175行加上#define bsd4_4,修改后再次make,该错误改正,遇到下一个错误.

第二个错误是sdbout.c文件中的一些常量没有定义,如下:


因此第一估计是头文件的问题,打开sdbout.c发现其包含的头文件有如下几个:
可以肯定报错的原因是宏编译的分支的问题(走不同的宏编译分支,可能包含syms.h或者是gsyms.h).经过多

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号