所需開發(fā)工具及環(huán)境
- 虛擬機(jī)Linux:Fedora 9
- 交叉編譯工具:arm-linux-gcc-3.4.1.tar.bz2
- 集成開發(fā)工具:Eclipse(Linux安裝包中自帶的,安裝Linux時(shí)選中安裝)
??? 1. 安裝。其實(shí)很簡(jiǎn)單,就是將下載的arm-linux-gcc-3.4.1.tar.bz2解壓到Linux根目錄即可(因?yàn)榻鈮汉笠呀?jīng)包含了/usr/local目錄,所以要解壓到根目錄),如下命令:
tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 -C /
解壓后的目錄如下圖:
解壓后的目錄/usr/local/arm/3.4.1/
??? 2. 設(shè)置環(huán)境變量。就是把交叉編譯器的路徑設(shè)置到系統(tǒng)環(huán)境變量里面去。
echo $PATH
查看現(xiàn)有的環(huán)境變量,顯示如下圖:
如果你只想臨時(shí)添加交叉編譯器的環(huán)境變量(注:臨時(shí)添加的系統(tǒng)重啟或注銷后又沒有了),只需在命令行輸入如下命令:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
添加后的環(huán)境變量如下圖:(多了一個(gè)/usr/local/arm/3.4.1/bin)
如果你想這個(gè)環(huán)境變量永久的添加到系統(tǒng)的環(huán)境變量中,則你只需把這個(gè)命令添加到/root/.bashrc文件的最后一行即可(這個(gè)文件是隱藏文件,你要在文件瀏覽器中單擊查看菜單,勾選顯示隱藏文件才能看到)
??? 3. 測(cè)試建立的交叉編譯環(huán)境。新建一個(gè)c程序,文件名:test.c, 如下:
#include <stdio.h>
int main(void)
{
????printf("Hellow world!\n");
????return 0;
}
進(jìn)行交叉編譯,如下:
arm-linux-gcc -o test test.c
將交叉編譯好的目標(biāo)文件test下載到ARM開發(fā)板中并運(yùn)行,如下:
./test
用集成開發(fā)工具Eclipse來開發(fā)嵌入式應(yīng)用程序
雙擊Eclipse圖標(biāo)啟動(dòng)Eclipse
?
設(shè)置Eclipse的工作空間,就是選個(gè)目錄,單擊OK
?
啟動(dòng)后的主界面
?
開始新建一個(gè)應(yīng)用程序工程
?
選擇新建一個(gè)C工程,單擊Next
給工程取個(gè)名字,這里我就叫test_app;然后選擇工程類型,我選擇了個(gè)Hellow world C工程模版,單擊Next
?
填寫作者、版權(quán)等信息,單擊Next
?
沒什么選的,點(diǎn)擊Finish
?
單擊Yes
?
新建好的項(xiàng)目工程
?
展開左邊的源代碼目錄,雙擊打開主函數(shù)。這里只是輸出一句"Hello World!!!",你可以做一些其他復(fù)雜的應(yīng)用
單擊Project菜單,去掉Build Automatically的勾選,因?yàn)楣催x的話,每次修改一個(gè)地方工程都會(huì)自動(dòng)進(jìn)行編譯
打開工程的屬性對(duì)話框進(jìn)行編譯選項(xiàng)的設(shè)置
我們的應(yīng)用程序最終要到嵌入式arm上運(yùn)行,這里就要把gcc改成arm-linux-gcc編譯器,當(dāng)然前提是你要在你的開發(fā)主機(jī)上先安裝arm-linux-gcc
?
C連接器也要改成arm-linux-gcc
?
這里的Libraries是設(shè)置你的應(yīng)用程序中用到的庫(kù)文件,比如應(yīng)用程序中用到了線程類,則這里在上面添加pthread這個(gè)庫(kù),下面就添加這個(gè)庫(kù)的路徑。如果應(yīng)用程序沒用到任何庫(kù)文件就不用管了
選中左側(cè)的工程名,右鍵,在彈出的菜單中選擇Build Project編譯工程
?
編譯好后的工程,目標(biāo)文件在Debug目錄下
??? 建立交叉編譯環(huán)境是開發(fā)嵌入式程序的第一步,編譯器版本也有很多,這里就介紹用的較多的一種。而Eclipse則是本人認(rèn)為開發(fā)嵌入式應(yīng)用程序最為方便的集成開發(fā)工具,他不僅讓整個(gè)工程清晰可見,更重要的是他不需要你去為整個(gè)工程編寫復(fù)雜的Makefile文件,他會(huì)為你自動(dòng)生成Makefile。
評(píng)論