Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1952659
  • 博文数量: 261
  • 博客积分: 8073
  • 博客等级: 中将
  • 技术积分: 2363
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-10 15:23
文章分类

全部博文(261)

文章存档

2013年(1)

2012年(1)

2011年(50)

2010年(34)

2009年(4)

2008年(17)

2007年(55)

2006年(99)

分类:

2006-04-15 09:54:58

一 在windows环境下安装SkyEye

1. 安装 cygwin

2. 安装skyeye

3. 建立源码调试环境

4. 执行调试程序

5. 从源码生成ucosii的执行码

5.1 建立arm-tools in cygwin 环境

二 在linux环境下安装SkyEye

1 在linux 下安装 skyeye,编译并运行 ucosii for skyeye

2 在mandrake linux8.2 下安装skyeye并运行uClinux-dist-20020927.tar.gz



注意: 以下说明是针对SkyEye 0.1.1以前版本, ucosii4skyeye1.4以前版本,最新软件的安装使用说明可参考最新软件包中的相关文件(installguide.txt, readme, SkyEye.README)

一 在windows环境下安装SkyEye
1. 安装 cygwin
Cygwin是一个在windows(包括windows98/windows2000/windowsXP)下的unix 工具集合,支持大多数GNU软件(如gcc,gdb,xfree86,bash,tetex,opengl,perl,python等)。许多以前在unix环境下的软件只需在cygwin环境下重新编译就可以运行了。SkyEye也是通过cygwin的支持实现了可同时在windows和linux上运行。

目前最新的Cygwin版本为1.3.17(2002-11-28),整个环境(包括所有的工具和xfree86有1.3GB)。大家可下载和安装最基本的环境,大约为200~400MB不等。目前国内提供下载的地址有:





必须安装的子目录(sub category): (把子目录旁边的”default”用鼠标点一下,直到变成”install”)

Archive

Base

Devel:包括gcc、make等编译工具

Libs

Net

Shells

Utils: 包括bzip2等实用工具



大家可选择较快的下载地址(希望更多的站点提供最新cygwin的ftp访问)。

必须通过cygwin提供的setup.exe进行安装,可根据安装提示一步一步进行,提供通过internet安装方式或本地安装方式。建议把cygwin整个安装包下载到本地再进行本地安装比较方便。如果无特殊需求,可简单按它的缺省安装方式安装最少数量的软件包。建议不要安装到c:\下。cygwin的问题和解答可参考cygwin FAQ。

2. 安装skyeye
1. 在cygwin环境下安装二进制skyeye

把二进制文件从linux或cygwin的根目录下解开既可使用。如果你选择把cygwin安装到的d:\cygwin目录下。则执行cygwin bash shell后的仿unix环境的根目录“/”实际上就是d:\cygwin目录。

把SkyEye-0.1 for cygwin二进制文件skyeye-0.1.bin.cygwin.1.3.17.tar.bz2下载并拷贝到d:\cygwin目录下后,在cygwin bash shell环境中的根目录“/”下就存在了文件skyeye-0.1.bin.cygwin.1.3.17.tar.bz2。然后在cygwin bash shell环境中的的根目录“/”下执行:

tar jxvf skyeye-0.1.bin.cygwin.1.3.17.tar.bz2

就把skyeye的执行文件安装到cygwin bash shell环境中“/usr/local/bin”下。

用户可试着在根目录下执行命令“skyeye”,如果出现了如下显示则表示安装成功。

2. 在cygwin环境下编译skyeye

如果自己想在cygwin环境下编译skyeye,则比较麻烦,可参考skyeye源码包中的说明文档buildskyeyeoncygwin.txt

3. 建立源码调试环境
A 建立uC/OS-II源码调试环境

注意:如果要重新编译,请选择ucosii for skyeye 1.0.1以上版本!

假设要把uC/OS-II源码调试环境建立在“/tmp/ucos/sourcecode”目录下。

把uC/OS-II for SkyEye VerA 源码 ucosii-verA-skyeye-1.0.tar.bz2或 uC/OS-II for SkyEye VerB源码 ucosii-verA-skyeye-1.0.tar.bz2解压到/tmp/ucos下:

以uC/OS-II for SkyEye VerA为例:

把ucosii-verA-skyeye-1.0.tar.bz2下载并拷贝到d:\cygwin\tmp目录下,则执行cygwin bash shell后的仿unix环境的根目录“/tmp”实际上就是d:\cygwin\tmp目录。

然后在cygwin bash shell环境下执行如下命令:

mkdir /tmp/ucos

