QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 64788|回复: 58

SkyEye-0.xx使用简介和视频教程

[复制链接]
发表于 2004-1-5 00:17:24 | 显示全部楼层 |阅读模式
-------------------------------------------------------------
SkyEye简介
-------------------------------------------------------------
166.111.68.183是国内教育网中的IP,主要用于放置内部测试软件和文档。如果允许出国访问,需要花钱,我们无法承受。
所以比较稳定的最新软件,demo和文档都放在 gro.clinux.org/projects/skyeye/下
主要的文档在
http://gro.clinux.org/frs/download.php/719/skyeyeinternal-0.6.8.pdf
http://gro.clinux.org/frs/download.php/789/SkyEyelcdtouchscreen4gro.pdf
http://gro.clinux.org/frs/download.php/835/hardwaredoc4skyeye.tar.bz2

也可以到
http://www-900.ibm.com/developerworks/cn/linux/l-skyeye/part1/index.shtml
等.

看比较新的skyeye 设计文档。

视频演示教程可到 http://www.lumit.org/dn_video.htm
和 http://gro.clinux.org/frs/download.php/834/demovideo.tar.bz2 下载。
-----------------------------------------------------------------------

SkyEye是一个开源软件(OpenSource Software)项目,中文名字是“天目”。SkyEye的目标是在通用的Linux和 Windows平台实现一个纯软件模拟集成开发环境,模拟常见的嵌入式计算机系统(这里我们假定“仿真”和“模拟”的意思基本相同);可在SkyEye上运行Linux、?clinux以及?C/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。
SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye调试操作系统和系统软件。由于SkyEye的目标不是验证硬件逻辑,而是协助开发、调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。SkyEye在时钟节拍的时序上不保证与硬件完全相同,对软件透明的一些硬件模拟进行了一定的简化,这样带来的好处是SkyEye的执行效率更高。
在32位嵌入式CPU领域中,ARM系列CPU所占比重相当大,因此SkyEye首先选择了ARM CPU核作为模拟目标CPU核。目前在SkyEye上可运行并进行源码级调试Linux、uclinux、uC/OS-II操作系统和LwIP(一个著名的嵌入式TCP/IP实现)等系统软件。SkyEye可用于学习,分析,开发Linux、uclinux、uC/OS-II操作系统内核和TCP/IP实现,了解ARM嵌入式CPU编程。

SkyEye发展方向

skyEye将支持模拟更多的CPU、开发板和各种外设,提供详细的设计文档,已方便其它开发人员开发各种各样的硬件模拟。除了对SkyEye进一步完善以外,目前我们正在进行的工作是LCD模拟。

----------------------------------------------------------------
SkyEye配置选项
----------------------------------------------------------------


了解SkyEye配置选项,对理解skyeye模拟的硬件和在上skyeye上运行操作系统有帮助。SkyEye仿真的硬件配置和模拟执行行为由配置文件skyeye.conf中的选项确定。根据选项的功能,skyeye.conf的选项分为硬件配置选项和模拟执行选项。

目前skyeye.conf的配置定义如下:
· 基本CPU核配置选项
目前存在的选项有:arm7tdmi、arm720t、strongarm、xscale
格式为
cpu: cpuname
注:cpuname表示一个代表cpu名字的字符串。
例如:
cpu: arm7tdmi

· 具体的开发板(包括CPU扩展)配置选项
目前存在的选项有:at91、ep7312、adsbitsy,pxa_lubbock
格式为:
mach: machinename
注:cpuname表示一个代表基于特定CPU的开发板名字的字符串。
例如:
mach: at91

