一 在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不等。目前国内提供下载的地址有:
ftp://202.38.97.230/netinst/Cygwin/
ftp://166.111.68.183/pub/Cygwin/
必须安装的子目录(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中的<termcap.h>改成<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
源码包及其他所需文件:ftp://202.99.11.120/pub/mirrors/skyeye/ 或 ftp://166.111.68.183/pub/embed/
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。