cd /tmp/ucos

tar jxvf ../ucosii-verA-skyeye-1.0.tar.bz2



然后把uC/OS-II for SkyEye VerA执行文件 ucosii-verA.elf拷贝到d:\cygwin\tmp\ucos\sourcecode下

最后把uC/OS-II内存布局配置文件拷贝到d:\cygwin\tmp\ucos\sourcecode下,并在cgywin环境下执行改名命令:

cd /tmp/ucos/sourcecode/

mv ucosmemmap.conf memmap.conf



B 建立uclinux源码调试环境

假设要把uclinux源码调试环境建立在“/tmp/uclinux/uClinux-dist-20020816”目录下。

把uclinux-2.4.x精简压缩包uclinux.lightsrc.tar.bz2下载并拷贝到d:\cygwin\tmp目录,即cygwin环境的目录”/tmp”

解压uclinux-2.4.x精简压缩包,命令如下:

cd /tmp

tar jxvf uclinux.lightsrc.tar.bz2

则uclinux相关文件就安装到“/tmp/uclinux/uClinux-dist-20020816”目录下了。

最后把 uclinux内存布局配置文件 uclinuxmemmap.conf拷贝到d:\cygwin\tmp\uclinux\uClinux-dist-20020816下,并在cgywin环境下执行改名命令:

cd /tmp/uclinux/uClinux-dist-20020816/

mv uclinuxmemmap.conf memmap.conf



如果 你想把uclinux-2.4.x精简压缩包解压到/usr/local/目录下,

则把uclinux-2.4.x精简压缩包uclinux.lightsrc.tar.bz2下载并拷贝到d:\cygwin\usr\local目录,即cygwin环境的目录”/usr/local”

解压uclinux-2.4.x精简压缩包,命令如下:

cd /usr/local

tar jxvf uclinux.lightsrc.tar.bz2

ln –s /usr/local/uclinux /tmp/uclinux

注意:/tmp/uclinux是uclinux-2.4.x精简压缩包的缺省安装目录。



4. 执行调试程序
A 调试ucos

在cygwin环境下执行如下操作:

cd /tmp/ucos/sourcecode

skyeye

在skyeye环境中执行:

file ucosii-verA.elf (如果建立的是ucosii-verB环境,则执行file ucosii-verB.elf)

target sim

load

run



然后你可以用”Ctrl-C”中断ucos的执行,通过命令

p x

p y

可以查看task1对x的修改情况,和task2对y的修改情况,

通过命令

p OSCtxSwCtr

可以查看ucos执行上下文切换的次数。



B 调试 uclinux

在cygwin环境下执行如下操作:

cd /tmp/uclinux/uClinux-dist-20020816

skyeye

在skyeye环境中执行:

file linux-2.4.x/linux

target sim

load

run

这时应该可以看到uclinux的启动画面。



如果需要进一步调试,需要学习gdb的命令使用。



5. 从源码生成ucosii的执行码
注意:

l 如果要重新编译,请选择ucosii for skyeye 1.0.1以上版本的源代码。

l ucosii for skyeye 1.1以上版本支持printf功能,但目前不能在cygwin环境下编译通过,但可在linux环境下编译通过后,在cygwin环境下执行。

l uC/OS-II的执行文件和源码要放在一个目录下。

l memmap.conf所在目录和当前执行skyeye的目录要等同。



5.1 建立arm-tools in cygwin 环境
下载 arm-tools in cygwin的软件包

arm-linux-binutils-cygwin-2.9.5.0.37.tgz

arm-linux-gcc-cygwin-2.95.3.tgz

libc6-arm-cross-2.1.3-19.tgz

libc6-dev-arm-cross-2.1.3-19.tgz



如果你选择把cygwin安装到的d:\cygwin目录下。则执行cygwin bash shell后的仿unix环境的根目录“/”实际上就是d:\cygwin目录。把上软件包下载并拷贝到d:\cygwin目录下后,在cygwin bash shell环境中的根目录“/”下就存在上述文件。然后在cygwin bash shell环境中的的根目录“/”下执行:

tar zxvf arm-linux-binutils-cygwin-2.9.5.0.37.tgz

tar zxvf arm-linux-gcc-cygwin-2.95.3.tgz

tar zxvf libc6-arm-cross-2.1.3-19.tgz

tar zxvf libc6-dev-arm-cross-2.1.3-19.tgz



执行命令

tar jxvf ucos_verb_skyeye-1.x.x.src.bz2

解开源码软件包

