文档库 最新最全的文档下载
当前位置:文档库 › Skyeye 的安装与测试调试报告

Skyeye 的安装与测试调试报告

目录

●系统配置——————————————————————P02●一:介绍(摘自百度百科)——————————————P02●二:安装VMware和Ubuntu ——————————————P02 ●三:安装skyeye———————————————————P04●四:安装arm-elf—tools-20030314.sh —————————P08●五:安装测试内核———————————————————P09●六:测试其他应用程序————————————————P10

Skyeye 的安装与测试调试报告

系统配置

本试验的运行环境:VMWARE WORKSTATION 7.0.1 build-227600 +Ubuntu 10.04 LTS i386 notebook版+Windows 7 Ultimate, 64-bit (Build 7600) 6.1.7600

本实验需要的文件:skyeye-1.3.0_rc1.tar.gz;

skyeye-testsuite-1.3.0.tar.bz2;arm-elf-tools-20030314.sh;

一:介绍(摘自百度百科)

SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在SkyEye上运行μCLinux以及

μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。如果你想知道关于SkyEye和嵌入式系统更详细的信息,请访问下面的站点:

网站:https://www.wendangku.net/doc/d11572738.html,/

SVN:https://https://www.wendangku.net/doc/d11572738.html,/svnroot/skyeye

《源码开放的嵌入式系统软件分析与实践——基于SkyEye和ARM开发平台》陈渝李明杨晔等编著

《嵌入式系统实践教程》韩超康烁李明编著

通过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, samsung 44B0(还不全)

内存: RAM, ROM, Flash

周边设备: Timer, UART, ne2k网络芯片, LCD, 触摸屏等

目前能在SkyEye上运行下面的操作系统和系统

uC/OSII-2.5.x(支持网络)

uClinux(基于Linux2.4.x内核, 支持网络)

ARM Linux 2.4.x/2.6.x

lwIP on uC/OSII

基于uC/OSII, uClinux, ARM Linux的应用程序

二:安装VMware和Ubuntu

1.用的下载的VMware7.0.1安装vmware。

可能出现错误:64位windows7用户可能遇到安装ubuntu之后下显卡驱动初始化错误,这是因为虽然vmware从6.5开始支持64位操作系统,但是经常性很多绿色精简版会把64

位扩展支持包给删掉以达到精简的目的。故遇到这错误可以去vmware的官方网站下载完整版几个解决

2.vmware7.0.1安装完后就是以下这种界面

点击new virtual machine –> Typical(recommended)->Installer disc image 指定安装镜像然后安装即可。

安装完后部分机子可能出现虚拟机不能识别键盘的问题

解决方法如下:

请你将你安装的Ubuntu 10.04 虚拟机删除(Delete form Disk),

然后按以下的步骤重新安装Ubtuntu 10.04。

在VMware Workstation中

2.1.点击File菜单,选择New子菜单,点击Virtual Machine子菜单.

2.2.在对话框中选择Typical(recommanded), 点击Next按钮.

2.3.在对话框中选择I will install the operating system later, 点击Next按钮.

2.4.在对话框中选择Guest operating system为Linux,选择Version为Ubuntu, 点击

Next按钮.

2.5.分别输入你虚拟机名称及虚拟机文件的存放目录.

2.6.选择虚拟机所用的硬盘的最大容量后,点击Next按钮.

2.7.点击Finish按钮.

2.8.在sidebar(左侧的侧边栏)中右击你新建的虚拟机,点击settings菜单

2.9.在对话框中选择Hardware选项卡,点击CD/DVD(IDE),在右侧选择Use ISO image

file,

点击Browse将Ubuntu 10.04的镜像文件找到后,点击OK按钮.

2.10.在sidebar中右击你新建的虚拟机,点击Power on菜单.

2.11.系统将启动Ubuntu10.04的安装过程。

这其中有7个步骤

a.选择本地化版本和安装类型,可选中文(简体),安装Ubtuntu 10.04 TLS

b.选择时区

c.选择键盘布局,这里有一个让你测试键盘的输入框,

你可测试一下键盘的输入,如果键盘输入正常,

完成安装后键盘即可正常使用了。

d.准备磁盘空间,可不做改动。

e.输入用户名密码,计算机名,登录方式等。

f.点击安装

g.系统安装Ubtuntu 10.04

12.安装完成后,可以在虚拟机的settings中将安装所用的Ubtuntu 10.04的ISO镜像

文件卸载。

三:安装skyeye

1.下载skyeye-1.3.0_rc1.tar.gz , 在/home/yxx/下建立文件夹lab3

# mkdir lab3

将skyeye-1.3.0_rc1.tar.gz 拷贝到lab3中,解压缩

#

# ./configure

(与skyeye匹配的编译器是gcc-3.4或者gcc-4.2,如果本虚拟机默认的不是此版本,则可以写成:

CROSS_COMPILE = /usr/local/arm/3.4.1/bin/gcc-3.4 ./configure)

# make lib

# make

