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