然后,你可在ucos的安装目录(设安装目录为”/tmp/ucos/sourcecode”)下执行命令:

make

则可在ucos的安装目录下生成ucos.elf ucos.s ucos.r ucos.n

最后在ucos的安装目录下执行skyeye,就可以调试你编译的ucos.elf操作系统和应用程序了(与4中的描述相同)。



注意:ucosii for skyeye 1.1以上版本支持printf功能,但目前不能在cygwin环境下编译通过,但可在linux环境下编译通过后,在cygwin环境下执行。



目前提供的在cygwin环境下的支持arm的交叉编译工具集有两个。

另一个由别人制作的在cygwin环境下的支持arm的交叉编译工具集可在

ftp://166.111.68.183/pub/embed/devtool/gcc-arm-cygwin/

处下载,如果大家想在cygwin环境下重新编译uclinux,大家可以试用一下。



二 在linux环境下安装SkyEye
懂linux还不懂如何安装吗? J

注意:

/tmp/uclinux是uclinux-2.4.x精简压缩包的缺省安装目录

建议使用redhat7.1以上版本的系统。

建议使用arm-elf-tools-20011219.tar.gz为交叉编译工具编译arm程序

建议使用gcc2.96 gcc3.2 编译skyeye



1 在linux 下安装 skyeye,编译并运行 ucosii for skyeye
1 在linux 下安装skyeye

解开skyeye-0.1.1.src.tar.bz2,按照SkyEye.README介绍的步骤做configure,make,make install

需要指出的是,在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中的改成

重新执行make就ok了。

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



2 安装arm交叉编译器

下载arm-elf-tools-20011219.tar.gz

将arm-elf-tools-20011219.tar.gz在本机的根目录下用tar命令解开,

则相关软件安装在/usr/local/bin和/usr/local/arm-elf目录下。

3 编译 ucosii for skyeye

下载ucosii for skyeye源代码

注意: 1.1以上版本支持printf功能



执行命令

tar jxvf ucos_verb_skyeye-1.x.x.src.bz2

解开源码软件包

然后,你可在ucos的安装目录(设安装目录为”/tmp/ucos/sourcecode”)下执行命令:

make

则可在ucos的安装目录下生成ucos.elf ucos.s ucos.r ucos.n

最后在ucos的安装目录下执行skyeye,就可以调试你编译的ucos.elf操作系统和应用程序了。

2 在mandrake linux8.2 下安装skyeye并运行uClinux-dist-20020927.tar.gz
感谢star提供的SkyEye在linux上的安装使用过程描述





运行环境:mandrake linux8.2

源码包及其他所需文件: 或

skyeye-0.1.1.src.tar.bz2

arm-elf-tools-20011219.tar.gz

uClinux-dist-20020927.tar.gz

romfs.2.4.x.gz

uclinuxmemmap.conf



1 在linux 下安装skyeye



2编译uclinux

先安装交叉编译器,将arm-elf-tools-20011219.tar.gz在本机的根目录下tar开,解到/usr/local/arm-elf目录下。

将uClinux-dist-20020927.tar.gz解开,比如解开在/usr/src/uclinux-dist/下,然后在/usr/src/uclinux-dist/目录下执行如下命令:

在图形方式下可用命令 make xconfig 或 在命令行方式下可用命令 make menuconfig

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

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

方案A

如果带调试信息的linux kernel执行文件

make dep;make linux

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

方案B

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

可简单是运行命令 make dep; make 就行了。可查看/usr/src/uclinux-dist/images/下是否有文件 romfs.img等

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

在/usr/src/uclinux-dist目录下,

cp ulinuxmemmap.conf memmap.conf

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

方案A

gunzip romfs.2.4.x.gz

cp romfs.2.4.x boot.rom

romfs.2.4.x其实就是磁盘映像文件。

方案B

也可以在/usr/src/uclinux-dist下make romfs ;make image来生成romfs.img。

如果想使用自己编译的romfs.img,则在目录/usr/src/uclinux-dist下执行命令

ln –s images/romfs.img boot.rom

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

这个时候就可以用skyeye来调试运行kernel了,在/usr/src/linux-dist:

skyeye linux-2.4.x/linux

(gdb)target sim

(gdb)load

(gdb)run

kernel start.....

注意要在 memmap.conf 和boot.rom所在目录下执行skyeye。

你可以在run之前给kernel设置断点来调试。目前skyeye支持的arm core基于arm7tdmi,没有mmu,所以只能跑ucos,uclinux,不过他们正在做更多的努力,相信很快skyeye也可以支持arm linux。

阅读(3343) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~