· 内存组配置选项
一个内存组内的地址是连续的,类型分为RAM space, ROM space, mapped IO space
格式为:
mem_bank: map=M|I, type=RW|R, addr=0xXXXXXXXX, size=0xXXXXXXXX,file=imagefilename,boot=yes|no
· map=M 表示 RAM/ROM space, map=I 表示 mapped IO space,
· type=RW ,且如果map=M则表示RAM space, type=R,且如果map=M则表示ROM space
· addr=0xXXXXXX 表示内存组的起始物理地址(32bit,16进制)
· size =0xXXXXXX 表示内存组的大小(32bit,16进制)
· file =imagefilename file的值imagefilename是一个字符串,实际上表示了一个文件,一般是一个可以执行的binary image格式的可执行程序或OS内核文件或则是一个binary image格式的根文件系统。如果存在这个文件,SkyEye会把文件的内容直接写到对应的仿真内存组地址空间中
· boot=yes/no,如果boot=yes,则SkyEye会把仿真硬件启动后的第一条指令的地址定位到对应的内存组的起始地址。

· 网络芯片8019as的配置
格式为 nic info state=on/off mac=xxxxxxx ethmod=tuntap/vnet hostip=dd.dd.dd.dd
注:xx表示两位16进制数,dd表示两位10进制数
· state表示仿真开始后,网络芯片是否开始工作
· mac表示模拟的nic的mac地址
· ethmod表示skyeye所处主机上的网络仿真方式, 目前有tuptap和vnet两种模式。tuntap是linux kernel支持的一个点到点虚拟网络实现,vnet是skyeye实现的一个功能更多的一个基于虚拟HUB的网络。
· hostip表示主机方与skyeye交互用的ip地址
例如:
net: state=on, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1

· skyeye的UART控制选项
uart选项可以控制skyeye在另一个与某个串口连接的终端上输入/输出字符
格式:
uart: fd_in=indevname, fd_out=outdevname
· fd_in=indevname indevname表示用于输入的设备文件名,其值为实际的串口设备文件/dev/ttySx
· fd_out=outdevname outdevname表示用于输出的设备文件名,其值为实际的串口设备文件/dev/ttySx
例如:
uart: fd_in=/dev/ttyS0, fd_out=/dev/ttyS0

· skyeye的log控制选项
log选项用于控制skyeye输出硬件系统的执行状态信息,包括每次执行指令时的执行指令值、寄存器值、各种硬件状态等。
格式:
log: logon=0|1, logfile=filename, start=number1, end=number2
· logon=0|1,如果值等于0表示不进行记录,如果值等于1表示要进行记录
· logfile=filename 其值是一个字符串,表示用于记录信息的文件名
· start=number1 其值是一个>=0的十进制整数,表示系统执行执行到第number条指令时开始进行记录
· end =number 2其值是一个>=0的十进制整数,表示系统执行执行到第number条指令时停止记录
格式:
log: logon=0, logfile=/tmp/sk1.log, start=100000, end=200000

最后进行编辑的是 chyyuu on 2004-01-04, 10:51pm, 总计第 1 次编辑


--------------------------------------------------------------
SkyEye使用简介
--------------------------------------------------------------

1 在linux 下安装skyeye

1.1 从源代码进行安装skyeye
下载最新的skyeye-v0.x.x.tar.bz2源码包,目前最新的为skyeye-v0.4.7.tar.bz2

解开skyeye-v0.x.x.tar.bz2 :
tar jxf skyeye-v0.x.x.tar.bz2

进入解压后的skyeye目录,按照SkyEye.README介绍的步骤做configure,make,make install
cd skyeye
./configure --target=arm-elf --prefix=/usr/local --without-gtk-prefix --without-gtk-exec-prefix --disable-gtktest
make
make install

如果一切正常,则在/usr/local/bin目录下,有一个执行文件skyeye


注意:
需要指出的是,在mandrake8.2环境中,make 时会有error,不过不是什么大问题,

error:display.c->tcap.h->termcap.h:no such file or directory

在本机/usr/include下find一下,termcap.h头文件在/usr/include/ncurses目录下,

将termcap.h中的<termcap.h>改成<ncurses/termcap.h>

重新执行make就ok了。

执行make install命令后,skyeye默认安装在/usr/local/bin/目录下,你可以通过改configure命令参数prefix来改变安装路径。

