免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1620 | 回复: 0
打印 上一主题 下一主题

初探嵌入式硬件仿真环境skyeye-linux下安装skyeye【转】 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-18 11:26 |只看该作者 |倒序浏览

               
[color="#ffffff"]【提要】 skyeye的安装、调试对我这样一个原本对linux没太大了解的人来说还是有点难度的。我分阶段分步骤进行了实践。这篇笔记主要记录skyeye安装及测试安装成功的工作。迟些再整理skyeye仿真各种嵌入式操作系统的实践。
        
[color="#ffffff"]【内容】
        
[color="#ffffff"]一、什么是skyeye?在什么环境下安装使用?
        
可以查阅【参考资料】链接,很详细的,这里我不想作重复的工作了。关键是[color="#ff6600"]了解skyeye的运行环境,之前很多不大理解的朋友说它只能在linux运行的,但实际上不是。根据参考资料1,SkyEye可以通过cygwin的支持实现可同时在windows和linux上运行,这是第一个问题,比较容易模糊的。在“SkyEye嵌入式硬件仿真项目”(本站的
嵌入式网站导航
中有链接,)的资源列表中skyeye on Windows就有对应的下载。
        
第二,skyeye是属于什么层次的模拟仿真?有多大作用?
根据参考资料2,SkyEye是一个[color="#ff6600"]指令级模拟器,
可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过
SkyEye调试操作系统和系统软件。由于SkyEye的目标不是验证硬件逻辑,而是协助开发、调试和学习系统软件,所以在实现上SkyEye与真实的硬
件环境相比还是有一定差别的。SkyEye在时钟节拍的时序上不保证与硬件完全相同,对软件透明的一些硬件模拟进行了一定的简化,这样带来的好处是
SkyEye的执行效率更高。
        
第三,[color="#ff6600"]skyeye可以模拟什么样的cup?
据参考资料3“学习使用SkyEye仿真”:
通过SkyEye能仿真下面的硬件:
CPU核心:ARM7TDMI, ARM720T, ARM9, StrongARM, XScale
CPU: Atmel AT91/X40, Cirrus CIRRUS LOGIC EP7312, Intel SA1100/SA1110, Intel XScale PXA 250/255, CS89712, samsung 4510B,
另外,参考资料4Skyeye安装笔记和使用,SkyEye目前支持多款嵌入式处理器包含了s3c2410,arm9的处理器。
由此可知,新版的skyeye可以模拟仿真包括arm9系列的常见处理器。
但在skyeye.conf中是否可以配置arm9就未确切考究。
        
[color="#ffffff"]二、在linux中安装skyeye的实践笔记
        
在查阅了相关资料后,我上机实验的步骤如下:
        
我用的是redhat linux 9系统,skyeye采用source源码自己编译安装。
        
[color="#ff6600"](一)关于skyeye的编译环境
        
因为采用自己编译skyeye源码的方式安装,建立合适的编译环境是不可少的。参考资料1中,建议使用gcc2.96, gcc3.2工具进行skyeye源码的编译。目前(2006-11-9为止),gcc最新版本为gcc4.1.1,可以在
http://gcc.gnu.org
获得相应的说明。
http://ftp.gnu.org/gnu/gcc/
获得下载。
        
经了解,但一般linux安装后自带了GNU工具集(当然安装时要选中develop tools),包括gcc。
我安装的时redhat linux9,在终端中键入
#gcc -v
得到版本信息是
gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
就确定了skyeye编译的基本环境已经具备。
        
注:这个编译环境是本地/本机编译环境,跟调试嵌入式系统的时候建立交叉编译环境是不同的。详情见笔记
再学编译工具和交叉编译环境配置-基本问题和认识
        *************************************************************************************
以下灰色部分是第二次笔记中的内容,不需要,因为gcc在linux中一般自带了。
*************************************************************************************
这里用
gcc-3.2.tar.gz
,下载源码,解压
        tar zxfv gcc-3.2.tar.gz
        然后按readme进行安装。
        *************************************************************************************
以下灰色部分是第一次笔记中的内容,不正确,因为arm-elf-tools是arm-linux的交叉编译工具,对本地编译skyeye来说不是必需的。
*************************************************************************************
下载arm-elf-tools-20030314.sh(这不是最新的版本,但第一次上机实验中基于资料的指导,暂时用了这个版本),在本站“
嵌入式网站导航
”中就有“
嵌入式Linux交叉编译工具链
”下载链接,进入
http://www.uclinux.org/pub/uClinux/arm-elf-tools/
找到下面一句:
m68k-elf-20030314/arm-elf-20030314
Get the
m68k binaries
or the
ARM binaries
. The source is
here
.
        点击ARM binaries就可以下载arm-elf-tools-20030314.sh
        改变文件属性
