在SkyEye嵌入式模拟平台上运行uClinux

来源:互联网 发布:互易二端口网络 编辑:程序博客网 时间:2024/04/29 22:13

 

1 SkyEye简介

 

SkyEye是一个开源软件(OpenSource Software)项目,中文名字是“天目”。SkyEye的目标是在通用的Linux和Windows平台实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统;可在SkyEye上运行uCLinux以及uC/OS-II等多种嵌入式操作系统和各种系统软件(如 TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。

 

详细介绍参见 http://skyeye.sourceforge.net 。

 

1.1 安装SkyEye

 

比较常见的安装方法有两种:

 

1.1.1 源码安装

 

可从 http://sourceforge.net/projects/skyeye/files/skyeye/skyeye-1.3.0_rc1.tar.gz/download 下载SkyEye最新版本SkyEye-1.3.0_RC1的源码,下载后执行解压:

 

$tar xzvf skyeye-1.3.0_rc1.tar.gz

 

进入解压后的目录skyeye-1.3.0_rc1/,按序执行如下指令:

 

$./configure

$make lib

$make

$make install 

$make install_lib 

 

在安装过程中可能提示缺少一些库或依赖程序而出错,按提示安装上去,重新执行即可。

 

1.1.2 apt安装

 

在ubuntu9.10中,可通过

 

$sudo apt-get install skyeye

 

或者新立得直接安装skyeye-1.2.5。

 

安装完成后,在终端执行

 

$skyeye -h

 

正常情况下即可出现skyeye的帮助界面,有时会出现如下提示出错:

 

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

 

此时可以执行如下代码:

 

$sudo ln -s /usr/lib/libbfd-2.20.so /usr/lib/libbfd-2.19.90.20090909.so

 

即创建相应的符号链接进行关联,再运行skyeye命令即可。

 

注意:按第一种方法安装完成的skyeye运行uClinux时可能无法正常启动系统,具体原因尚未查到,而直接apt安装的是可以的,推荐后者。

 

2 安装交叉编译器

 

最初采用下载/arm-elf-tools-XXXXXXXX.sh,直接执行安装的方法,会提示出错信息:

 

tail: 无法打开 “+43” 读取数据: 没有那个文件或目录

 

gunzip: stdin: not in gzip format

 

网上有很多解决办法,而我实验的实际情况是最终还是无法解决第二个出错提示的问题。

 

后来在网上去找工具链的解压包arm-elf-tools-20011219.tar.gz(下载链接: http://www.dzres.com/soft/download.asp?softid=1422&downid=9&id=1440 ),下载完成后,将其拷贝到根目录下,用root执行解压:

 

 

$sudo cp rm-elf-tools-20011219.tar.gz /

$sudo tar xzvf rm-elf-tools-20011219.tar.gz

 

即完成安装,执行:

 

$which arm-elf-gcc

 

显示如下信息即安装成功。

 

/usr/local/bin/arm-elf-gcc

 

 

3 编译uClinux内核

 

从www.uclinux.org网站上下载内核包文件(下载链接: http://www.uclinux.org/ports/coldfire/uClinux-dist-20040408.tar.gz ),并且解压。

 

$tar xvzf uClinux-dist-20040408.tar.gz

 

进入生成的uClinux-dist目录,执行

 

$make menuconfig

 

用菜单模式配置方式来配置uClinux,配置如下:

 

Vendor/Product: GDB/ARMulator

Kernel Version: linux-2.4.x

Libc Version: uC-libc

 

保存退出后,可以使用make dep建立内核依赖关系,然后使用make编译内核和文件系统

 

$make dep

$make

 

编译完成后,在uClinux-dist目录下的images目录里会建立如下几个文件:

 

image.bin linux.data linux.text. romfs.img

 

其中romfs.img就是我们需要的文件系统映象。

 

同时,在uClinux-dist/linux-2.4.x/目录下会生成linux,即内核文件。

 

4 运行uClinux

 

在uClinux-dist目录下建立一个名为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

lcd: state=on

 

保存退出。

 

若skyeye是用apt直接安装到/usr/bin目录下的,则在uClinux-dist目录里执行,否则要加上绝对路径或设置环境变量。

 

$skyeye -c skyeye.conf -e linux-2.4.x/linux

 

随后,我们就可以看见uClinux的启动信息和欢迎界面了。

 

原创粉丝点击