其中make lib 来编译第三方的库,make 来编译skyeye 的源代码

最后安装SkyEye 到/opt 目录下

#make install_lib

# make install

默认安装在opt/skyeye

出现的错误

1.1

yxx@yxx-notebook:~/lab3$ ./configure

bash: ./configure: 没有那个文件或目录

yxx@yxx-notebook:~/lab3$ cd skyeye-1.3.0_rc1

yxx@yxx-notebook:~/lab3/skyeye-1.3.0_rc1$ ./configure

checking build system type... i686-pc-linux-gnu

checking host system type... i686-pc-linux-gnu

checking target system type... i686-pc-linux-gnu

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for g++... no

checking for c++... no

checking for gpp... no

checking for aCC... no

checking for CC... no

checking for cxx... no

checking for cc++... no

checking for cl.exe... no

checking for FCC... no

checking for KCC... no

checking for RCC... no

checking for xlC_r... no

checking for xlC... no

checking for C++ compiler default output file name...

configure: error: in `/home/yxx/lab3/skyeye-1.3.0_rc1':

configure: error: C++ compiler cannot create executables

See `config.log' for more details.

yxx@yxx-notebook:~/lab3/skyeye-1.3.0_rc1$

解决方式:

后来发现是缺少相关软件包

检查支持软件包

gcc,

make,

vim(optional),

ssh,

subversion

binutils-dev (bfd)

atk-dev (libatk1.0-dev)

gtk+-2.0-dev (libgtk2.0-dev)

pkg-config

pango-dev (libpango1.0-dev)

freetype2-dev (libfreetype6-dev)

glib-dev (libglib2.0-dev)

x11-dev (libx11-dev)

建议您在终端里输入sudo apt-get install 软件包来逐个检查,例如sudo apt-get install libx11-dev用来检x11-dev是否安装。

1.2.

/home/yxx/lab1/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `tgoto'

/home/yxx/lab1/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `tgetnum'

/home/yxx/lab1/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `BC'

/home/yxx/lab1/skyeye-1.3.0_rc1/common/.libs/libcommon.so: undefined reference to `tgetstr'

collect2: ld returned 1 exit status

make[2]: *** [skyeye] 错误1

make[2]:正在离开目录`/home/yxx/lab1/skyeye-1.3.0_rc1'

make[1]: *** [all-recursive] 错误1

make[1]:正在离开目录`/home/yxx/lab1/skyeye-1.3.0_rc1'

make: *** [all] 错误2

主要是缺少termcap库文件,在终端里执行sudo apt-get install libncurses5-dev安装,然后重新编译出错的文件

安装完上面的libxpm-dev,继续执行下面的命令

make clean

./configure

make lib

make

sudo make install_lib

sudo make install

1.3.

gui/https://www.wendangku.net/doc/d11572738.html,: In member function ?virtual void bx_x_gui_c::specific_init(int, char**, unsigned int, unsigned int, unsigned int)‘:

gui/https://www.wendangku.net/doc/d11572738.html,:485: error: ?XCreatePixmapFromData‘ was not declared in this scope

make[1]: *** [x.lo] 错误1

make[1]:正在离开目录`/home/yxx/lab1/skyeye-1.3.0_rc1/arch/x86'

make: *** [install-recursive] 错误1

那么执行此命令即可sudo aptitude install libxpm-dev

如果还有其他错误,你可以把下面这些依赖包安装上

sudo apt-get install libgtk2.0-dev pkg-config libatk1.0-dev libpango1.0-dev libfreetype6-dev libglib2.0-dev libx11-dev binutils-dev libncurses5-dev libxpm-dev

2测试skyeye运行

使用skyeye-testsuite-1.3.0.tar.bz2测试集并解压缩

解压:tar jxvf skyeye-testsuite-1.2.5.tar.bz2

使用skyeye模拟板子s3c3410x 运行某个uClinux

gebin@gebin-desktop:~/skyeye-testsuite-1.3.0/uClinux$ cd s3c3410x

gebin@gebin-desktop:~/skyeye-testsuite-1.3.0/uClinux/s3c3410x$ ls

boot.bin linux README root initrd.img linux-2.6.19-uc1-config

romfs skyeye.conf

:~/skyeye-testsuite-1.3.0/uClinux/s3c3410x$

skyeye -e linux

运行结果为:

出现的错误

root@yxx-notebook:/home/yxx/test1/skyeye-testsuite-1.3.0_rc1/uClinux/s3c3410x# skyeye -e linux

skyeye: error while loading shared libraries: libbfd-2.19.90.20090909.so: cannot open shared object file: No such file or directory

从网上知道libbfd-2.19.90.20090909.so到libbfd- 2.20.so的改动不是很大

把libbfd-2.20.so拷贝一份,然后将文件名改成libbfd- 2.19.90.20090909.so就可以了。libbfd-2.20.so在/usr/lib目录下:

cp /usr/lib/libbfd-2.20.1-system.20100303.so /usr/lib/libbfd-2.19.90.20090909.so

sudo ln -s /usr/lib/libbfd-2.20.1-system.20100303.so /usr/lib/libbfd-2.19.90.20090909.so

顺利解决了问题

四:安装arm-elf—tools-20030314.sh

执行:

chmod a+x arm-elf-tools-20030314.sh

然后:

./arm-elf-tools-20030314.sh

ls /usr/local/bin/

你应能看到以arm-elf开头的可执行文件,其中arm-elf-gcc就是用来编译你目标平台的编

译器的。

出现的错误

在ubuntu下,直接执行sh脚步安装arm-elf-tools会提示出错

sudo ./arm-elf-tools-20030314.sh

错误提示信息:

tail: cannot open `+43′ for reading: No such file or directory