1.2 直接安装编译好的skyeye
下载最新的skyeye执行代码skyeye-0.x.x-redhat9.0.bin (目前只提供了在redhat9下编译好的代码),目前最新的版本为 skyeye-0.4.7-redhat9.0.bin
把下载的skyeye-0.4.7-redhat9.0.bin 移动到/usr/local/bin下,并改名为skyeye,改变skyeye的属性:
mv skyeye-0.4.7-redhat9.0.bin /usr/local/bin/skyeye
chmod 755 /usr/local/bin/skyeye


2 安装arm-elf交叉编译器 (用于编译ucosii4skyeye 和 uclinux4skyeye)
下载arm-elf-tools-20030314.sh    位于 ftp://166.111.68.183/pub/embed/uclinux/soft/tools/arm目录下,或到www.uclinux.org处下载
改变文件属性,并执行:
chmod 755 arm-elf-tools-20030314.sh
./arm-elf-tools-20030314.sh

结束后,arm-elf-gcc/gdb....工具会安装到/usr/local/bin下  


3 安装 ucosii for skyeye
3.1 从源码安装
  下载ucosii for skyeye源代码,目前的最新版本源代码为ucosii4skyeye-v1.8.2.tgz
  解压文件:
  tar zxf ucosii4skyeye-vx.x.x.tgz
  
  进入解压生成的目录下,编译ucosii for skyeye:
  cd ucosii4skyeye
  make config
  make dep
  make

  结束后,则生成五个sample的执行文件,分别位于ucosii4skyeye/samples/对应的应用名目录下。
  
3.2 直接下载编译好的cuosii for skyeye
  目前最新的版本为ucosii4skyeye-binary-v1.8.tgz
   解压文件:
   tar zxf ucosii4skyeye-binary-v1.8.2.tgz
   
4 调试 ucosii for skyeye
   在一个存在 skyeye.conf和*.elf文件(设为simple_test.elf)的目录下,执行:
   skyeye simple_test.elf
   (skyeye) target sim
   (skyeye) load
   (skyeye) run
   
   就可以看到程序运行的情况
      

5 编译并运行uClinux-dist-20020927.tar.gz

运行环境:redhat9

前提:安装了 arm-elf-tools工具
以uClinux-dist-20020927.tar.gz为例。位于 ftp://166.111.68.183/pub/embed/uclinux/soft/目录下,或到www.uclinux.org处下载
将uClinux-dist-20020927.tar.gz下载并解开,比如解开在/usr/src/uclinux-dist/下,然后在/usr/src/uclinux-dist/目录下执行如下命令:
tar zxf uClinux-dist-20020927.tar.gz
cd uClinux-dist
在图形方式下可用命令 make xconfig 或 在命令行方式下可用命令 make menuconfig

在vendor/product中选择GDB/ARMulator,kernel版本选择2.4,save and exit.

------------------------------------------------------------------------------------------------------------------------------------------------

这时在/usr/src/uclinux-dist/linux-2.4.x目录下生成linux文件




如果想一步生成带调试信息的linux kernel执行文件和linux kenel 执行文件映像和磁盘映像文件romfs.img

可简单是运行命令
make dep
make
就行了。可查看/usr/src/uclinux-dist/images/下是否有文件 romfs.img等
在/usr/src/uclinux-dist/linux-2.4.x目录下生成linux的elf格式的内核执行文件
-------------------------------------------------------------------------------------------------------------------------------------------------
在 uclinux-dist 目录下建立仿真AT91的skyeye配置文件 skyeye.conf,内容如下:
cpu: arm7tdmi
mach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000
mem_bank: map=M, type=R,  addr=0x01400000, size=0x00400000, file=images/romfs.img
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000
mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000
mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000


这个时候就可以用skyeye来调试运行kernel了,在/usr/src/uclinux-dist执行如下命令:

skyeye linux-2.4.x/linux

(skyeye)target sim

(skyeye)load

(skyeye)run

kernel start.....

注意:
要在 skyeye.conf 所在目录下执行skyeye。



