CROSS COMPILER

一、Cross Compiler

Cross compiler 中文翻譯叫做交叉編譯器,是一種在linux作業系統上運用的程式編譯器。相對於host compiler可以編譯linux的程式,cross compiler是用來編譯給其他cpu用的程式的編譯器,編譯出來的程式不能在本機的linux上面執行,只能給所對應的cpu執行。使用Linux寫程式,對我來說,是一種新的體驗。我花了一些時間進入狀況後,覺得在linux上面開發韌體也是一種不錯的選擇。我用 Kscope + Cscope + Ctags + Dot (有kscope不夠還要其他三隻應用軟體做配合)做我的開發環境,編寫並編譯程式碼。我使用的cross compiler是買開發板的時候附贈的,install的程序已經寫好,只要我下一個簡單的指令,cross compiler的安裝流程就會自動跑完,所以我也不曉得怎麼把cross compiler設定成我要的組態。不過,會用就好了,怎麼去組態cross compiler的問題,就等我以後有需要的時候再去學,目前還是先專心的把code寫好比較重要。


二、KSCOPE

Kscop是一套類似source insight的軟體,可以拿來讀寫程式碼,也可以拿來編譯程式碼。
下面這個畫面是我從linux的桌面抓下來的,kscope運作時的畫面,左邊的視窗放著函式名稱,中間視窗放著當下正在編輯的程式碼,右邊放著整隻程式的檔案。

kscope

下面的圖是用kscope的環境編譯程式碼的畫面,在編輯環境中按下" CRTL + M "就會跑出編譯的畫面,設定好程式的根目錄位置,再按下" ALT + M ",Kscope就會照著Makefile的描述進行編譯的工作。

kscope

三、結語

雖然我的主題是cross compiler,不過Kscope好像篡位變成為主角了,哈哈哈。Kscope這套軟體不僅適合給cross compiler使用,也適合給host compiler使用,所以它就是一套編寫編譯程式碼的整合環境。Cross compiler是在程式的Makefile中指明的,Host compiler也是在Makefile中指明的,Kscope的角色就是讓程式的編輯更人性化,如此而已。編譯的工作還是要交給make指令和Makefile來完成。Kscope的Make畫面就是把原本在終端機上的畫面資料導向到Kscope的編譯視窗上,如此而已,並不是Kscope自己也會做編譯的工作,不要被它騙了。正因為如此,Kscope讓我覺得在linux上面寫程式變得很方便,因為我可以用Kscope來編輯並編譯我在linux上面寫的給所有cpu用的程式碼,而不用再為了寫8051開keil,或者是為了寫arm開ads1.2,或者為了寫c而開borland。只要一個Kscope就解決一切了,夠方便了吧,哈哈哈。

我接下來的工作就是儘速的把在ads1.2上面開發的程式碼轉移到arm 的 cross compiler 中,然後好好的在cross compiler的世界悠遊,正式成為用自由軟體開發程式的一員。

2008.09.04.
我已經把程式碼轉到 GNU GCC的環境中了,OS程式碼 using GCC
另外,我也有放一份在http://bookysc.myweb.hinet.net上面,這個網頁是沒有在關的,可以讓大家好好的讀。