#chmod 755 arm-elf-tools-20030314.sh (把文件属性修改成当前用户可读可写,其他用户可读不可写)
        #./arm-elf-tools-200314.sh
        结束后arm-elf-gcc/gdb工具就会安装到/usr/local/bin下了……
        
[color="#ff6600"](二)安装skyeye
        

http://gro.clinux.org/frs/?group_id=327&release_id=1260
有最新版skyeye-1.2-RC8-3.tar.bz2,次新版的skyeye-1.0.0.tar.bz2,skyeye-0.9.8.tar.bz2,为了测试,故下载三个版本下来。
        
[color="#ff6600"]试验安装skyeye-1.2-RC8-3.tar.bz2和skyeye-1.0.0.tar.bz2
        
1、在linux系统下,把skyeye-1.2-RC8-3.tar.bz2拷到/home/skyeye-source/目录下,操作如下:
        
#mkdir /home/skyeye-source
#cp skyeye-1.2-RC8-3.tar.bz2 /home/skyeye-source
   (假设现在在skyeye-1.2-RC8-3.tar.bz2所在的目录下)
        
2、进入/home/source,解压.tar.bz2文件
        
#cd /home/source
#tar jxfv skyeye-1.2-RC8-3.tar.bz2

        
解压后的目录为skyeye-v1
        
3、进入skyeye-v1目录,README的说明如下:
        
1 Install (just type below command)
1.1 In X86 32/64bit system OR other non-X86 system OR gcc version >=4.x.x
make
1.3 If you want to add DBCT Acceleration Function In X86 32bit system AND gcc version = 3.x.x
edit Makefile to comment Line 23 in Makefile, then
make
        
then SkyEye binary code will be in binary/skyeye (linux) or binary/skyeye.exe (cygwin)
……
        
按照README说明,只要修改Makefile中的23行NO_DBCT=1为NO_DBCT=0,保存,然后再make就行了,skyeye可执行文件就可在skyeye-v1/binary/skyeye/下找到。
但实际在终端中输入skyeye测试,提示找不到skyeye命令。于是我进入skyeye-v1/binary/binary/目录,再输入skyeye测试,仍然提示没有skyeye命令。
        
至此,无法再找到skyeye-1.2.RC8.tar.bz2的正确安装方法了,无奈宣布失败。于是再试验安装skyeye-1.0.0.tar.bz2,步骤类似上面,解压后的目录为skyeye-1.0.0,在这个解压目录下查看README,有如下说明:
        
1 Install (just type below command)
        
make
        
then SkyEye binary code will be in binary/skyeye (linux) or binary/skyeye.exe (cygwin)
        
2 Usage (just type below command,then skyeye will show usage information)
        
binary/skyeye -h
        
notice: you should have a kernel(ELF format or Binary Image), a
filesysmte(according to OS), a skyeye config file(default is
skyeye.conf)
        
3 Enjoy it!
        
……
        
按照这里的安装说明,也是只要make就行了。我就make了一次,得到binary/skyeye中有新产生的文件,但在终端测试skyeye(无论是否在binary/skyeye 目录下),仍然提示无效命令。
        
至此,又无法安装1.0.0版本的skyeye了。
        
实际上,按照我读的资料,skyeye的安装一般有./configure,make,make install步骤的,但上面的安装没有那样的用法和步骤。有点郁闷,不知为什么不行,不知道这两个版本的skyeye怎样正确安装。
        
[color="#ff6600"]下面就是试验安装正常和成功的skyeye-0.9.8.tar.bz2版本:
        
仍然像上面的那样解压skyeye.0.9.8.tar.bz2,得到解压目录为skyeye,进入skyeye目录。vi README,就有很符合书上说的安装说明了,如下:
        
please read README.SKYEYE-INSIGHT
        
1. configure the skyeye in cygwin or linux environment
cd SKYEYE_DIR
        
/*if SkyEye version is  0.6.0)*/
./configure --target=arm-elf --prefix=/usr/local
        
/* if you use gcc-3.4 and want to optimze the skyeye*/
CC=gcc-3.4 CFLAGS=-O2 ./configure --target=arm-elf --prefix=/usr/local
        
/* if you use gcc-3.3 and want to optimze the skyeye*/
CC=gcc-3.3 CFLAGS=-O2 ./configure --target=arm-elf --prefix=/usr/local
        
/* if you use gcc-2.95 and want to optimze the skyeye*/
CC=gcc-2.95 CFLAGS=-O2 ./configure --target=arm-elf --prefix=/usr/local
        
2 make and install
        
2.1 in linux environment
cd SKYEYE_DIR
make
make install
……
        
于是高高兴兴执行下面的步骤:configure、make、make install
        
