美章網 資料文庫 嵌入式集成開發(fā)環(huán)境工程管理范文

嵌入式集成開發(fā)環(huán)境工程管理范文

本站小編為你精心準備了嵌入式集成開發(fā)環(huán)境工程管理參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

嵌入式集成開發(fā)環(huán)境工程管理

1工程管理組成結構

工程管理包括:編輯管理、模板管理、項目管理和構建管理,之間關系如圖2所示。嵌入式軟件開發(fā)的第一步,要根據需求建立一個項目;項目管理根據項目類型,讀取模板管理的對應模板項目庫,處理對應模板項目中的文件資源;開發(fā)過程中編輯、查看源碼,修改腳本文件等需要調用編輯管理的功能;代碼開發(fā)完成后,啟動構建管理,調用交叉工具鏈,構建生成目標文件。

1.1編輯管理編輯管理提供源代碼的編輯功能,支持對C/C++源文件、匯編程序源文件、XML文件和makefile腳本文件的編輯。編輯環(huán)境提供了基本編輯功能和高級編輯功能,支持中文編輯能力。C/C++編輯器提供豐富的輔助編輯功能如代碼折疊、補全、提示和比較等。直接使用CDT提供的C/C++、匯編和makefile編輯器;直接使用WST提供的XML編輯器。

1.2模板管理模板管理預定義每類項目的缺省內容,如源代碼和工具鏈的編譯參數,提供修改或擴充一個預定義項目的能力,這樣用戶就可以在已經存在的代碼和資源的基礎上定制或增加新的代碼。模板管理為支持的嵌入式操作系統(tǒng)所包含類型的項目指定文件夾存儲模板。模板包括項目缺省的源代碼目錄、構建配置目錄列表、環(huán)境變量描述文件、項目描述文件和預定義的編譯參數文件。模板管理提供豐富的可擴展機制:可更新項目缺省源代碼文件;可增加新的構建配置目錄,為項目擴展新支持的體系結構;可根據規(guī)則修改預定義的編譯參數文件。CDT提供模板擴展點,可為不同的項目類型擴展該擴展點,定義創(chuàng)建項目所需要的文件資源和添加文件所需要的操作。

1.3項目管理針對特定的目標機及嵌入式操作系統(tǒng)平臺,項目管理提供項目創(chuàng)建輔助功能。項目管理為所支持的嵌入式操作系統(tǒng)各自創(chuàng)建統(tǒng)一的新建向導,引導建立不同類型的預定義項目,包括靜態(tài)庫項目、操作系統(tǒng)項目、應用項目和自定義項目等。靜態(tài)庫項目用于生成程序的靜態(tài)庫;操作系統(tǒng)項目用于生成可加載運行的操作系統(tǒng)程序映像;應用項目用于生成可重定位的應用映像;自定義項目提供基本的如工具鏈包含的工具定義、項目路徑、源代碼路徑、構建路徑,自己組織項目資源等支持,并根據實際需求,自由組織所有資源。CDT提供項目定義擴展點,為不同的項目類型擴展該擴展點,定義項目可使用的工具鏈及其參數,項目包含的構建配置等。擴展模板關聯擴展點,創(chuàng)建指定項目的模板擴展點和項目定義擴展點。

1.4構建管理構建管理維護項目的多個構建配置,提供創(chuàng)建和刪除構建配置功能。針對一個構建配置,以圖形化方式配置編譯參數;自動生成該構建配置的Makefile腳本;提供構建操作,調用與構建配置適配的工具鏈。在嵌入式軟件開發(fā)過程中,經常出現硬件條件不具備,而與目標硬件無關的嵌入式應用軟件開發(fā)需要先期開展的情況。一般先使用虛擬機環(huán)境或者其他硬件代替,等硬件條件滿足后,再轉到真實的目標平臺。為解決這個問題,一個項目只維護一份源碼,包含多個構建配置。源碼專注本身業(yè)務,和目標機體系結構相關的內容則交給構建配置,每個構建配置都包含單獨的構建腳本,對應目標機體系結構的描述文件和Makefile。這需要有項目的多構建配置管理支持。CDT的構建管理主要支持開發(fā)桌面應用程序,傾向于項目構建配置的版本管理,如可為項目定義Debug和Release兩個構建配置,包含不同的構建參數配置。因此,該部分功能需要修改和擴展CDT。在實際的嵌入式應用軟件開發(fā)過程中,經常會使用遺產項目,這些項目可能受限于某些原因(如沒有源碼),不能重新編譯構建,只能使用已有的目標文件。這樣,新創(chuàng)建的項目要使用和遺產項目相同的工具鏈。同時,嵌入式硬件CPU發(fā)展迅速,CygwinGCC的版本也在持續(xù)升級,支持越來越多的功能。比如,某些編譯構建選項只有更新、更高版本的工具鏈才能使用,如P2020、P40808處理器需要GCC較高版本才能有更好的支持。因此,需要提供多版本的GCC支持。CDT只有不同工具鏈的切換,不支持多工具鏈版本管理;不支持把切換前的工具鏈配置繼承給新的工具鏈。因此,該部分功能需要修改和擴展CDT。一個項目通常有很多源文件,由于文件間復雜的依賴關系,手工編寫Makefile文件費力耗時,在修改源文件或頭文件后,容易忽略更新Makefile文件。所以需要為項目自動生成Makefile。嵌入式操作系統(tǒng)的各種項目分別有不同要求,CDT缺省的通用Makefile生成器不能滿足要求,需要擴展。