6 下载测试软件集合
目前最新版本的测试软件集合为:
skyeye-binary-testsuits-in-rh9-2003-09-21.tar.bz2
到 ftp:/166.111.68.183/pub/embed/skyeye/binary/下载

解压并测试:
tar jxf skyeye-binary-testsuits-in-rh9-2003-09-21.tar.bz2
cd test

可以看到有编译好的skyeye 和编译好的针对各个硬件平台的内核代码
执行过程与上面类似
发表于 2004-1-12 15:20:25 | 显示全部楼层
什么时候会有IDE?
回复

使用道具 举报

 楼主| 发表于 2004-1-12 23:35:55 | 显示全部楼层
我对java不熟悉。
我想用eclipse作为skyeye的IDE,要看谁对eclipse比较熟了,能否帮忙实现一下。
实际上由于skyeye基于GDB的用户接口,实现应该不难。
回复

使用道具 举报

发表于 2004-2-20 11:22:03 | 显示全部楼层
这玩意能用不?
回复

使用道具 举报

发表于 2004-2-28 21:50:52 | 显示全部楼层
来到这里感觉自己好无知啊!
回复

使用道具 举报

发表于 2004-3-18 23:48:05 | 显示全部楼层
support linux 2.6.4 or not ?
回复

使用道具 举报

发表于 2004-4-1 04:31:21 | 显示全部楼层
请问GNU和sky类似的项目有哪些, 有没有个比较
//我第一次来
回复

使用道具 举报

 楼主| 发表于 2004-4-6 11:43:13 | 显示全部楼层
2.6的内核还没试过。你可以试试!

GNU的相关项目
www.gnu.org

skyeye的相关项目
去google,查  simulator  embedded system arm
回复

使用道具 举报

发表于 2004-4-11 04:54:38 | 显示全部楼层
执行./arm-elf-tools-20030314.sh之后
怎么提示bash: ./arm-elf-tools-20030314.sh: cannot execute binary file
这到底是个什么命令啊?
回复

使用道具 举报

发表于 2004-4-11 13:26:55 | 显示全部楼层
我是一位大四的学生,我将来的职业是嵌入式开发。
现在在学习嵌入式的理论如:ucosII,ARM7,网络协议等。
但没有试验条件。
cygwin不研究了半天还不会用。
我对你说的那个mingw很感兴趣,不知道哪里可以下载。
回复

使用道具 举报

发表于 2004-5-18 14:37:20 | 显示全部楼层
用 emacs-21.3.50-cvs 版做 skyeye的开发环境很好阿
回复

使用道具 举报

发表于 2004-5-28 00:17:42 | 显示全部楼层
问一下,能否在win2000下用cygwin 来安装skyeye?
另外还想问一下,cygwin安装后,有必要安装mingwin吗,
它们的主要区别是什么?
SDT/ADS仿真环境与skyeye有什么重要的区别?
小弟刚学,问的问题很幼稚,不过还是希望大侠们赐教!
回复

使用道具 举报

 楼主| 发表于 2004-5-28 10:01:10 | 显示全部楼层
需要你自己修改skyeye,并在cygwin上编译。我目前没有精力完成此事。
cygwin和mingw是两个不同的unix for window仿真软件。
cgywin全,mingw效率高。
SDT/ADS 是ARM公司推出的。skyeye是自由软件。
回复

使用道具 举报

发表于 2004-7-18 15:50:14 | 显示全部楼层
[root@localhost ucosii]# skyeye
***************************************************************
****                                                       ****
****   SkyEye  Simulator Ver 0.7.4 with  GDB 5.3 Interface ****
****                                                       ****
***************************************************************
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This SkyEye was configured as "--host=i686-pc-linux-gnu --target=arm-elf".
(SkyEye)
回复

使用道具 举报

发表于 2004-7-18 15:51:56 | 显示全部楼层
为什么我的是这样的(SkyEye),而不是
(gdb)???????


阿知道是哪个地方出差错了阿
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 06:34 , Processed in 0.097939 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表