#cd skyeye/
#vi README
(阅读README安装指导)
:q (退出vi)
#./configure --target=arm-elf --prefix=/usr/local (target指明?prefix指定安装地址)
#make
#make install

        
在make
install阶段,就在/usr/local/bin下生成6个二进制可执行文件:arm-elf-run, skyeye,
skyinsight, tclsh8.3, tixwish4.1.8.1, wish8.3,以及一个shell脚本文件tixindex。
        
在任意终端目录下,输入skyeye测试,得到skyeye启动的字符图形节面,并出现
(SkyEye)
等待命令,表明skyeye安装成功。
键入quit退出skyeye。
        
这样,一个正常的skyeye安装就完成了!高兴!
        

        
[color="#ff6600"]后记:
        
1、初学者可能还碰到在linux中加载windows分区的操作,请查阅笔记“
最常用的linux操作命令-挂载windows fat32分区

        
2、2006-11-9对skyeye编译工具部分进行了修改,原先对各种各样的编译工具不甚了解,认为是采用arm-elf-tools-20030314.sh对skyeye源码编译的。
        
3、2006-11-10对笔记进行修正,旧的笔记以为gcc本地编译工具需要自己安装,但其实查阅资料后发现linux安装自带了GNU工具集。
        
[color="#ffffff"]【遗留问题】
        
1、目前skyeye能否真正支持arm9系列处理器的仿真?配置中包含arm9选项吗?……
[color="#ff6600"](2006-11-9)解答:是的,skyeye支持arm9系列,实际上skyeye对目前几乎所有的arm体系CPU提供了良好的支持。在配置文件中有无arm9的选项就该看skyeye的版本了,新版的肯定可以。这些可以从陈渝老师编写的权威指导书中得到证实。可以参看本站关于[color="#ff0000"]《源码开放的嵌入式系统软件分析与实践——基于skyeye和arm开发平台》陈渝 李明 杨晔 等编著 北京航空航天大学出版社 一书的介绍。
        
2、skyeye安装前是否需要先建立交叉编译环境?怎样安装?
[color="#ff6600"](2006-11-9)解答:这个问题果然是困扰许多初学者的,因为太多编译工具了,加上不同的版本和组合,补丁,如果不好好考究下,确实搞不清究竟哪个工具是在哪个工作中需要,哪个不是必需的。这个问题可以参考我后来写的一个总结:
[color="#800080"]再学交叉编译环境配置-基本问题和认识
。简单一句话解答:skyeye源码安装方式中肯定需要一个本地编译环境,而不是交叉编译环境!具体说就是需要gcc软件就行了。版本可以参考上面修正后的步骤一。
        
3、configure的步骤在有些资料(比如资料5)中为如下所示
./configure --target=arm-elf --prefix=/usr/local --without-gtk-prefix --without-gtk-exec-prefix --disable-gtktest
这跟我实际那个语句有什么区别?其实这句操作怎么解释?
(2006-11-9)解答:这个问题可以参考新下资料 [color="#ff0000"]《源码开放的嵌入式系统软件分析与实践——基于skyeye和arm开发平台》陈渝 李明 杨晔 等编著 北京航空航天大学出版社 P129里面有解答:
如果是skyeye0.6.0以前的版本,不支持lcd,故用了那个很长一串的配置命令;如果是skyeye0.6.0以后的版本,是支持lcd的,配置就简化成上面步骤二中的形式了。
        
4、arm-elf-tools-20030314.sh是怎样的工具链?实际最新版的是什么?编译安装skyeye需要怎样的工具链支持?什么版本要求?试验下安装新版的交叉工具链怎样……
[color="#ff6600"](2006-11-9)解答:还是编译工具链的问题,现在解决了,请参考新的笔记
[color="#800080"]再学交叉编译环境配置-基本问题和认识
        
5、gcc的安装步骤没具体整理!
        
6、为什么前面两个新版本无法安装?怎样安装?!
        

        
[color="#ffffff"]【参考资料】
        
1、SkyEye详细安装使用指南 v0.4 陈渝 20030122
这是网上流传的比较经典的文章,详细介绍了在windows下及在linux下安装和使用skyeye的方法,值得研究和收藏。
补充:该文的作者正是skyeye项目的发起人和创作人。这是非常有指导意义的权威的文章。——2006-11-9
        
2、skyeye简介
介绍了skyeye基本情况,以及skyeye的配置,有参考价值。
        
3、学习使用SkyEye仿真
这是LinuxSir.Org论坛上的一个帖子,详细介绍了什么是skyeye,怎样安装和测试、使用等问题。
        
4、Skyeye安装笔记和使用
        
5、SkyEye安装简介--跳水扒拉
包括SkyEye简介,SkyEye配置选项,SkyEye使用简介
        
5、在Linux下安装skyeye的方法
CSDN上的文章
        
6、本站网络资源导航
下载需要工具的链接
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16651/showart_444840.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP