嵌入式Linux應(yīng)用程序開(kāi)發(fā)標(biāo)準(zhǔn)教程
硬件平臺(tái)準(zhǔn)備(1)宿主機(jī)(PC機(jī)或筆記本電腦)用于開(kāi)發(fā)嵌入式應(yīng)用的PC機(jī)或工作站,一般擁有較高的速度、較大的存儲(chǔ)空間、功能強(qiáng)大的操作系統(tǒng)(Windows或UNIX)、豐富的軟件和高級(jí)語(yǔ)言開(kāi)發(fā)工具。(2
硬件平臺(tái)準(zhǔn)備
(1)宿主機(jī)(PC機(jī)或筆記本電腦)
用于開(kāi)發(fā)嵌入式應(yīng)用的PC機(jī)或工作站,一般擁有較高的速度、較大的存儲(chǔ)空間、功能強(qiáng)大的操作系統(tǒng)(Windows或UNIX)、豐富的軟件和高級(jí)語(yǔ)言開(kāi)發(fā)工具。
(2)目標(biāo)機(jī)(開(kāi)發(fā)板)
嵌入式應(yīng)用的運(yùn)行環(huán)境,一般結(jié)構(gòu)簡(jiǎn)單,速度較慢,存儲(chǔ)空間較小,只能運(yùn)行特定的嵌入式操作系統(tǒng)和應(yīng)用程序,一般不能提供高級(jí)語(yǔ)言開(kāi)發(fā)工具。
軟件平臺(tái)準(zhǔn)備
(1)PC機(jī)上安裝Linux操作系統(tǒng),redhat、fedora、ubtun等均可。
(2)一套含有編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、工程管理及函數(shù)庫(kù)的集成開(kāi)發(fā)環(huán)境(IDE),這個(gè)需要根據(jù)你選用的開(kāi)發(fā)板來(lái)定,一般廠家會(huì)提供。
(3)為了保證開(kāi)發(fā)板和宿主機(jī)之間的通信,需要安裝遠(yuǎn)程監(jiān)控程序,如Windows下的超級(jí)終端,Linux下的MINICOM等均可勝任。
交叉開(kāi)發(fā)環(huán)境建立
(1)安裝交叉調(diào)試器,此過(guò)程按廠家給的說(shuō)明手冊(cè)安裝即可。其原理參見(jiàn)“嵌入式Linux下C語(yǔ)言編程練習(xí)”功能處理模塊運(yùn)行在宿主機(jī)上,控制應(yīng)用程序模塊運(yùn)行在目標(biāo)機(jī)上。主要功能是調(diào)試運(yùn)行在目標(biāo)機(jī)上的可執(zhí)行代碼。
(2)交叉編譯器和交叉鏈接器是能夠在宿主機(jī)上運(yùn)行,并且能夠生成在目標(biāo)機(jī)上直接運(yùn)行的二進(jìn)制代碼的編譯器和鏈接器。
在宿主機(jī)上開(kāi)發(fā)應(yīng)用程序
(1)宿主機(jī)打開(kāi)Linux,打開(kāi)一個(gè)終端,在這個(gè)終端中用VI編程。
(2)使用vi文件編輯器。輸入vi text.c編寫(xiě)代碼,按“i”或者“a”進(jìn)入編輯模式,將下面的代碼錄進(jìn)去,完成后先按Esc,在輸入:wq回車(chē)保存并退出編輯器,這樣我們就在當(dāng)前目錄下建立了一個(gè)名為text.c的文件。
(2)為使上面的text.c程序能夠運(yùn)行,我們必須要編寫(xiě)一個(gè)Makefile文件,它定義了一系列規(guī)則,指明了哪些文件需要編譯,哪些需要先編譯,哪些需要重新編譯等復(fù)雜命令,使用它的好處就是可以自動(dòng)編譯,只要輸入make命令整個(gè)工程就可以自動(dòng)編譯。
到開(kāi)發(fā)板上調(diào)試運(yùn)行
(1)宿主機(jī)配置超級(jí)終端。
(2)分別在宿主機(jī)和開(kāi)發(fā)板設(shè)置IP地址。
(3)互相PING一下。
(4)在開(kāi)發(fā)板上(用超級(jí)終端監(jiān)控)掛載宿主機(jī)的內(nèi)容。
(5)在開(kāi)發(fā)板上運(yùn)行宿主機(jī)上編譯好的程序。
注意的問(wèn)題
(1)宿主機(jī)上一定要正確安裝交叉開(kāi)發(fā)環(huán)境,這樣,才可以用嵌入式開(kāi)發(fā)平臺(tái)的民信編譯器對(duì)應(yīng)用程序進(jìn)行編譯。
(2)硬件要連接好,如果超級(jí)終端有問(wèn)題,一般檢查串口;如果互相不能PING通,一般檢查網(wǎng)線。
(3)網(wǎng)線連接好的情況下,如果還不能PING通,要檢查網(wǎng)絡(luò)連接、防火墻等。
(4)注意編譯器不要弄混淆了,用gcc編譯的程序,只能在宿主機(jī)上運(yùn)行;用開(kāi)發(fā)板編譯的程序,才可以在開(kāi)發(fā)板上運(yùn)行。