專利名稱:嵌入式設(shè)備集成開發(fā)系統(tǒng)及其使用方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式設(shè)備集成開發(fā)系統(tǒng),也涉及使用該嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的方法,屬于計(jì)算機(jī)技術(shù)領(lǐng)域。
背景技術(shù):
在信息技術(shù)高速發(fā)展的后PC時(shí)代,嵌入式設(shè)備已經(jīng)廣泛滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)等方方面面。這些嵌入式設(shè)備在運(yùn)行時(shí)都需要有相應(yīng)地嵌入式系統(tǒng)提供軟件支持。為此,需要根據(jù)不同的具體需求開發(fā)相應(yīng)的嵌入式設(shè)備支撐系統(tǒng)。
總體而言,Linux系統(tǒng)劃分為內(nèi)核層和應(yīng)用層兩個(gè)層次。內(nèi)核層提供基本的功能,如內(nèi)存管理、進(jìn)程管理、設(shè)備驅(qū)動(dòng)程序、文件系統(tǒng)及網(wǎng)絡(luò)管理等,而圖形用戶界面、用戶應(yīng)用程序等均工作在應(yīng)用層。用戶可以采用模塊的方式動(dòng)態(tài)將某一功能加載進(jìn)內(nèi)核,從而根據(jù)具體需要配置和裁減內(nèi)核。
目前,嵌入式系統(tǒng)的軟件開發(fā)通常是采用交叉編譯工具鏈在宿主機(jī)中開發(fā)的。由于目標(biāo)機(jī)體系結(jié)構(gòu)與宿主機(jī)體系結(jié)構(gòu)的不同,因此必須在宿主機(jī)上針對(duì)目標(biāo)機(jī)體系結(jié)構(gòu)建立相應(yīng)的交叉編譯工具鏈,交叉編譯嵌入式操作系統(tǒng)的內(nèi)核和用戶應(yīng)用程序。
現(xiàn)有的商用嵌入式操作系統(tǒng)中比較著名的有Microsoft Windows CE、MontaVista Linux和VxWorks等。它們都提供相應(yīng)的開發(fā)系統(tǒng),例如VxWorks提供TornadoII集成開發(fā)環(huán)境。但是,現(xiàn)有商用嵌入式操作系統(tǒng)及其開發(fā)工具大多數(shù)沒有公開其核心源代碼,這種源代碼的封閉性大大限制了開發(fā)者的積極性,導(dǎo)致系統(tǒng)功能的局限性和系統(tǒng)結(jié)構(gòu)的脆弱。
目前,Linux系統(tǒng)以其源代碼完全開放的突出優(yōu)點(diǎn)在嵌入式系統(tǒng)中占據(jù)越來越重要的地位。但是,現(xiàn)有基于Linux的商用嵌入式設(shè)備集成開發(fā)系統(tǒng)普遍不成熟,功能比較單一,對(duì)開發(fā)系統(tǒng)板的支持有限,而且基本上都沒有采用圖形化用戶界面,操作上比較麻煩,因此有必要進(jìn)一步加以改進(jìn)。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對(duì)現(xiàn)有基于Linux的嵌入式設(shè)備開發(fā)系統(tǒng)的不足,提供一種新的完備易用的嵌入式集成開發(fā)系統(tǒng)。該系統(tǒng)采用圖形化用戶界面,并采用具有二級(jí)索引配置的開發(fā)板支持機(jī)制,為使用者提供了一種方便易用、靈活高效的嵌入式系統(tǒng)開發(fā)平臺(tái)。
本發(fā)明的另外一個(gè)目的在于提供一種使用該嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的方法。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用下述的技術(shù)方案
一種嵌入式設(shè)備集成開發(fā)系統(tǒng),基于Linux平臺(tái)實(shí)現(xiàn),包括交叉編譯模塊,遠(yuǎn)程調(diào)試模塊,加載模塊,文件編輯模塊;所述交叉編譯模塊包括匯編器、編譯器和鏈接器;所述遠(yuǎn)程調(diào)試模塊包括內(nèi)核調(diào)試工具和應(yīng)用開發(fā)調(diào)試工具;所述加載模塊包括裸機(jī)加載工具、操作系統(tǒng)加載工具以及基于操作系統(tǒng)的加載工具,其特征在于
所述系統(tǒng)還具有平臺(tái)開發(fā)配置模塊和項(xiàng)目管理模塊;所述平臺(tái)開發(fā)配置模塊提供開發(fā)板級(jí)支持軟件包,進(jìn)行開發(fā)平臺(tái)的配置工作,所述項(xiàng)目管理模塊為該開發(fā)平臺(tái)提供文件系統(tǒng)、內(nèi)核配置一體化的工作區(qū),源文件在所述工作區(qū)編寫完成之后,所述交叉編譯模塊進(jìn)行編譯,生成的映像文件由所述加載模塊加載到目標(biāo)機(jī),由所述遠(yuǎn)程調(diào)試模塊進(jìn)行調(diào)試。
所述開發(fā)板極軟件包具有二級(jí)索引配置。
第一級(jí)索引以嵌入式處理器的平臺(tái)體系為索引項(xiàng),列出嵌入式集成開發(fā)系統(tǒng)提供的硬件平臺(tái)的名稱;第二級(jí)列出用戶選擇的硬件平臺(tái)上的基本軟硬件配置信息。
所述軟件包具有粗粒度配置和細(xì)粒度配置兩種模式,該兩種模式的選擇因素包括用戶項(xiàng)目選用的平臺(tái)與開發(fā)系統(tǒng)缺省提供的平臺(tái)是否一致;目標(biāo)系統(tǒng)對(duì)于操作系統(tǒng)內(nèi)核與文件系統(tǒng)的大小限制是否嚴(yán)格;目標(biāo)系統(tǒng)是否需要定制特殊功能三方面情況。
所述源文件包括內(nèi)核源文件和應(yīng)用程序源文件。
一種利用上述嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的方法,包括下述步驟
(1)定義嵌入式系統(tǒng)的主框架;
(2)配置開發(fā)板級(jí)支持軟件包;
(3)利用平臺(tái)開發(fā)配置模塊進(jìn)行開發(fā)平臺(tái)的配置;
(4)項(xiàng)目管理模塊為上述開發(fā)平臺(tái)確定工作區(qū);
(5)在工作區(qū)開發(fā)嵌入式系統(tǒng)的內(nèi)核源程序和用戶應(yīng)用程序;
(6)由交叉編譯模塊對(duì)源文件進(jìn)行編譯,生成內(nèi)核的映像文件和應(yīng)用程序的二進(jìn)制映像文件;
(7)上述內(nèi)核的映像文件和應(yīng)用程序的二進(jìn)制映像文件由加載模塊加載到目標(biāo)機(jī);
(8)利用遠(yuǎn)程調(diào)試模塊對(duì)嵌入式系統(tǒng)的內(nèi)核和用戶應(yīng)用程序進(jìn)行調(diào)試,如果不能滿足設(shè)計(jì)要求則返回步驟(5),重新進(jìn)行開發(fā);如果滿足設(shè)計(jì)要求則嵌入式系統(tǒng)開發(fā)成功。
所述步驟(1)中的主框架運(yùn)行機(jī)制為
a.系統(tǒng)各變量、對(duì)象初始化;
b.系統(tǒng)初始化完成,并等待外部用戶事件或系統(tǒng)消息的輸入;
c.如有用戶輸入,則根據(jù)事件消息轉(zhuǎn)換運(yùn)行狀態(tài),執(zhí)行相應(yīng)的功能處理過程;執(zhí)行結(jié)束,返回主框架的等待狀態(tài);
d.如接收到系統(tǒng)消息,則進(jìn)行相應(yīng)的系統(tǒng)消息處理過程,處理完返回等待狀態(tài);如果是退出消息,則系統(tǒng)運(yùn)行結(jié)束。
所述工作區(qū)與一個(gè)包含操作系統(tǒng)和應(yīng)用程序的嵌入式系統(tǒng)相對(duì)應(yīng),所述工作區(qū)的設(shè)置選項(xiàng)中包含相應(yīng)的目標(biāo)平臺(tái)體系結(jié)構(gòu)及相關(guān)硬件的信息。
所述加載模塊用于設(shè)置傳輸參數(shù),報(bào)告參數(shù)設(shè)置錯(cuò)誤,傳送文件并進(jìn)行文件傳送過程控制。
所述遠(yuǎn)程調(diào)試模塊在所述嵌入式設(shè)備集成開發(fā)系統(tǒng)用于設(shè)置調(diào)試參數(shù),啟動(dòng)調(diào)試過程并執(zhí)行調(diào)試指令。
本發(fā)明所述的嵌入式設(shè)備集成開發(fā)系統(tǒng)在開發(fā)板級(jí)支持機(jī)制和工作區(qū)管理方面進(jìn)行了創(chuàng)新,提出了有二級(jí)索引配置的開發(fā)系統(tǒng)板支持機(jī)制,以及基于體系結(jié)構(gòu)和開發(fā)板應(yīng)用的文件系統(tǒng)、內(nèi)核配置一體化的工作區(qū)管理機(jī)制。該系統(tǒng)具有使用方便、界面友好、支持向?qū)ч_發(fā)、可擴(kuò)展性良好的優(yōu)點(diǎn)。
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的說明。
圖1為嵌入式設(shè)備集成開發(fā)系統(tǒng)與嵌入式系統(tǒng)的關(guān)系示意圖。
圖2為現(xiàn)有的典型嵌入式設(shè)備集成開發(fā)系統(tǒng)的組成示意圖。
圖3為平臺(tái)開發(fā)配置模塊的內(nèi)部工作流程示意圖。
圖4為項(xiàng)目管理模塊的內(nèi)部工作流程示意圖。
圖5為交叉編譯模塊的內(nèi)部工作流程示意圖。
圖6為遠(yuǎn)程調(diào)試模塊的內(nèi)部工作流程示意圖。
圖7為加載模塊的內(nèi)部工作流程示意圖。
圖8為本開發(fā)系統(tǒng)提供的圖形化用戶操作界面的示意圖。
圖9為開發(fā)系統(tǒng)主框架的運(yùn)行機(jī)制示意圖。
圖10為系統(tǒng)軟件與應(yīng)用軟件開發(fā)過程示意圖。
圖11為交叉編譯過程中的調(diào)用關(guān)系示意圖。
圖12為上載過程中的函數(shù)調(diào)用關(guān)系示意圖。
圖13為嵌入式系統(tǒng)開發(fā)過程中各模塊的接口關(guān)系示意圖。
圖14為使用本嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式設(shè)備應(yīng)用軟件的工作流程示意圖。
圖15為目標(biāo)平臺(tái)應(yīng)用軟件開發(fā)過程中的模塊接口關(guān)系示意圖。
具體實(shí)施例方式
圖1所示為嵌入式設(shè)備集成開發(fā)系統(tǒng)與嵌入式系統(tǒng)的關(guān)系示意圖。嵌入式系統(tǒng)作為應(yīng)用平臺(tái),包括嵌入式硬件與嵌入式軟件兩部分;嵌入式設(shè)備集成開發(fā)系統(tǒng)作為開發(fā)平臺(tái),是指在開發(fā)階段為獲得良好的開發(fā)環(huán)境、交互界面和編譯性能所采用的桌面仿真環(huán)境。
圖2所示為現(xiàn)有的典型嵌入式開發(fā)系統(tǒng)的組成示意圖。它包括交叉編譯模塊,遠(yuǎn)程調(diào)試模塊,加載模塊等,其中交叉編譯模塊包括匯編器、編譯器和鏈接器,編譯器用于生成不同硬件平臺(tái)的目標(biāo)代碼。遠(yuǎn)程調(diào)試模塊即調(diào)試器,它包括內(nèi)核調(diào)試工具和應(yīng)用開發(fā)調(diào)試工具,其通過網(wǎng)絡(luò)或者串口連接客戶-服務(wù)器。加載模塊包括裸機(jī)加載工具、操作系統(tǒng)加載工具以及基于操作系統(tǒng)的加載工具。
本嵌入式設(shè)備集成開發(fā)系統(tǒng)的硬件平臺(tái)即為普通的PC機(jī),操作系統(tǒng)采用現(xiàn)有的Linux操作系統(tǒng),它除了具有上述的交叉編譯模塊,遠(yuǎn)程調(diào)試模塊,加載模塊,文件編輯模塊之外,還增加了平臺(tái)開發(fā)配置模塊和項(xiàng)目管理模塊。它可以實(shí)現(xiàn)具有二級(jí)索引配置的開發(fā)板級(jí)支持機(jī)制,以及文件系統(tǒng)、內(nèi)核配置一體化的工作區(qū)管理機(jī)制。
所述平臺(tái)開發(fā)配置模塊的作用在于為開發(fā)者在主機(jī)上選擇所需要的目標(biāo)平臺(tái)類型、指定所需的內(nèi)核生成配置、選擇所需要的C運(yùn)行庫以及圖形庫和工具配置等。它提供友好界面讓用戶對(duì)開發(fā)平臺(tái)環(huán)境進(jìn)行完全配置,并可以提供預(yù)定義的多個(gè)配置模板,簡化用戶配置過程。其內(nèi)部工作流程如圖3所示,首先根據(jù)用戶界面確定是新建配置還是已有配置,并由此進(jìn)行配置模板選擇或者平臺(tái)配置文件格式解析工作,在開發(fā)平臺(tái)配置完成之后,再進(jìn)行內(nèi)核生成配置、運(yùn)行庫配置和圖形庫配置等工作。
文件編輯模塊主要用于項(xiàng)目開發(fā)過程中源文件的生成、編輯和保存。它提供文本文件的生成、打開編輯、保存等功能,以及在編輯過程中的剪切\(zhòng)復(fù)制\粘貼\刪除\搜索等基本編輯功能。
項(xiàng)目管理模塊主要用于項(xiàng)目開發(fā)過程中源文件的管理、項(xiàng)目選項(xiàng)設(shè)定等。其功能在于
(1)提供新建項(xiàng)目、開發(fā)現(xiàn)有項(xiàng)目、項(xiàng)目設(shè)置文件的保存等功能。
(2)在新建項(xiàng)目時(shí),提供向?qū)Х奖阌脩糸_發(fā)。
(3)在項(xiàng)目開發(fā)時(shí),提供“添加一個(gè)源文件到項(xiàng)目”、“從項(xiàng)目中刪除一個(gè)源文件”等項(xiàng)目文件管理功能。
(4)在項(xiàng)目開發(fā)過程中,提供友好的界面讓用戶設(shè)定和修改項(xiàng)目屬性。
其內(nèi)部工作流程如圖4所示,從用戶界面獲知是新建項(xiàng)目、打開項(xiàng)目、項(xiàng)目文件管理還是項(xiàng)目配置,然后分別做出相應(yīng)的操作。
項(xiàng)目管理模塊是本嵌入式設(shè)備集成開發(fā)系統(tǒng)實(shí)現(xiàn)工作區(qū)管理機(jī)制的關(guān)鍵所在。這里的“工作區(qū)”是區(qū)別于應(yīng)用開發(fā)的“項(xiàng)目“的概念而言的。一個(gè)“工作區(qū)”對(duì)應(yīng)一個(gè)完整的嵌入式系統(tǒng),既包含操作系統(tǒng),也包括應(yīng)用程序。一個(gè)嵌入式系統(tǒng)可以執(zhí)行多個(gè)應(yīng)用,所以一個(gè)“工作區(qū)”中可以包含多個(gè)“項(xiàng)目”。此外工作區(qū)的設(shè)置選項(xiàng)還應(yīng)包含相應(yīng)的目標(biāo)平臺(tái)體系結(jié)構(gòu)及相關(guān)硬件的信息。用戶無須了解系統(tǒng)選用的內(nèi)核及其補(bǔ)丁的版本、交叉開發(fā)工具的編譯版本等信息。集成開發(fā)環(huán)境可以根據(jù)“工作區(qū)”的選項(xiàng)自動(dòng)確定目標(biāo)系統(tǒng)所需的操作系統(tǒng)內(nèi)核以及交叉開發(fā)工具前綴。本開發(fā)系統(tǒng)將嵌入式系統(tǒng)內(nèi)核的開發(fā)和應(yīng)用程序的開發(fā)放在同一個(gè)工作區(qū)進(jìn)行,而不象現(xiàn)有系統(tǒng)那樣將兩者完全分開。這樣就可以利用同一工作平臺(tái)完成內(nèi)核和應(yīng)用程序的開發(fā)工作,提高工作的效率。
交叉編譯模塊主要用于編譯和生成運(yùn)行于指定開發(fā)平臺(tái)上的操作系統(tǒng)內(nèi)核,以及運(yùn)行于該平臺(tái)之上的應(yīng)用程序。它可以采用現(xiàn)有的GCC(GNU CCompiler)交叉編譯工具鏈,或根據(jù)需要重新生成所需平臺(tái)的GCC交叉編譯工具鏈。在IDE框架與GCC交叉編譯工具鏈之間需要有一個(gè)GCC控制模塊(GCCcontrol unit),該模塊的功能為將IDE框架的菜單命令轉(zhuǎn)換為GCC的命令或命令組合,并生成命令腳本,調(diào)用對(duì)應(yīng)目標(biāo)平臺(tái)的GCC;將GCC的輸出結(jié)果重定向到IDE輸出顯示窗口。其內(nèi)部工作流程如圖5所示。
遠(yuǎn)程調(diào)試模塊主要提供項(xiàng)目開發(fā)過程中的本地仿真調(diào)試和遠(yuǎn)程目標(biāo)機(jī)調(diào)試。它可以采用現(xiàn)有的GDB(GNU Debugger)調(diào)試工具(遠(yuǎn)程調(diào)試需要操作系統(tǒng)內(nèi)核支持)。在IDE框架與GDB調(diào)試工具之間需要有一個(gè)GDB控制模塊(GDB control unit),該模塊的功能為將IDE框架的菜單命令轉(zhuǎn)換為GDB的命令或命令組合,并生成命令腳本,調(diào)用對(duì)應(yīng)目標(biāo)平臺(tái)的GDB;將GDB的輸出結(jié)果重定向到IDE輸出顯示窗口。其內(nèi)部工作流程如圖6所示。
加載模塊主要提供內(nèi)核和應(yīng)用程序到指定目標(biāo)的上載功能。它可以提供對(duì)各種上載手段的設(shè)置,并可以提供基于串行、網(wǎng)絡(luò)等方式的上載。其內(nèi)部工作流程如圖7所示。
本發(fā)明所述的嵌入式設(shè)備集成開發(fā)系統(tǒng)是一個(gè)基于Linux的開發(fā)平臺(tái),我們將之稱為Embedded IDE。該開發(fā)系統(tǒng)與現(xiàn)有同類型系統(tǒng)的主要區(qū)別在于采用如圖8所示的圖形化用戶操作界面,并采用自己獨(dú)有的工作區(qū)管理機(jī)制,通過向?qū)讲僮?,可以一次完成一個(gè)新的嵌入式系統(tǒng)的內(nèi)核和文件系統(tǒng)的開發(fā)工作。另外,它具有采用具有二級(jí)索引結(jié)構(gòu)的開發(fā)板支持機(jī)制,可以在同一開發(fā)系統(tǒng)中針對(duì)不同的硬件平臺(tái),在多種開發(fā)板中開發(fā)相應(yīng)的嵌入式系統(tǒng)。下面就結(jié)合使用該嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的實(shí)現(xiàn)過程對(duì)這兩方面特點(diǎn)加以詳細(xì)說明。
使用本嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)首先要進(jìn)行的工作是定義嵌入式系統(tǒng)的主框架;然后配置開發(fā)板級(jí)支持軟件包BSP;配置并生成內(nèi)核映像,文件系統(tǒng)映像;利用交叉編譯模塊、遠(yuǎn)程調(diào)試模塊和加載模塊進(jìn)行交叉編譯、遠(yuǎn)程調(diào)試等工作,最終生成嵌入式系統(tǒng)及其應(yīng)用程序。上述過程涉及到嵌入式系統(tǒng)內(nèi)核的實(shí)現(xiàn)和各應(yīng)用子模塊的實(shí)現(xiàn)兩個(gè)方面。下面分別對(duì)此加以說明。
(1)確定嵌入式系統(tǒng)運(yùn)行的主框架
開發(fā)一個(gè)嵌入式系統(tǒng)首要的工作是確定系統(tǒng)運(yùn)行的主框架。主框架是確定各模塊間消息通訊機(jī)制、外部事件響應(yīng)機(jī)制、全局變量定義和初始化、系統(tǒng)初始化和總體運(yùn)行模塊組合控制的關(guān)鍵部分,對(duì)系統(tǒng)總體的易用性、穩(wěn)定性、完備性的性能實(shí)現(xiàn)發(fā)揮著重要作用,也是決定系統(tǒng)總體設(shè)計(jì)方案成敗的重要部分。它的運(yùn)行機(jī)制如圖9所示,包括以下步驟
a.系統(tǒng)各變量、對(duì)象初始化;
b.系統(tǒng)初始化完成,并等待外部用戶事件或系統(tǒng)消息的輸入;
c.如有用戶輸入,則根據(jù)事件消息轉(zhuǎn)換運(yùn)行狀態(tài),執(zhí)行相應(yīng)的功能處理過程;執(zhí)行結(jié)束,返回主框架的等待狀態(tài);
d.如接收到系統(tǒng)消息,則進(jìn)行相應(yīng)的系統(tǒng)消息處理過程,處理完返回等待狀態(tài);如果是退出消息,則系統(tǒng)運(yùn)行結(jié)束。
在主框架確定之后,下一步就要根據(jù)系統(tǒng)各運(yùn)行狀態(tài)涉及的應(yīng)用模塊和系統(tǒng)資源,定義模塊運(yùn)行組合方案;然后再根據(jù)系統(tǒng)運(yùn)行中對(duì)資源初始狀態(tài)的要求,定義系統(tǒng)初始化過程。
(2)配置開發(fā)板級(jí)支持軟件包(Board Support Package,以下簡稱為BSP)
BSP是嵌入式系統(tǒng)所獨(dú)有的,它是一個(gè)介于操作系統(tǒng)和底層硬件之間的軟層次,包括了系統(tǒng)中大部分與硬件相關(guān)的軟件模塊。它在功能上包含兩部分硬件系統(tǒng)初始化及與硬件相關(guān)的設(shè)備驅(qū)動(dòng)。硬件系統(tǒng)初始化完成的基本功能有對(duì)CPU進(jìn)行低級(jí)初始化、對(duì)主板的硬件進(jìn)行初始化、加載操作系統(tǒng)等。BSP的具體編寫與嵌入式設(shè)備的硬件狀況密切相關(guān),在有關(guān)的技術(shù)手冊(cè)上都有詳細(xì)說明,因此在此就不詳述了。
本發(fā)明所述的嵌入式設(shè)備集成開發(fā)系統(tǒng)與現(xiàn)有系統(tǒng)的一個(gè)重要區(qū)別就在于BSP軟件包采用二級(jí)索引配置,因此系統(tǒng)的可擴(kuò)展性好。如圖10所示,一級(jí)索引以嵌入式處理器的平臺(tái)體系為索引項(xiàng),列出嵌入式集成開發(fā)系統(tǒng)提供的硬件平臺(tái)的名稱,例如ARM、x86、MIPS等
一級(jí)索引
intel_assabet #intel sa1110 processor
altera_epxal#altera processor
cirrus_cs89712 #cs89712 comunication processor
nec_nec4121 #NEC 4121
nec_nec4122 #NEC 4122
i_586 #586
i_686 #686
二級(jí)索引則如下所示,是列出用戶選擇的硬件平臺(tái)上的基本軟硬件配置信息。
二級(jí)索引
<info>
ProjectName=
ProjectLocation=
ProjectTargetArch=
ProjectKCMType=
FS_TYPE=
FS_SIZE=
CONFIG_NETWORK=y(tǒng);
CONFIG_FLOPPY=y(tǒng);
CONFIG_FILESYS=y(tǒng);
CONFIG_GAME=y(tǒng);
CONFIG_ELSE=y(tǒng);
CONFIG_SOUND=y(tǒng);
CONFIG_TOUCHPL=y(tǒng);
CONFIG_USB=y(tǒng);
CONFIG_GUI=y(tǒng); #GUI
CONFIG_FONT=y(tǒng);#Chinese fonts
CONFIG_MAIL=y(tǒng);#mail
一個(gè)新建工程經(jīng)過第一級(jí)BSP索引之后,判斷可以使用哪一個(gè)平臺(tái)上的BSP軟件包,然后在該軟件包中通過第二級(jí)索引找到對(duì)應(yīng)的硬件驅(qū)動(dòng)。這部分工作完成之后,再配置對(duì)話框,進(jìn)行內(nèi)核配置和文件系統(tǒng)的配置,從而完成該新建工程與整個(gè)系統(tǒng)的一體化。
上述二級(jí)索引配置機(jī)制提供粗細(xì)兩級(jí)粒度的配置方案,其中一級(jí)索引配置提供粗粒度的配置,適用于以下情況
●用戶項(xiàng)目選用的平臺(tái)與開發(fā)系統(tǒng)缺省提供的平臺(tái)一致或非常接近;
●目標(biāo)系統(tǒng)對(duì)于操作系統(tǒng)內(nèi)核與文件系統(tǒng)的大小限制不是非常嚴(yán)格;
●目標(biāo)系統(tǒng)只需滿足基本功能,無需定制特殊功能。
具體而言,粗粒度的配置只需解決下列的配置問題
(1)文件系統(tǒng)(ext,ext2,fat)
(2)內(nèi)核調(diào)度(靜態(tài)優(yōu)先級(jí),動(dòng)態(tài)優(yōu)先級(jí),混合)
(3)內(nèi)存管理(最大內(nèi)存,最小內(nèi)存,MMU支持)
(4)外設(shè)支持(鍵盤、鼠標(biāo)、SPP\EPP、VGA)
(5)網(wǎng)絡(luò)協(xié)議(TCP\IP)
(6)標(biāo)準(zhǔn)接口支持(USB、IrDA、RS232)
(7)標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)能力(IDE、PCI、SCSI)
(8)提供中文支持
而二級(jí)索引配置提供細(xì)粒度配置,適用于以下情況
●開發(fā)系統(tǒng)提供的參考平臺(tái)與用戶選用的平臺(tái)沒有相同或接近的;
●目標(biāo)系統(tǒng)存儲(chǔ)容量有限,對(duì)操作系統(tǒng)內(nèi)核與文件系統(tǒng)大小限制嚴(yán)格;
●目標(biāo)系統(tǒng)不僅需要基本功能,還需要實(shí)現(xiàn)特殊功能。
該細(xì)粒度的配置可以適應(yīng)系統(tǒng)所能提供的全部配置方式。
(3)配置系統(tǒng)內(nèi)核
眾所周知,Linux是一個(gè)源代碼完全開放的操作系統(tǒng),它有很多不同的版本,最著名的是Redhat公司發(fā)行的Redhat Linux系列。本嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)的嵌入式系統(tǒng)采用Linux內(nèi)核,該內(nèi)核內(nèi)置硬件驅(qū)動(dòng)程序和硬件接口程序,可以提供內(nèi)存管理和程序管理等功能。
基于Linux系統(tǒng)的嵌入式設(shè)備內(nèi)核可以通過裁減一個(gè)現(xiàn)有的Linux內(nèi)核獲得,如現(xiàn)有的MontaVista Linux系統(tǒng)那樣。配置和編譯內(nèi)核的常用命令包括
現(xiàn)有的Linux技術(shù)手冊(cè)中對(duì)內(nèi)核編譯有詳細(xì)的說明,在此就不贅述了。
系統(tǒng)內(nèi)核經(jīng)過交叉編譯之后以二進(jìn)制映像的形式保存在嵌入式設(shè)備的存儲(chǔ)媒質(zhì)Flash之中。
(4)配置并生成文件系統(tǒng);
Linux的文件系統(tǒng)有一個(gè)特點(diǎn),就是在內(nèi)核層面上,它有必須的、相對(duì)固定的文件目錄名字,即
事實(shí)上,在配置系統(tǒng)內(nèi)核的同時(shí),內(nèi)核所使用的文件系統(tǒng)就基本確定下來。配置文件系統(tǒng)的主要任務(wù)是確定映像的類型,以及用戶應(yīng)用程序和庫文件等。生成的文件系統(tǒng)以映像的形式保存在存儲(chǔ)媒質(zhì)Flash之中。嵌入式開發(fā)系統(tǒng)支持兩種文件系統(tǒng)的保存方式,可以映射到內(nèi)存中,也可以固化在flash存儲(chǔ)設(shè)備上。這兩者的差別在于是否允許用戶修改既有系統(tǒng)。如果選擇將文件系統(tǒng)映射在內(nèi)存中,那么任何修改都是在內(nèi)存中進(jìn)行的,只要系統(tǒng)重啟就自動(dòng)丟失這些修改,還原到初始的文件系統(tǒng)。這種文件系統(tǒng)保存方式適用于功能單一、不允許用戶臨時(shí)修改的嵌入式系統(tǒng)。而將文件系統(tǒng)固化在Flash存儲(chǔ)設(shè)備上,那么用戶可以對(duì)具有權(quán)限的文件進(jìn)行相應(yīng)的讀寫、創(chuàng)建、刪除等操作,即使在文件操作過程中發(fā)生系統(tǒng)掉電,用戶所做的修改也會(huì)及時(shí)保存下來。這種文件系統(tǒng)保存方式有利于擴(kuò)展系統(tǒng)功能和用戶應(yīng)用。文件系統(tǒng)配置成功并能與操作系統(tǒng)內(nèi)核匹配的一個(gè)標(biāo)志就是系統(tǒng)內(nèi)核引導(dǎo)過程中init進(jìn)程能夠順利運(yùn)行。
(5)利用交叉編譯模塊、遠(yuǎn)程調(diào)試模塊和加載模塊進(jìn)行交叉編譯、遠(yuǎn)程調(diào)試等工作。
參照?qǐng)D10所示,嵌入式系統(tǒng)中的應(yīng)用軟件是在本地機(jī)上完成代碼編寫,再在交叉編譯環(huán)境下進(jìn)行編譯,并經(jīng)過遠(yuǎn)程調(diào)試,確認(rèn)可行之后上載到目標(biāo)機(jī)上運(yùn)行。用于目標(biāo)機(jī)的應(yīng)用軟件以二進(jìn)制映像的形式存在于嵌入式設(shè)備的存儲(chǔ)媒質(zhì)之中。
1.使用交叉編譯模塊
在嵌入式系統(tǒng)中,應(yīng)用程序開發(fā)仍然使用傳統(tǒng)的編寫代碼->編譯連接->調(diào)試->編寫代碼的重復(fù)過程。開發(fā)工具一般以GNU系列工具為主,除了C/C++語言編譯器gcc,還有匯編器gasm、連接器ld、調(diào)試器gdb和其它一些輔助工具等。
在傳統(tǒng)的開發(fā)過程中,需要每次手工鍵入gcc命令對(duì)每個(gè)源文件進(jìn)行單獨(dú)編譯然后再連接,在開發(fā)包含上百個(gè)源文件的大型項(xiàng)目時(shí)就顯得非常笨拙。嵌入式設(shè)備集成開發(fā)系統(tǒng)交叉編譯模塊的設(shè)計(jì)目標(biāo)是簡化可移植程序的開發(fā),因此用戶只需利用簡單的圖形化工具,而不用手寫復(fù)雜的Makefile文件;另外,盡量簡化建立源碼形式分布的程序,只需兩個(gè)步驟,而無需安裝特殊的工具。為此,在編譯模塊組成上,除了Unix shell、make程序、C/C++編譯器以外,還包含如下工具
autoconf-提供一個(gè)通用可移植性框架,基于在“建立(build)”時(shí)對(duì)主機(jī)系統(tǒng)的特性測試;
automake-描述如何“建立(build)”程序,允許開發(fā)人員編寫一個(gè)特定的Makefile;
libtool-生成共享庫的標(biāo)準(zhǔn)化方法,如果所有源文件中都不包含一個(gè)main()函數(shù),則生成共享庫;
gettext-提供將文本信息翻譯成其它語言的框架;
m4-如果autoconf需要GNU version of m4,則需包含此工具;
perl-automake需要包含該工具。
本地編譯是指使用對(duì)應(yīng)于主機(jī)系統(tǒng)結(jié)構(gòu)指令集的編譯器進(jìn)行編譯,交叉編譯是指使用對(duì)應(yīng)于目標(biāo)機(jī)系統(tǒng)結(jié)構(gòu)指令系統(tǒng)但是運(yùn)行在主機(jī)上的編譯器進(jìn)行編譯。本地編譯和交叉編譯的差別在于使用的編譯器不同,運(yùn)行過程沒有什么不同,只是在執(zhí)行congfigure時(shí)的參數(shù)不同。
交叉編譯過程中的調(diào)用關(guān)系如圖11所示。
2.使用遠(yuǎn)程調(diào)試模塊
本模塊用于實(shí)現(xiàn)Linux下對(duì)目標(biāo)板上程序的遠(yuǎn)程調(diào)試,提供遠(yuǎn)程調(diào)試參數(shù)配置的GUI界面。遠(yuǎn)程調(diào)試模塊必須在目標(biāo)平臺(tái)建立預(yù)編譯的gdbserver,啟動(dòng)gdbserver后,在主機(jī)開發(fā)平臺(tái)上運(yùn)行遠(yuǎn)程調(diào)試模塊的工具才能通過TCP/IP連接進(jìn)行調(diào)試。
這些配置都被保存在該嵌入式系統(tǒng)的設(shè)置文件中。
進(jìn)行遠(yuǎn)程調(diào)試,必須在目標(biāo)機(jī)上預(yù)先啟動(dòng)gdbserver。主機(jī)上的嵌入式設(shè)備集成開發(fā)系統(tǒng)遠(yuǎn)程調(diào)試模塊實(shí)現(xiàn)的具體功能如下
1)設(shè)置調(diào)試參數(shù)。設(shè)置目標(biāo)機(jī)的體系結(jié)構(gòu)、遠(yuǎn)程調(diào)試工具、以及目標(biāo)機(jī)的IP地址、調(diào)試端口號(hào)等關(guān)鍵參數(shù)。用戶只需在直觀的圖形對(duì)話框上逐項(xiàng)選擇相應(yīng)的參數(shù)。
2)啟動(dòng)調(diào)試過程。根據(jù)遠(yuǎn)程調(diào)試的參數(shù)設(shè)置,在用戶進(jìn)行遠(yuǎn)程調(diào)試時(shí),啟動(dòng)相應(yīng)的調(diào)試命令,同時(shí)建立主機(jī)與目標(biāo)系統(tǒng)的通信,并等待用戶下一步的調(diào)試指令。
3)執(zhí)行調(diào)試指令。執(zhí)行run、continue、step、quit等一系列GDB指令。與這些指令對(duì)應(yīng)的是調(diào)試菜單彈出的菜單項(xiàng)或者調(diào)試工具欄中的工具。
遠(yuǎn)程調(diào)試實(shí)現(xiàn)部分可以實(shí)現(xiàn)本嵌入式系統(tǒng)本地調(diào)試功能的修改,使本地調(diào)試菜單同樣適用于遠(yuǎn)程調(diào)試。
3.使用加載模塊
本模塊實(shí)現(xiàn)Linux下基于XMODEM/YMODEM等串口通信協(xié)議的文件傳輸,并提供圖形化的對(duì)話框。
上載過程中的函數(shù)調(diào)用關(guān)系如圖12所示。加載模塊實(shí)現(xiàn)的具體功能如下
1)傳輸參數(shù)設(shè)置界面。用戶可以在對(duì)話框內(nèi)對(duì)端口號(hào)、傳輸波特率、校驗(yàn)碼等串口通信關(guān)鍵參數(shù)進(jìn)行設(shè)置。
2)參數(shù)設(shè)置錯(cuò)誤報(bào)告。如果發(fā)現(xiàn)參數(shù)設(shè)置錯(cuò)誤,或者串口沒有響應(yīng),及時(shí)進(jìn)行相應(yīng)的錯(cuò)誤提示。
3)文件傳送。包括傳送的文件名的選擇,以及相應(yīng)設(shè)備的打開、關(guān)閉和設(shè)備文件讀寫等操作。
4)文件傳送過程控制。包括傳輸過程中的隨機(jī)停止文件傳輸、傳輸過程中的錯(cuò)誤報(bào)告等。
內(nèi)核映像、文件系統(tǒng)映像上載的目標(biāo)板存儲(chǔ)器上的地址缺省為固定物理地址。應(yīng)用程序的映像可以作為文件拷貝到文件系統(tǒng)中,然后作為一個(gè)新的文件系統(tǒng)映像上載,也可以單獨(dú)通過ftp等工具從網(wǎng)絡(luò)向目標(biāo)系統(tǒng)的文件系統(tǒng)中添加。
在嵌入式系統(tǒng)開發(fā)的過程中,各模塊的接口關(guān)系如圖13所示,包括如下內(nèi)容
1.用戶界面→平臺(tái)開發(fā)配置實(shí)現(xiàn)平臺(tái)開發(fā)配置模塊接口調(diào)用;平臺(tái)開發(fā)配置→用戶界面返回內(nèi)核配置沖突信息、模塊運(yùn)行狀態(tài)信息。
2.用戶界面→編譯和生成調(diào)用關(guān)系;編譯和生成→用戶界面返回運(yùn)行狀態(tài)信息。
3.用戶界面→上載調(diào)用關(guān)系;上載→用戶界面返同運(yùn)行狀態(tài)信息。
4.平臺(tái)開發(fā)配置→編譯和生成通過文件、數(shù)據(jù)結(jié)構(gòu)等傳遞生成目標(biāo)平臺(tái)的配置信息(含內(nèi)核生成配置、運(yùn)行庫及圖形庫等配置)
5.編譯和生成→上載提供上載所需目標(biāo)平臺(tái)二進(jìn)制文件(含ramdisk等形式)。
6.平臺(tái)開發(fā)配置→上載以文件或數(shù)據(jù)結(jié)構(gòu)形式,傳遞上載所需的目標(biāo)平臺(tái)開發(fā)配置參數(shù)。
圖14為使用本嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式設(shè)備應(yīng)用軟件的工作流程示意圖。一個(gè)新的工程確定之后,首先形成工程配置文檔,工程配置文檔直接對(duì)文件系統(tǒng)配置和內(nèi)核配置產(chǎn)生影響,從而生成新的文件系統(tǒng)文檔和內(nèi)核配置文檔。與該工程對(duì)應(yīng)的應(yīng)用程序源代碼形成之后,經(jīng)過交義編譯模塊編譯,并經(jīng)遠(yuǎn)程調(diào)試確認(rèn)之后,生成最終的應(yīng)用程序文件系統(tǒng),并進(jìn)一步形成二進(jìn)制映像,上載到目標(biāo)機(jī)中。在另一方面,由于有新工程的加入,內(nèi)核配置也要作相應(yīng)的適應(yīng)性修改,該修改是由映射關(guān)系文檔和工程配置文檔共同決定的,修改后的內(nèi)核配置文檔與內(nèi)核源代碼一起形成編譯后的內(nèi)核,該內(nèi)核與應(yīng)用程序文件系統(tǒng)一樣,在形成二進(jìn)制映像之后,上載到目標(biāo)機(jī)中。
在上述過程中,首先要建立主機(jī)與目標(biāo)平臺(tái)的網(wǎng)絡(luò)連接,通過telnet登錄到目標(biāo)系統(tǒng)上。如果不能建立連接或者不能遠(yuǎn)程登錄,那么問題出在系統(tǒng)內(nèi)核配置方面-其是否支持網(wǎng)絡(luò)?
建立網(wǎng)絡(luò)連接并遠(yuǎn)程登錄后,在目標(biāo)系統(tǒng)的用戶目錄下就可以運(yùn)行1s、pwd、dmesg等shell命令。如果不能運(yùn)行這些常用命令,那么問題出在文件系統(tǒng)方面-/bin或者/sbin目錄是否包含這些命令或工具?
如果能夠成功進(jìn)入目標(biāo)系統(tǒng)的各個(gè)目錄,那么進(jìn)入應(yīng)用程序所在目錄,如/home、/demo或者/app等,在命令行運(yùn)行應(yīng)用程序。如果不能成功運(yùn)行應(yīng)用程序,那么說明問題出在應(yīng)用程序的開發(fā)方面-可能是編譯問題,也可能是應(yīng)用程序本身的問題,則需要進(jìn)行遠(yuǎn)程調(diào)試來找出問題并進(jìn)行修改。
只有解決以上所有問題,嵌入式系統(tǒng)才最終完全開發(fā)成功。
圖15給出了目標(biāo)平臺(tái)應(yīng)用軟件開發(fā)過程中的模塊接口關(guān)系,其具體內(nèi)容如下所述
1.用戶界面→項(xiàng)目管理調(diào)用項(xiàng)目管理有關(guān)接口函數(shù);項(xiàng)目管理→用戶界面向用戶界面返回模塊運(yùn)行狀態(tài)信息。
2.用戶界面→文本編輯調(diào)用文本編輯有關(guān)接口;文本編輯→用戶界面向用戶界面返回文本處理狀態(tài)、運(yùn)行狀態(tài)等信息。
3.用戶界面→編譯和生成調(diào)用編譯和生成有關(guān)接口;編譯和生成→用戶界面返回運(yùn)行狀態(tài)等信息。
4.用戶界面→上載調(diào)用上載有關(guān)接口;上載→用戶界面返回運(yùn)行狀態(tài)等信息。
5.用戶界面→調(diào)試調(diào)用調(diào)試有關(guān)接口;調(diào)試→用戶界面返回運(yùn)行狀態(tài)等信息。
6.文本編輯→項(xiàng)目管理傳遞項(xiàng)目文件修改信息。
7.文本編輯→編譯和生成通過文件形式,傳遞可在編譯時(shí)使用的源代碼。
8.編譯和生成→上載生成上載所需目標(biāo)應(yīng)用程序二進(jìn)制文件。
9.項(xiàng)目管理→編譯和生成通過文件或數(shù)據(jù)結(jié)構(gòu)形式,傳遞項(xiàng)目編譯生成所需的配置參數(shù)、項(xiàng)目文件包。
10.編譯和生成→調(diào)試以文件形式,提供調(diào)試所需本地可執(zhí)行代碼和調(diào)試信息。
11.平臺(tái)開發(fā)配置→項(xiàng)目管理通過文件、數(shù)據(jù)結(jié)構(gòu)等傳遞目標(biāo)平臺(tái)的配置信息。
12.用戶界面→平臺(tái)開發(fā)配置實(shí)現(xiàn)目標(biāo)平臺(tái)配置模塊接口調(diào)用;平臺(tái)開發(fā)配置→用戶界面返回模塊運(yùn)行狀態(tài)信息。
13.平臺(tái)開發(fā)配置→編譯和生成通過文件、數(shù)據(jù)結(jié)構(gòu)等傳遞目標(biāo)平臺(tái)的配置信息。
14.平臺(tái)開發(fā)配置→上載以文件或數(shù)據(jù)結(jié)構(gòu)形式,傳遞上載所需的目標(biāo)平臺(tái)配置參數(shù)。
雖然通過實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神。
權(quán)利要求
1.一種嵌入式設(shè)備集成開發(fā)系統(tǒng),基于Linux平臺(tái)實(shí)現(xiàn),包括交叉編譯模塊,遠(yuǎn)程調(diào)試模塊,加載模塊,文件編輯模塊;所述交叉編譯模塊包括匯編器、編譯器和鏈接器;所述遠(yuǎn)程調(diào)試模塊包括內(nèi)核調(diào)試工具和應(yīng)用開發(fā)調(diào)試工具;所述加載模塊包括裸機(jī)加載工具、操作系統(tǒng)加載工具以及基于操作系統(tǒng)的加載工具,其特征在于
所述系統(tǒng)還具有平臺(tái)開發(fā)配置模塊和項(xiàng)目管理模塊;所述平臺(tái)開發(fā)配置模塊提供開發(fā)板級(jí)支持軟件包,進(jìn)行開發(fā)平臺(tái)的配置工作;所述項(xiàng)目管理模塊為該開發(fā)平臺(tái)提供文件系統(tǒng)、內(nèi)核配置一體化的工作區(qū);源文件在所述工作區(qū)編寫完成之后,所述交叉編譯模塊進(jìn)行編譯,生成的映像文件由所述加載模塊加載到目標(biāo)機(jī),由所述遠(yuǎn)程調(diào)試模塊進(jìn)行調(diào)試。
2.如權(quán)利要求1所述的嵌入式設(shè)備集成開發(fā)系統(tǒng),其特征在于
所述開發(fā)板極軟件包具有二級(jí)索引配置。
3.如權(quán)利要求2所述的嵌入式設(shè)備集成開發(fā)系統(tǒng),其特征在于
第一級(jí)索引以嵌入式處理器的平臺(tái)體系為索引項(xiàng),列出嵌入式集成開發(fā)系統(tǒng)提供的硬件平臺(tái)的名稱;第二級(jí)列出用戶選擇的硬件平臺(tái)上的基本軟硬件配置信息。
4.如權(quán)利要求2所述的嵌入式設(shè)備集成開發(fā)系統(tǒng),其特征在于
所述軟件包具有粗粒度配置和細(xì)粒度配置兩種模式,該兩種模式的選擇因素包括用戶項(xiàng)目選用的平臺(tái)與開發(fā)系統(tǒng)缺省提供的平臺(tái)是否一致;目標(biāo)系統(tǒng)對(duì)于操作系統(tǒng)內(nèi)核與文件系統(tǒng)的大小限制是否嚴(yán)格;目標(biāo)系統(tǒng)是否需要定制特殊功能三方面情況。
5.如權(quán)利要求1所述的嵌入式設(shè)備集成開發(fā)系統(tǒng),其特征在于
所述源文件包括內(nèi)核源文件和應(yīng)用程序源文件。
6.一種利用如權(quán)利要求1所述的嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的方法,包括下述步驟
(1)定義嵌入式系統(tǒng)的主框架;
(2)配置開發(fā)板級(jí)支持軟件包;
(3)利用平臺(tái)開發(fā)配置模塊進(jìn)行開發(fā)平臺(tái)的配置;
(4)項(xiàng)目管理模塊為上述開發(fā)平臺(tái)確定工作區(qū);
(5)在工作區(qū)開發(fā)嵌入式系統(tǒng)的內(nèi)核源程序和用戶應(yīng)用程序;
(6)由交叉編譯模塊對(duì)源文件進(jìn)行編譯,生成內(nèi)核的映像文件和應(yīng)用程序的二進(jìn)制映像文件;
(7)上述內(nèi)核的映像文件和應(yīng)用程序的二進(jìn)制映像文件由加載模塊加載到目標(biāo)機(jī);
(8)利用遠(yuǎn)程調(diào)試模塊對(duì)嵌入式系統(tǒng)的內(nèi)核和用戶應(yīng)用程序進(jìn)行調(diào)試,如果不能滿足設(shè)計(jì)要求則返回步驟(5),重新進(jìn)行開發(fā);如果滿足設(shè)計(jì)要求則嵌入式系統(tǒng)開發(fā)成功。
7.如權(quán)利要求6所述的利用嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的方法,其特征在于
所述步驟(1)中的主框架運(yùn)行機(jī)制為
a.系統(tǒng)各變量、對(duì)象初始化;
b.系統(tǒng)初始化完成,并等待外部用戶事件或系統(tǒng)消息的輸入;
c.如有用戶輸入,則根據(jù)事件消息轉(zhuǎn)換運(yùn)行狀態(tài),執(zhí)行相應(yīng)的功能處理過程;執(zhí)行結(jié)束,返回主框架的等待狀態(tài);
d.如接收到系統(tǒng)消息,則進(jìn)行相應(yīng)的系統(tǒng)消息處理過程,處理完返回等待狀態(tài);如果是退出消息,則系統(tǒng)運(yùn)行結(jié)束。
8.如權(quán)利要求6所述的利用嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的方法,其特征在于
所述工作區(qū)與一個(gè)包含操作系統(tǒng)和應(yīng)用程序的嵌入式系統(tǒng)相對(duì)應(yīng),所述工作區(qū)的設(shè)置選項(xiàng)中包含相應(yīng)的目標(biāo)平臺(tái)體系結(jié)構(gòu)及相關(guān)硬件的信息。
9.如權(quán)利要求6所述的利用嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的方法,其特征在于
所述加載模塊用于設(shè)置傳輸參數(shù),報(bào)告參數(shù)設(shè)置錯(cuò)誤,傳送文件并進(jìn)行文件傳送過程控制。
10.如權(quán)利要求6所述的利用嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的方法,其特征在于
所述遠(yuǎn)程調(diào)試模塊在所述嵌入式設(shè)備集成開發(fā)系統(tǒng)用于設(shè)置調(diào)試參數(shù),啟動(dòng)調(diào)試過程并執(zhí)行調(diào)試指令。
全文摘要
本發(fā)明公開了一種嵌入式設(shè)備集成開發(fā)系統(tǒng),也涉及利用該嵌入式設(shè)備集成開發(fā)系統(tǒng)開發(fā)嵌入式系統(tǒng)的方法。該集成開發(fā)系統(tǒng)基于Linux平臺(tái)實(shí)現(xiàn),包括交叉編譯模塊,遠(yuǎn)程調(diào)試模塊,加載模塊,平臺(tái)開發(fā)配置模塊,文件編輯模塊,項(xiàng)目管理模塊。平臺(tái)開發(fā)配置模塊提供開發(fā)板級(jí)支持軟件包,進(jìn)行開發(fā)平臺(tái)的配置工作,項(xiàng)目管理模塊為該開發(fā)平臺(tái)提供文件系統(tǒng)、內(nèi)核配置一體化的工作區(qū),源文件在工作區(qū)編寫完成之后,交叉編譯模塊進(jìn)行編譯,生成的映像文件由加載模塊加載到目標(biāo)機(jī),由遠(yuǎn)程調(diào)試模塊進(jìn)行調(diào)試。本嵌入式設(shè)備集成開發(fā)系統(tǒng)具有使用方便、界面友好、支持向?qū)ч_發(fā)、可擴(kuò)展性良好的優(yōu)點(diǎn)。
文檔編號(hào)G06F9/44GK1725177SQ200410069378
公開日2006年1月25日 申請(qǐng)日期2004年7月21日 優(yōu)先權(quán)日2004年7月21日
發(fā)明者李磊, 任旭龍, 周緯杰, 張文君 申請(qǐng)人:中國科學(xué)院軟件研究所