Linux 集成開發(fā)環(huán)境的實(shí)現(xiàn)
1 目的
嵌入式Linux上的開發(fā)上一個(gè)函待解決的問題,就是開發(fā)工具的匱乏和開發(fā)過程的混亂。開發(fā)涉及Bootloader、內(nèi)核、驅(qū)動(dòng)、文件系統(tǒng)、圖形用戶接口和顯示應(yīng)用程序等多個(gè)方面,在各部分的開發(fā)中,又都有自己的一套工具和步驟,這造成了開發(fā)過程繁瑣,標(biāo)準(zhǔn)不統(tǒng)一。同時(shí),開發(fā)工具都運(yùn)行在Linux文本環(huán)境下,這對(duì)用慣了Windows上視窗環(huán)境的開發(fā)者來(lái)說,上手比較緩慢。因此我認(rèn)為需要開發(fā)出一套針對(duì)顯示器軟件系統(tǒng)的集成開發(fā)環(huán)境。目前命名為L(zhǎng)inux Platform Builder(LPB).
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)該軟件將包括目前嵌入式linux開發(fā)過程的所有方面:軟件自動(dòng)檢測(cè)目前已連接的目標(biāo)系統(tǒng),避免了繁瑣的修改網(wǎng)絡(luò)配置過程;相對(duì)獨(dú)立的菜單項(xiàng)和詳細(xì)的說明文檔使開發(fā)人員可以自由地選擇目前需要開發(fā)的部分,將注意力集中到代碼的編制過程中來(lái);完善的系統(tǒng)測(cè)試和調(diào)試功能可以輕松找出系統(tǒng)存在的缺陷;CVS版本控制功能保證了代碼文件的堅(jiān)固,適合多人協(xié)作開發(fā);基于Java平臺(tái)的集成開發(fā)環(huán)境可以運(yùn)行在Windows、Linux、Unix等多種操作系統(tǒng)平臺(tái)。
該系統(tǒng)可以作為與某個(gè)硬件產(chǎn)品配套的軟件提供,功能根據(jù)使用人員的不同可以劃分為系統(tǒng)開發(fā)版本,應(yīng)用開發(fā)版本,系統(tǒng)維護(hù)版本,生產(chǎn)版本等,在規(guī)范開發(fā)過程的同時(shí),簡(jiǎn)化了開發(fā)步驟和難度。
該系統(tǒng)同樣可以為基于其他操作系統(tǒng)比如VxWorks的設(shè)備開發(fā)提供幫助,因?yàn)樵撥浖瞧脚_(tái)無(wú)關(guān)的,目標(biāo)機(jī)與PC機(jī)的開發(fā)平臺(tái)的連接只通過網(wǎng)絡(luò)和串口。不同平臺(tái)的代碼生成只是編譯器的不同,而目標(biāo)機(jī)處理器的不同所需要更改的只是該工具的上層處理腳本。
2 系統(tǒng)使用技術(shù)及功能架構(gòu)
該系統(tǒng)的開發(fā)基于eclipse軟件,這個(gè)一個(gè)專門用來(lái)開發(fā)工具的軟件,基于JAVA開發(fā)。在軟件目錄下有一個(gè)plugin.xml文件,修改該文件可以自定義要開發(fā)的集成開發(fā)環(huán)境的各個(gè)功能。
2.1 IDE框架功能
首先,該軟件需要實(shí)現(xiàn)完善的IDE基本功能,包括文件的打開和關(guān)閉,代碼的編輯和刪除,多窗口的視圖顯示等,這保證了用戶可以方便的在多個(gè)文件中編輯代碼,進(jìn)行開發(fā)。
2.2 圖形化的編程工具的集成
該功能主要是為了方便的進(jìn)行l(wèi)inux上圖形化的應(yīng)用程序的開發(fā),用戶使用該工具完成應(yīng)用開發(fā)后,交叉編譯生成應(yīng)用的可執(zhí)行文件。
這一部分開發(fā)工具的選擇是和目標(biāo)硬件板上所使用的GUI系統(tǒng)相關(guān)的,如果目標(biāo)硬件使用的是tinyX,建議使用FLTK+FLUID來(lái)開發(fā)界面程序,這是開源的軟件,用戶可以自己設(shè)計(jì)控件,添加到系統(tǒng)控件庫(kù)中,然后可以方便的以拖放的方式使用。使用這個(gè)工具的另一個(gè)好處是它也是平臺(tái)無(wú)關(guān)的,在windows上也有相應(yīng)得版本,因此可以將它整個(gè)集成到集成開發(fā)環(huán)境中。
2.3 BSP開發(fā)
該功能可以對(duì)系統(tǒng)的固件進(jìn)行開發(fā),包括了bootloader,Kernel和驅(qū)動(dòng)的開發(fā)。該功能可以方便的對(duì)系統(tǒng)固件進(jìn)行配置,添加自己需要的系統(tǒng)功能和驅(qū)動(dòng)設(shè)備,配置完成后點(diǎn)擊“生成”按鈕,交叉編譯生成系統(tǒng)固件。
在windows下是可以開發(fā)和編譯linux下的驅(qū)動(dòng)程序的,因?yàn)轵?qū)動(dòng)程序的編譯只需要內(nèi)核的頭文件,不過2. 4的內(nèi)核和2.6的內(nèi)核文件格式是不一樣的,需要作一些轉(zhuǎn)換。
2.4 目標(biāo)碼下載與調(diào)試
該功能主要實(shí)現(xiàn)將系統(tǒng)固件包括應(yīng)用下載到目標(biāo)碼上,同時(shí)實(shí)現(xiàn)了應(yīng)用程序的遠(yuǎn)程調(diào)試功能。調(diào)試功能包括單步調(diào)試,設(shè)置斷點(diǎn)等,同時(shí)實(shí)現(xiàn)應(yīng)用程序界面的PC機(jī)顯示,這是通過以太網(wǎng)將顯示數(shù)據(jù)傳輸?shù)絇C機(jī)顯示。
2.5 系統(tǒng)測(cè)試
完善的產(chǎn)品設(shè)計(jì)必須包括測(cè)試功能,應(yīng)該包含的測(cè)試有最小運(yùn)行系統(tǒng)的測(cè)試,SDRAM測(cè)試,F(xiàn)LASH測(cè)試,驅(qū)動(dòng)測(cè)試包LDTK(Linux Driver Test Kit)和各接口設(shè)備的測(cè)試。
2.6 CVS版本控制功能
和CVS服務(wù)器通訊,隨時(shí)得到最新代碼,保證系統(tǒng)文件的統(tǒng)一性。
圖1 Linux Platform Builder系統(tǒng)功能劃分
因此,該集成開發(fā)工具的實(shí)現(xiàn)的技術(shù)劃分應(yīng)該包含三個(gè)部分,第一是上層的集成開發(fā)環(huán)境的界面功能,這基于eclipse開發(fā),前面已經(jīng)提到過;第二個(gè)部分是需要寫一個(gè)和目標(biāo)硬件通信的通信程序,它有兩份拷貝,分別存放在目標(biāo)硬件板和PC機(jī)上,負(fù)責(zé)傳遞開發(fā)人員的各種要求;最后就是關(guān)于系統(tǒng)的各種測(cè)試程序,它應(yīng)該存放在PC機(jī)上,當(dāng)需要測(cè)試系統(tǒng)功能時(shí),通過通信程序下載到目標(biāo)板上運(yùn)行。
以上是開發(fā)嵌入式Linux的環(huán)境集成開發(fā)環(huán)境的過程中需要注意的地方,目前該軟件已經(jīng)在三星的ARM系列芯片上實(shí)現(xiàn),現(xiàn)在正在實(shí)現(xiàn)基于XSCALE系列芯片的功能。
linux相關(guān)文章:linux教程
評(píng)論