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的啟動資訊和歡迎界面了。