gzip: stdin: not in gzip format

tar: This does not look like a tar archive

tar: Error exit delayed from previous errors

arm-elf-gcc: command not found

文件虽然存在,不过安装的时候某些地方出了错

用以下方式重新安装

#tail -n+43 arm-elf-tools-20030314.sh >> 1.tar.gz

#tar zxvf 1.tar.gz

这样子你会得到一个usr的文件夹。。

然后: cp -R usr /

拷贝到根目录,才能正常调用。

先写一个小程序hello.c

#include

int main(void)

{

printf("Hello, World!\n");

return 0;

}

然后执行:

arm-elf-gcc -Wl,-elf2flt -o hello hello.c

-elf2flt参数是将elf文件格式转为flat文件格式,这个工具是在你安装交叉编译器产生的。如果编译通过,就会产生hello可执行文件。用下面的命令:

file hello

你会发现,它是BFLT(binary FLAT),你目标平台所支持的文件格式。

五:安装测试内核

首先需要下载一个testutils包,这个包里面有几嵌入式内核,我下载了skyeye-testsuite- 1.3.0.tar.bz2。

1.解压:tar jxvf skyeye-testsuite-1.3.0.tar.bz2到桌面,并进入解压出来的目录中:

2.建立一个目录:在/桌面/skyeye-testsuite-1.

3.0_rc1/uClinux/at91/uclinux_cs890 0a下, mkdir romfs(后面将用到,这个主要用于装入hello程序)

3:需要将romfs.img中的文件系统拷贝到romfs中,所以要进行一次挂装,所以现在/mnt中建一个

tmp文件夹mkdir tmp,挂载:mount -o loop romfs.img /mnt/tmp/]

4.将tmp里面的文件系统复制到romfs中,sudo cp -r /mnt/tmp/* ./romfs/

5.将我们生成的hello文件复制到/romfs/bin目录: sudo cp /home/yxx/hello romfs/bin

结果是图中所示:hello进入了bin中。

6.接下来就要借助genromfs这个小工具来完成测试,这个工具就是你在安装交叉编译器时产生的,你可以直接使用它。用genromfs这个工具重新制作文件系统。

路径$ sudo genromfs –f romfs.img –d romfs

路径$ ls –l romfs.img

7.现在hello程序已经放到内核系统的bin/中了,接下来利用skyeye加载内核,并运行。

然后执行skyeye -e linux,这样就进入我们在linux下面熟悉的命令行模式了。

接下来得用cd bin进入bin目录,用ls 就可以查看到我们自己的hello程序

了,运行程序./hello ,就可以看到我们再熟悉不过的结果了―Hello world!‖

至此,Skyeye的安装与测试就算圆满成功了。当前在这里只是初略的介绍了一下,skyeye 和交叉

编译器的安装与测试,其实里面还有很需要我去学习的东西,比如:arm-elf-gcc 参数等等,其中的原

理也是要认真学习,它可以模拟很多内核系统以及相关的硬件,比如:软件系统有uclinux,ucos!!, 等,

硬件有ARM,MIPS等。

六:测试其他应用程序

功能:

用FORK建立子进程,然后在子进程里运行一个东西,然后在父进程里用getrusage函数得到子进程的时间等信息。

在子进程里执行"ls -l /usr/bin",在父进程中等待子进程执行结束后,打印子进程执行ls用掉的时间(单位毫秒)。

源代码:

#include

#include

#include

#include

int spawn_child()

{

int pid = fork();

if (pid == 0)

{

execlp("ls", "ls", "-l", "/usr/bin", NULL);

exit(0);

}

else

{

return pid;

}

}

int main()

{

int child_stat;

struct rusage use;

spawn_child();

wait(&child_stat);

getrusage(RUSAGE_CHILDREN, &use);

printf("systime %lu milliseconds, usertime %lu milliseconds\n", use.ru_https://www.wendangku.net/doc/d11572738.html,_sec*1000+use.ru_https://www.wendangku.net/doc/d11572738.html,_usec/1000,

use.ru_https://www.wendangku.net/doc/d11572738.html,_sec*1000+use.ru_https://www.wendangku.net/doc/d11572738.html,_usec/1000); return 0;

}

运行结果:

运行成功

相关文档