2009年12月3日 星期四

GCC for AndesCore - GCC tools

GCC有四個常用的編譯工具: Autoconf,Automake(CMake),m4,libtool,在編譯程式時都會先安裝.

Autoconf: 自動產生shell script執行原始碼程式套件的配置工作.

Automake: 主要用來產生Makefile的工具,目前也有很多原始碼程式改用CMake.

m4: Autoconf工具內的一套為Unix m4巨集處理器,可以容易擴充巨集,增加其他指令.

libtool: 稱為GNU函式庫工具,建構與維護之前編譯好的函式(C語言)或是物件類別(C++)的工具,函式庫檔名習慣以lib開頭.
函式庫類型有:
1. 靜態函式庫(static): 副檔名為.a或是.sa.
2. 共用函式庫(shared): 副檔名為.so.
3. 動態函式庫(DL): 定義在標頭檔內或是GNU Glibc函式庫透過libltdl.so函式庫提供.



2009年12月2日 星期三

GCC for AndesCore - GCC最佳化程式碼

在使用AndeSight下的GCC編譯程式時,會加入一些參數至makefile裡,讓編譯過後程式碼小一些,增加執行效率,常下的參數有:

1. -O0: 關閉最佳化.
2. -O or -O1: 初級的最佳化.
3. -O2 or -O3: 第二級與第三級最佳化.
4. -Os: 將程式碼縮到最小.

如果使用AndesCore N9系列應用在MCU的使用者因系統需要較小的程式碼,建議就設定成-Os.


2009年12月1日 星期二

GCC for AndesCore - compiler的類型

compiler的類型可分類為:
1. Native compiler: X86架構上建構於執行編譯,也產生X86的執行檔.
2. Cross compiler: 在X86架構上建構與執行編譯.但是產生AndesCore執行檔.
3. Crossback.
4. Crossed native.
5. Canadian.

不過一般最常接觸的compiler,桌上型電腦X86架構就是Native compiler,而embedded system最常使用就是Cross compiler.

而晶心科技的AndeSight所使用的compiler就使用Cross compiler類型的GCC,在AndeSight for MS Windows版本使透過cygwin模擬Linux環境,而cygwin是給要用Linux,卻離不開MS Windows環境的人使用的工具,既然要使用embedded Linux,建議就直接Linux環境下使用,安裝AndeSight for Linux版本,畢竟之後須要使用GCC做移植程式因此使用單純Linux環境還是比較方便.