SkyEye詳細安裝使用指南Ver 0.4
陳渝
2003-01-22
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-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
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。