對於希望學習ARM匯編的同學而言, 購買ARM開發板進行板上實測無疑是一個有效的方法,不過購買ARM開發板需要一筆費用,而且每次測試都需要連接開發板,比較麻煩。如果有一個ARM的模擬器就好了,抱著這樣的想法在網上找了一下,發現了Skyeye,還是我們中國人開發的。通過Skyeye,可以直接在一台PC上完成ARM匯編的開發調試工作了,擺脫了ARM開發板的限制,真是不錯!
不過,開始介紹Skyeye安裝之前還是給各位同學一個建議,如果經費不是特別緊張,還是建議買一個開發板的。在開發板上運行一段程序給你帶來的成功感會遠遠大於你模擬器給你帶來的成功感。通過開發板可以激勵你繼續學習ARM匯編,而通過模擬器可以為你節省一些時間。
Skyeye是一個開源項目,可以在網上下載然後編譯,建議使用Linux環境進行編譯安裝,我使用的還是Ubuntu10.0.4,具體安裝過程如下:
1. 下載Skyeye源碼包
Skyeye最新發布的是1.3.3版本,下載地址如下:
http://sourceforge.net/projects/skyeye/files/skyeye/skyeye-1.3.3_rc1/
下載後是一個gz文件,名為skyeye-1.3.3_rel.tar.gz,總共才16M左右,很快可以下載完
2. 上傳Skyeye包到Ubuntu 上並解壓
使用你覺得最方便的方法將下載的skyeye-1.3.3_rel.tar.gz文件上傳到Ubuntu上,並通過tar命令解壓
tar xzvf skyeye-1.3.3_rel.tar.gz
解壓後出現一個skyeye目錄,就是Skyeye的源碼包了。
3. 編譯安裝Skyeye
進入skyeye目錄,依次執行如下命令:
./configure
make lib
make
make install
在執行make命令的時候有可能出現缺少某些文件的錯誤,根據錯誤的信息更新一下Ubuntu就好了。
比如,我執行make的時候報
Fatal error: X11/xpm.h: No such file or directory
Compilation terminated
是說xpm.h文件找不到,www.linuxidc.com通過一下命令更新Ubuntu後再次執行make就沒有問題了。
sudo apt-get install libxpm-dev
4. 測試Skyeye
安裝了Skyeye後執行文件出現在/opt/skyeye/bin目錄中,注意1.3.3的Skyeye可執行命令不是skyeye,而是skyeye_main.py,執行後進入Skyeye命令行狀態表示安裝成功。
5. 運行測試代碼
為了快速開始代碼測試工作,可以從Skyeye自帶的arm_hello 入手。
進入/opt/skyeye/testsuite/arm_hello目錄,執行:
/opt/skyeye/bin/skyeye_main.py -e arm_hello
會進入Skyeye命令行狀態,執行以下命令
start
會彈出一個窗口,裡面顯示“Connecting to Ubuntu:xxxx”。
然後繼續在Skyeye命令行界面執行以下命令:
run
可以發現彈出的窗口中開始出現“helloworld”字樣。
6. 閱讀修改arm_hello
測試成功後可以閱讀一下arm_hello的代碼,而且可以以arm_hello作為起點開發測試自己的代碼。
當然前提是你的toolchain已經設置好。
需要關注的有三個文件Makefile , start.S hello.c
Makefile中需要修改編譯工具和鏈接工具 ,讓make命令可以正常執行
start.S是一段ARM匯編,不斷調用hello.c中的hello方法
hello.c是打印函數的實現,將“helloworld”字符串輸出到指定地址中。
開始吧,測試你自己的ARM匯編代碼!!