2關鍵技術

在實現嵌入式集成開發(fā)環(huán)境工程管理的過程中,存在一些需要解決的難點技術。主要是多構建配置管理技術、多工具鏈版本管理技術和Makefile自動生成技術。

2.1多構建配置管理技術項目多構建配置管理主要包括根據新建項目向導創(chuàng)建構建配置;為已有項目添加構建配置;刪除構建配置。新建項目向導的實現方法為:(1)在項目模板的構建配置目錄中,為該項目類型定義所支持的目標機體系結構創(chuàng)建配置擴展目錄,添加相關文件;(2)修改CDT項目向導的構建配置選擇頁源代碼CDTConfigWizardPage.java類的getDefaultCfgs()方法,解析(1)中項目模板的構建配置目錄,得到構建配置列表,替代原來默認的Debug和Release項;(3)修改CDT創(chuàng)建項目處理程序代碼MBSWizardHandler.java類的createProject()方法,為(2)中選擇的構建配置添加(1)中模板目錄定義的文件。為已有項目添加構建配置需要擴展CDT的新建構建配置擴展點,實現自定義構建配置向導,根據項目類型和選擇的構建配置模板添加新的構建配置。刪除構建配置使用CDT原有功能。

2.2多工具鏈版本管理技術實現多工具鏈版本管理需要擴展CDT的工具鏈定義擴展點org.eclipse.cdt.managedbuilder.core.buildDefinitions,擴展出基礎工具鏈cross.gcc.base。它包括交叉編譯需要的編譯器、匯編器和連接器等工具的聲明;繼續(xù)擴展上述擴展點,繼承cross.gcc.base,為嵌入式操作系統(tǒng)所有項目類型定義所需要的工具鏈版本,實現工具鏈使用的makefile生成器、環(huán)境變量提供器和錯誤解析器等元素;擴展項目轉換器擴展點org.eclipse.cdt.managedbuilder.core.projectConverter,當構建配置的工具鏈版本切換時,會根據工具鏈ID創(chuàng)建新工具鏈,并把原工具鏈所包含的工具構建參數復制到新工具鏈上,同時移除原工具鏈。

2.3Makefile自動生成技術自動生成Makefile需要實現CDT構建插件提供的生成Makefile的接口IManagedBuilderMakefileGenerator,自定義Makefile文件生成器類CrossMakefileGenerator。該類維護Makefile文件,包括如下內容:(1)一個主Makefile,是該項目類型構建腳本入口,在創(chuàng)建項目時從模板創(chuàng)建,允許手動修改,構建時不會主動更新;(2)一個變量Makefile,維護構建變量,如當前工作路徑、工具鏈路徑、目標體系結構、嵌入式操作系統(tǒng)標識、目標文件定義、源碼子目錄列表和引用的庫文件列表等,構建時根據構建狀態(tài)自動更新;(3)每個源碼目錄都對應一個構建規(guī)則描述Makefile文件,包含該子目錄的源文件列表、對應的目標文件列表、依賴文件列表和源碼代碼(C、C++和匯編)的構建規(guī)則等,構建時根據構建參數配置自動更新。

3結束語

主要研究以Eclipse平臺和CDT項目為依托,實現嵌入式軟件集成開發(fā)環(huán)境的工程管理。支持代碼輔助編輯、項目模板定制、項目管理、多構建配置管理、多工具鏈管理、多種嵌入式操作系統(tǒng)支持和自動生成Makefile等功能。

作者:田丹 林卓 衛(wèi)進 單位:中航工業(yè)西安航空計算技術研究所

主站蜘蛛池模板: 劲爆欧美第1页婷婷| 国产精品自在在线午夜出白浆 | 亚洲精品视频免费在线观看| 老子影院伦不卡欧美| 国产我和子的与子乱视频| 91热久久免费精品99| 女人被免费视频网站| 久9久9精品免费观看| 日韩欧美一区二区三区| 亚洲国产欧美在线人成北岛玲| 爱情岛永久入口线路首页| 动漫人物桶机动漫| 老师你的兔子好软水好多的车视频 | 狠狠人妻久久久久久综合蜜桃| 含羞草影院视频播放| 视频在线免费观看资源| 国产成人麻豆亚洲综合无码精品 | 欧美成人高清WW| 亚洲精品成人网站在线播放 | 三级精品视频在线播放| 日本中文在线观看| 久久综合88熟人妻| 樱桃视频高清免费观看在线播放| 亚洲精品午夜久久久伊人| 男女啪啪免费体验区| 再灬再灬再灬深一点舒服| 翁虹三级在线伦理电影| 国产亚洲日韩欧美一区二区三区| 黑人狠狠的挺身进入| 国产欧美在线一区二区三区| 制服丝袜怡红院| 国产美女自慰在线观看| 99在线播放视频| 天天做天天爱天天综合网| 一二三区免费视频| 性xxxxfreexxxxx国产| 中文字幕乱码系列免费| 攵女yin乱合集高h小丹| 久久一本岛在免费线观看2020| 日本无吗免费一二区| 久久青草国产免费观看|