嵌入式軟件的開發(fā)環(huán)境1ppt課件_第1頁
嵌入式軟件的開發(fā)環(huán)境1ppt課件_第2頁
嵌入式軟件的開發(fā)環(huán)境1ppt課件_第3頁
嵌入式軟件的開發(fā)環(huán)境1ppt課件_第4頁
嵌入式軟件的開發(fā)環(huán)境1ppt課件_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、3 嵌入式軟件的開發(fā)環(huán)境本章主要內(nèi)容:(1) 嵌入式軟件的開發(fā)過程(2) 嵌入式軟件的建立及其工具(3) 嵌入式軟件的下載及其工具(4) 嵌入式軟件的調(diào)試及其工具(5) 典型的嵌入式軟件開發(fā)環(huán)境13.1 嵌入式軟件的開發(fā)過程為嵌入式系統(tǒng)開發(fā)運用程序的過程與為PC機開發(fā)運用軟件過程有一定的不同,出現(xiàn)了一些在PC機上不曾有的任務(wù)階段。在同樣的一個階段,詳細的任務(wù)也有很多的不同。2交叉開發(fā)方式運用程序的編輯、編譯、鏈接等過程都在宿主機上完成,而運用程序要在和宿主機有很大差別的目的機上實踐運轉(zhuǎn)。運用程序的調(diào)試主要是在宿主機上進展,但在很多情況下要借助于目機。3嵌入式軟件的開發(fā)過程43.2 嵌入式軟件的

2、建立及其工具嵌入式軟件的建立步驟:源代碼編寫編譯鏈接定址5嵌入式軟件的建立步驟63.2.1 源代碼編寫源代碼編寫階段的任務(wù)義務(wù)是運用適當?shù)某绦蛟O(shè)計言語編寫程序的源代碼。比如說用C言語、C+言語、匯編言語等。就目前的情況來看,運用最多的是C言語。這其中的緣由能夠有以下三個:其一,受通用計算機的影響,C言語的運用非常廣泛,幾乎每一種處置器都支持C言語的編譯器,而且有相當多的程序員具有用C言語進展程序開發(fā)的豐富閱歷。其二,在嵌入式系統(tǒng)領(lǐng)域中,C言語是一種最具一致規(guī)范的程序設(shè)計言語。其三,C言語是一個非常“低級的言語。它賦于程序員很多直接控制計算機硬件的才干,但又不失去高級言語所固有的益處。它的這種特

3、點對嵌入式系統(tǒng)更為重要。73.2.2 編譯編譯階段要做的任務(wù)是用交叉編譯或匯編工具處置程序的源代碼,產(chǎn)生目的文件。當宿主機和目的機采用同樣類型的處置器時,沒有“交叉的問題,是這一階段的一個特例。這時編譯任務(wù)往往簡單些。8宿主機目標機DEC Alpha Digital UnixHP 9000/700 HP-UXIBM Power PC AIXIBM RS6000 AIXSGI Iris IRIXSun SPARC SolarisSun SPARC SunOSx86 Windows 95/NTx86 Red Hat LinuxAMD/Intel x86Fujitsu SPARCliteHitach

4、i H8/300、H8/300H、H8/SHitachi SHIBM/Motorola PowerPCIntel i960MIPS R3xxx、R4xx0Mitsubishi D10v、M32R/DMotoroln 68kSun SPARC、MicroSPARCToshiba TX39GNU C/C+編譯器支持的宿主機/目的機組合93.2.3 鏈接交叉編譯器所產(chǎn)生的目的文件是不完好的,它里面能夠還有未定義的內(nèi)部變量和函數(shù)援用。鏈接階段的任務(wù)就是用鏈接工具把這些目的文件組合到一同,使一切未定義的變量和函數(shù)在程序庫或其它目的文件中找到它的定義。鏈接階段得到的結(jié)果是一個“可重定位的程序文件。其中包含

5、了來自輸入文件的一切代碼和數(shù)據(jù)。鏈接工具經(jīng)過合并輸入文件里的代碼段、數(shù)據(jù)段來完成這一任務(wù)。鏈接完成后,一切輸入文件里的機器言語代碼將出如今輸出文件的代碼段里,一切變量將出如今輸出文件的數(shù)據(jù)段里。103.2.4 定址要使鏈接工具輸出的文件變成可執(zhí)行的程序文件還必需做一件事,那就是為程序的代碼和數(shù)據(jù)指定存儲地址。指定存儲地址這項任務(wù)是需求在定址階段經(jīng)過定址工具來完成的義務(wù)。定址工具的輸入是“可重定位的程序文件,輸出是可執(zhí)行的二進制文件。它們二者之間的轉(zhuǎn)換,由定址工具自動完成,但運用程序的開發(fā)者必需向定址工具提供有關(guān)目的機上的存儲器的信息。定址工具將用這些信息來為“可重定位程序里的每一個代碼段和數(shù)據(jù)

6、段指定物理存儲地址。113.3 嵌入式軟件的下載及其工具程序的下載就是把在宿主機上生成的目的機內(nèi)存映像文件放到目的機的RAM存儲器或者Flash ROM上面去,以便進展調(diào)試和運轉(zhuǎn)。程序下載的方法主要有以下幾種:(1) 運用ROM仿真器(2) 運用在線仿真器ICE(3) 運用片上調(diào)試器ICD(4) 運用目的機上的駐留程序12運用目的機上的駐留程序生成了目的機的內(nèi)存映象文件之后,就可以運用bootloader程序?qū)⑦@個內(nèi)存映像文件下載到目的機上面去。宿主機端軟件和bootloader程序普通是經(jīng)過串口相互銜接。當然也可以經(jīng)過以太網(wǎng)相銜接。在運用串口相銜接時,下載程序的任務(wù)可分為以下幾步進展:(1)

7、 用串口線銜接宿主機和開發(fā)評價板的串口。(2) 在宿主機上啟動bootloader程序。當運用以Windows為操作系統(tǒng)的PC機做宿主機時,通常以超級終端程序做宿主機端軟件。13(3) 在目的機上按復位鍵,重新啟動目的機。目的機被重新啟動后,將自動執(zhí)行駐留在ROM中的bootloader程序。一些開發(fā)評價板可以經(jīng)過跳線選擇系統(tǒng)重新啟動后從不同的地址開場運轉(zhuǎn)。(4) 將宿主機的串口和目的機的串口設(shè)置為一樣的傳輸速率。在設(shè)置時應(yīng)選擇盡能夠高的速率,以節(jié)省程序下載所破費的時間。設(shè)置目的機串口傳輸速率的方法是同過超級終端程序輸入相應(yīng)的命令。(5) 在宿主機上經(jīng)過超級終端程序輸入bootloader程序

8、的命令,將開發(fā)評價板設(shè)置為等待接納下載程序形狀,并指定程序下載的位置。(6) 在宿主機上發(fā)出下載命令。開場進展程序下載。143.4 嵌入式軟件的調(diào)試及其工具直接測試法駐留程序法插樁法ROM仿真器法在線仿真器法片上調(diào)試法模擬器法153.4.1 直接測試法直接測試法是嵌人式系統(tǒng)開展的早期經(jīng)常采用的一種調(diào)試方法。緣由是這種方法需求的調(diào)試工具非常簡單,比較順該當時的實踐情況。采用這種方式進展軟件開發(fā)的根本步驟如下:16(1) 在宿主機上編寫程序的源代碼;(2) 在宿主機上用交叉編譯工具對程序的源代碼進展編譯,生成可執(zhí)行程序;(3) 將可執(zhí)行程序固化到EPROM中;(4) 將EPROM插到目的機的插座上

9、;(5) 在目的機上啟動程序運轉(zhuǎn),假設(shè)程序正確,那么轉(zhuǎn)到第(8)步;(6) 在在宿主機上修正程序的源代碼,糾正錯誤;(7) 轉(zhuǎn)到第(2)步;(8) 程序開發(fā)完成。173.4.2 駐留程序法駐留程序常被稱為bootloader程序。它需求有一個與之配合任務(wù)的宿主機端軟件。宿主機端軟件和bootloader可建立起銜接。對目的機來說宿主機端軟件好比是一個終端。經(jīng)過它可以輸入針對目的機的控制命令。目的機上的運用程序輸出在規(guī)范輸出設(shè)備上的內(nèi)容可以經(jīng)過宿主機端軟件顯示出來。因此,只需在被調(diào)試的程序中將一些重要的信息用printf語句顯示出來就可以協(xié)助程序的調(diào)試。18在利用駐留程序法作為調(diào)試手段時,程序的

10、開發(fā)步驟如下:(1) 在宿主機上編寫程序的源代碼。在編寫源代碼時應(yīng)根據(jù)需求參與假設(shè)干printf語句,目的是經(jīng)過宿主機端軟件顯示某些變量的值,以便協(xié)助進展程序調(diào)試;(2) 在宿主機上編譯程序的源代碼,生成可執(zhí)行程序;(3) 將可執(zhí)行程序的代碼經(jīng)過bootloader程序提供的功能下載到目的機的RAM上;19(4) 經(jīng)過bootloader程序提供的功能啟動被調(diào)試的程序;(5) 假設(shè)程序運轉(zhuǎn)正確,那么去掉程序中不用要的printf語句后轉(zhuǎn)到第(9)步;(6) 借助于用printf語句顯示的信息,發(fā)現(xiàn)程序中的錯誤;(7) 在宿主機上修正程序的源代碼,糾正錯誤;(8) 轉(zhuǎn)到第(2)步;(9) 用bo

11、otloader程序提供的功能將調(diào)試正確的程序固化到目的機上。203.4.3 插樁法21在利用插樁法作為調(diào)試手段時,程序的開發(fā)步驟如下:(1) 在宿主機上編寫程序的源代碼;(2) 在宿主機上編譯程序的源代碼,生成可執(zhí)行程序;(3) 將可執(zhí)行程序的代碼下載到目的機的RAM上;(4) 運用調(diào)試器進展調(diào)試;(5) 假設(shè)程序正確,那么轉(zhuǎn)到第(9)步;(6) 在調(diào)試器的協(xié)助下定位錯誤;(7) 在宿主機上修正程序的源代碼,糾正錯誤;(8) 轉(zhuǎn)到第(2)步;(9) 將可執(zhí)行程序固化到目的機上。223.4.4 ROM仿真器法ROM仿真器可以以為是一種用于替代目的機上ROM芯片的硬件設(shè)備。它本身也是一個嵌入式系

12、統(tǒng)。 23ROM仿真器的銜接方法24ROM仿真器的最主要用途是節(jié)省程序開發(fā)編輯、編譯、下載、調(diào)試過程所需的時間。運用插樁法的情況下,在更新ROM中的程序時,普通的過程是從目的機上取下舊的EPROM(或Flash),將其用紫外線照射擦除后放到EPROM編程器中,寫入新的程序,然后,再插回到目的機上。反復這樣做,EPROM很快就會老化。而運用ROM仿真器時,可將程序用ROM仿真器下載到目的機上運轉(zhuǎn),并根據(jù)程序運轉(zhuǎn)的情況對程序進展修正。253.4.5 在線仿真器法在線仿真器In-Circuit Emulator,ICE是一種用于替代目的機上CPU的設(shè)備。對目的機來說,在線仿真器就相當于它的CPU。在

13、線仿真器本身就是一個嵌入式系統(tǒng),它有本人的CPU、RAM、ROM和軟件。在線仿真器可以執(zhí)行目的機CPU的一切指令,但比普通的CPU有更多的引出線,可以將內(nèi)部的信號輸出到被控制的目的機上。在線仿真器上的存儲器也可以被映射到用戶的程序空間上。因此即使沒有目的機,僅用在線仿真器也可以進展程序的調(diào)試。26在線仿真器的銜接方法273.4.6 片上調(diào)試法片上調(diào)試In Circuit Debugger ICD是CPU芯片內(nèi)部的一種用于支持調(diào)試功能模塊??砂阉醋鍪且环N廉價的在線仿真器。28按照實現(xiàn)技術(shù),片上調(diào)試可分為以下幾類:仿調(diào)試監(jiān)控器: Motorola的CPU16、CPU32和ColdFire系列。后

14、臺調(diào)試方式Backgroud Debugging Mode,BDM: Motorola的MPC 5XX和MPC 8XX系列。銜接測試存取組Joint Test Access Group,JTAG: PPC6XX、PPC4XX、ARM7、ARM9、Intel 1960。片上仿真On Chip Emulation,OnCE: Motorola的DSP芯片系列。29目前運用比較多的是采用后臺調(diào)試方式的CPU芯片。這種芯片的外面有一些與調(diào)試控制有關(guān)的管腳。這些管腳在需求的時候可被引出,構(gòu)成一個用于與外部相連的調(diào)試端口。這種CPU具有調(diào)試方式和普通方式兩種不同的運轉(zhuǎn)方式。當滿足了特定的觸發(fā)條件時CPU就

15、可進入調(diào)試方式。在調(diào)試方式下,CPU不再從內(nèi)存中讀取指令,而是經(jīng)過它的調(diào)試端口讀取指令。經(jīng)過調(diào)試端口還可以控制CPU進入和退出調(diào)試方式,這樣在宿主機的調(diào)試器上就可以經(jīng)過調(diào)試端口直接向目的機發(fā)送要執(zhí)行的指令,使調(diào)試器讀寫目的機的內(nèi)存和各種存放器,控制目的程序的運轉(zhuǎn)以及完成各種復雜的調(diào)試功能。303.4.7 模擬器法模擬器是一個運轉(zhuǎn)于宿主機上的純軟件工具。它經(jīng)過模擬目的機的指令系統(tǒng)或目的機操作系統(tǒng)的系統(tǒng)調(diào)用來到達在宿主機上運轉(zhuǎn)和調(diào)試嵌入式程序的目的。模擬器適宜于用來調(diào)試“高級的運用程序,比如說一個“通訊簿程序。這種程序與外部設(shè)備打交道不多,實時性不強,拿到哪一個計算機上去執(zhí)行都一樣。因此,開發(fā)者可

16、以直接在宿主機上驗證程序的邏輯。當確認無誤之后,將寫好的程序移到目的機上面去普通就可以正確地執(zhí)行。31模擬器有兩種主要的類型:一類是在宿主機上模擬目的機指令系統(tǒng)的模擬器,我們稱其為指令級的模擬器。另一類是模擬目的機操作系統(tǒng)的系統(tǒng)調(diào)用的模擬器,我們稱其為系統(tǒng)調(diào)用級的模擬器。指令級的模擬器相當于在宿主機上建立了一臺虛擬的目的機,該虛擬目的機的CPU的種類可以與宿主機不同。例如,宿主機的CPU是Intel Pentium,而虛擬機是ARM、PowerPC或MIPS等。指令級的模擬器除了能模擬目的機的指令系統(tǒng)之外,視模擬器功能的強弱,還可以模擬目的機的外部設(shè)備、中斷和定時器。系統(tǒng)調(diào)用級的模擬器相當于在

17、宿主機上安裝了目的機的操作系統(tǒng),使得基于目的機的操作系統(tǒng)的運用程序可以在宿主機上運轉(zhuǎn)。被模擬的目的機的操作系統(tǒng)的類型可以與宿主機不同。例如,宿主機的操作系統(tǒng)是Windows 2000,而目的機的操作系統(tǒng)是Hopen。兩種類型的模擬器相比,指令級模擬器所提供的運轉(zhuǎn)環(huán)境與實踐的目的機更接近。而系統(tǒng)調(diào)用級的模擬器本身比較容易開發(fā),也容易移植。32我們曾經(jīng)把直接測試法、駐留程序法、插樁法、ROM仿真器法、在線仿真器法、片上調(diào)試法、模擬器法等幾種嵌入式軟件的調(diào)試方法都簡單地引見了一遍。從嵌入式軟件的開發(fā)實際來看,各種調(diào)試方法都有一定的適用范圍。沒有哪一種調(diào)試方法可以絕對地說是最好的調(diào)試方法。即使是直接測

18、試法在有的時候也是最有效的方法。因此,在嵌入式軟件開發(fā)的不同階段運用最適宜的調(diào)試方式,不但可以節(jié)約開發(fā)費用,同時還能大大地加快工程開發(fā)的進度。333.5 幾種典型的嵌入式軟件開發(fā)環(huán)境嵌入式軟件開發(fā)環(huán)境的種類很多。我們可以把它們分為3類:第一類是與某一種嵌入式操作系統(tǒng)配套的開發(fā)環(huán)境。屬于這一類的開發(fā)環(huán)境最多。DeltaOS、Hopen、PalmOS、pSOS、THOS、VxWorks、Windows CE等嵌入式操作系統(tǒng)就都有與其相配套的軟件開發(fā)環(huán)境。第二類是與某個芯片系列配套的開發(fā)環(huán)境。如與愛普生的32位單片機S1C33相配套的開發(fā)環(huán)境C33、與ARM芯片相配套的UP-NetARM200等。3

19、4第三類是與某種運用平臺配套的開發(fā)環(huán)境。如高通公司的Brew SDK。這里所說的運用平臺是一種與操作系統(tǒng)相獨立,專門針對某種運用領(lǐng)域的軟件系統(tǒng)。Brew就是一個專門針對手機的運用平臺。353.5.1 VxWorks的集成開發(fā)環(huán)境TornadoTornado是WindRiver公司推出的一個集成軟件開發(fā)環(huán)境。它由三個部分所組成:運轉(zhuǎn)在宿主機和目的機上的交叉開發(fā)工具和適用程序;運轉(zhuǎn)在目的機上的實時操作系統(tǒng)VxWorks;銜接宿主機和目的機的各種通訊介質(zhì)。例如,以太網(wǎng)、串口、在線仿真器ICE或ROM仿真器等。36Tornado提供的交叉開發(fā)工具和適用程序主要有:源代碼編輯工具圖形化的交叉調(diào)試工具工程

20、配置工具集成仿真工具診斷分析工具C/C+編譯工具宿主機目的機銜接配置工具目的機系統(tǒng)形狀閱讀工具命令行執(zhí)行工具多言語閱讀工具圖形化中心配置工具37Tornado環(huán)境中宿主機與目的機間的關(guān)系381. 圖形化的交叉調(diào)試工具CrossWind/WDBCrossWind/WDB支持義務(wù)級和系統(tǒng)級兩種調(diào)試方式、混合源代碼和匯編代碼顯示、多目的機同時調(diào)試。它具有良好的圖形用戶界面。經(jīng)過CrossWind/WDB開發(fā)者可以在察看窗口中成組地察看表達式的值,在調(diào)試窗口中改動變量、存放器和部分變量的值,經(jīng)過信息規(guī)整和分類的方法有效地提供信息。CrossWind/WDB還提供了GNU/GDB調(diào)試器引擎。GNU/GD

21、B調(diào)試器引擎采用命令行方式。對于熟習它的用戶,運用起來有很強的靈敏性。392. 工程配置工具Project經(jīng)過Project可以對VxWorks操作系統(tǒng)及其組件進展自動配置,進展依賴性分析和代碼容量計算,自動生成Makefile文件。它簡化了VxWorks運用程序的組織、配置和建立任務(wù),使工程管理和VxWorks配置的許多方面實現(xiàn)了自動化。這種集成的圖形化工程管理環(huán)境加強了開發(fā)小組的專業(yè)化程度,使單獨的組件可以各自獨立開發(fā),然后由小組的其他成員共享和重用。403. 集成仿真工具VxSimVxSim能提供與真實目的機完全一致的調(diào)試和仿真運轉(zhuǎn)環(huán)境。經(jīng)過VxSim,開發(fā)者可以在沒有板級支持包、目的機

22、操作系統(tǒng)、目的機硬件的情況下,運用Tornado進展開發(fā)任務(wù)。414. 診斷分析工具WindViewWindView是一個圖形化的工具。它的功能主要是向開發(fā)者提供在目的機上運轉(zhuǎn)的運用程序的許多的詳細情況。這種系統(tǒng)級的診斷分析工具可以與集成仿真器一同運用。嵌入式系統(tǒng)開發(fā)者經(jīng)常由于無法知道程序執(zhí)行時系統(tǒng)內(nèi)部的情況和軟件的一些隨時間變化的特性而感到苦惱。WindView提供了運轉(zhuǎn)在集成仿真器上的VxWorks運用程序的詳細的動態(tài)行為,用圖形化的方法顯示出了義務(wù)、中斷和系統(tǒng)對象之間的復雜關(guān)系,為軟件開發(fā)者處理了許多費事的問題。425. C/C+編譯工具Tornado提供以下一些支持C言語和C+言語的工

23、具和類庫:Diab C/C+編譯器、GNU C/C+編譯器、iostreams類庫。436. 宿主機目的機銜接配置工具Launcher從開發(fā)者的角度看Launcher位于Tornado環(huán)境的最上層。經(jīng)過它開發(fā)者可對開發(fā)環(huán)境進展設(shè)置。447. 目的機系統(tǒng)形狀閱讀工具BrowserBrowser是一個圖形化工具。它能隨時提供目的系統(tǒng)的全面形狀信息。開發(fā)者也可以經(jīng)過它監(jiān)視義務(wù)、信號量、音訊隊列、內(nèi)存分區(qū)、定時器、模塊、變量、堆棧等系統(tǒng)對象。這些對象的信息將根據(jù)開發(fā)者的選擇進展周期性或條件性的更新。458. 命令行執(zhí)行工具WindShWindSh是一個命令行解釋器。它可以直接解釋執(zhí)行C言語達式、調(diào)用目

24、的機上的C函數(shù)、訪問已在系統(tǒng)符號表中定義的變量。WindSh不僅可以解釋幾乎一切的C言語表達式,而且還可以經(jīng)過它執(zhí)行Tornado中一切的調(diào)試功能。例如,下載軟件模塊、刪除軟件模塊、創(chuàng)建并啟動一個義務(wù)、刪除義務(wù)、設(shè)置斷點、刪除斷點、運轉(zhuǎn)程序、單步運轉(zhuǎn)程序、繼續(xù)運轉(zhuǎn)程序、查看內(nèi)存、查看存放器、查看變量、修正內(nèi)存、修正存放器、修正變量、查看義務(wù)列表、查看內(nèi)存運用情況、查看CPU利用率、查看特定的對象義務(wù)、信號量、音訊隊列、內(nèi)存分區(qū)、類、復位目的機等。469. 多言語閱讀工具WindNavigator經(jīng)過WindNavigator可閱讀源程序代碼,用圖形化的方式顯示函數(shù)調(diào)用關(guān)系。這樣就可快速地進展代

25、碼定位。4710. 圖形化中心配置工具WindConfig經(jīng)過WindCgnfig所提供的圖形導游,Tornado的用戶可以方便地配置VxWorks內(nèi)核及其組件的參數(shù)。483.5.2 Brew SDK49Brew SDK是一個用于開發(fā)基于Brew的運用程序的開發(fā)環(huán)境。運用這個開發(fā)環(huán)境可在PC機上需求Windows NT或Windows 2000操作系統(tǒng)的支持為無線設(shè)備編寫和調(diào)試運用程序。待程序開發(fā)終了后,再下載到無線設(shè)備上去。Brew SDK由以下工具和程序所組成:模擬器設(shè)備配置器資源編輯器模塊信息文件編輯器庫函數(shù)Brew頭文件例如運用程序501. Brew模擬器Brew模擬器用于模擬運轉(zhuǎn)和調(diào)

26、試Brew的運用程序。它能提供與被模擬的手機同樣的用戶界面,好似運用程序真正是在實踐的手機上運轉(zhuǎn)一樣。Brew SDK提供了一些類型的手機的模擬方案,用戶也可以運用Brew的設(shè)備配置器建立其它手機的模擬方案。 512. Brew設(shè)備配置器Brew設(shè)備配置器用于生成新的設(shè)備配置文件或編輯現(xiàn)有的設(shè)備配置文件??梢越?jīng)過設(shè)備配置文件進展設(shè)置的內(nèi)容有鍵盤鍵及其功能、屏幕的尺寸和分辨率、內(nèi)存的大小等。523. Brew資源編輯器Brew資源編輯器用于建立運用程序的資源,如字符串、圖像和對話框等。保管字符串、圖像和對話框等資源的文件的后綴為.bar。資源編輯器在產(chǎn)生資源內(nèi)容的同時,還產(chǎn)生定義資源標識號的.h

27、文件。編譯工具在生成運用程序的.dll文件時需求用到這個.h文件。534. Brew模塊信息文件MIF編輯器Brew模塊信息文件MIF編輯器用來產(chǎn)生模塊信息文件。模塊信息文件包含以下幾方面的內(nèi)容,模塊中運用程序和類的數(shù)量、每個運用程序和類的標識號、運用程序的稱號、運用程序的圖標等。留意,在Brew中,一個模塊文件內(nèi)可以有多個運用程序的信息。模擬器在裝入一個模塊文件時要用到它的模塊信息文件。54用Brew SDK開發(fā)運用程序的過程可分為以下5個步驟:(1) 運用模塊信息文件編輯器建立模塊信息文件.mif文件。(2) 運用Visual C+建立一個新工程,以便建立運用程序模塊文件.dll文件。(3

28、) 將運用程序的源碼參與到第2步所建立的新工程當中去。(4) 建立運用程序的模塊文件。(5) 啟動模擬器調(diào)試運用程序模塊文件。假設(shè)有必要,在啟動模擬器調(diào)試運用程序之前還應(yīng)該用資源編輯器建立運用程序要用到的資源文件.bar文件,用設(shè)備配置器建立起要模擬的設(shè)備的設(shè)備配置文件.qsc文件。55用Brew SDK開發(fā)運用程序的過程563.5.3 C33編程工具包C33是EPSON公司推出的一個專門為基于S1C33系列微控制器芯片的嵌入式系統(tǒng)開發(fā)運用程序的軟件工具包。這個工具包里面包括多種工具。C33提供的軟件工具有:(1) gcc33:C言語編譯器;(2) pp33:預(yù)處置器,用于處置宏命令;(3)

29、ext33:指令擴展器,用于處置S1C33系列的擴展指令;(4) as33:匯編程序;(5) lk33:鏈接器,用于建立可執(zhí)行目的程序;57(6) dis33:反匯編程序;(7) db33:調(diào)試器,可經(jīng)過控制硬件工具或調(diào)試監(jiān)控器進展調(diào)試,也可運用模擬程序在宿主機上進展調(diào)試;(8) hex33:二進制/十六進制轉(zhuǎn)換工具;(9) lib33:庫生成工具;(10) wb33:集成開發(fā)平臺,包含了上述一切的工具;(11) MON33:調(diào)試監(jiān)控器。調(diào)試監(jiān)控器運轉(zhuǎn)在目的機上,并與宿主機上的調(diào)試器相互通訊,到達監(jiān)控被調(diào)試的運用程序的目的。58C33提供的硬件工具有:(1) ICE33:在線仿真器;(2) I

30、CD33:片上調(diào)試器;(3) EPOD33:針對不同芯片的仿真器;(4) MEM33:存儲仿真器,可仿真ROM、F1ash和RAM。59用C33開發(fā)嵌入式軟件的過程包括以下6個主要步驟:(1) 建立源程序:建立源程序可以運用普通的編輯器。(2) 建立make文件:在C33的集成開發(fā)平臺wb33中可方便地建立make文件。經(jīng)過make文件,預(yù)處置、編譯、鏈接等步驟可自動完成。(3) 執(zhí)行make文件:執(zhí)行上一步驟生成的make文件生成后綴為.sr的目的文件。(4) 調(diào)試目的文件:運用調(diào)試器db33調(diào)試上一步生成的目的文件。在調(diào)試目的文件時有3種不同的方式:運用ICE33,運用ICD33,運用調(diào)試

31、監(jiān)控器MON33。60(5) 反匯編:為驗證源程序代碼與絕對地址之間的一致性,可利用反匯編工具dis33對一個鏈接好的目的文件進展反匯編。反匯編程序的輸出是后綴為.di的列表文件。(6) 創(chuàng)建ROM數(shù)據(jù)或掩碼數(shù)據(jù):利用二進制/十六進制轉(zhuǎn)換工具hex33,將前面生成的目的文件轉(zhuǎn)換為目的ROM數(shù)據(jù)或/和掩碼數(shù)據(jù),以便將其固化到基于S1C33芯片的目的機中去。61用C33編程工具包開發(fā)運用程序的過程623.5.4 Hopen的運用軟件開發(fā)環(huán)境Hopen是凱思公司研制的一個嵌入式軟件系統(tǒng)。它由操作系統(tǒng)、軟件開發(fā)環(huán)境、窗口系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、Java虛擬機等多個部分所組成。Hopen系統(tǒng)的運

32、用軟件開發(fā)環(huán)境又稱為Hopen SDK。633.5.4.1 Hopen SDK的組成64Hopen系統(tǒng)提供的調(diào)試工具分別是:仿真調(diào)試工具指令級仿真調(diào)試工具基于監(jiān)控器的調(diào)試工具仿真調(diào)試工具實踐上就是我們前面所說的系統(tǒng)調(diào)用級的模擬器。由于一個不太規(guī)范的習慣,它被稱為了如今的名字。在3個工具中它運用的最多。指令級仿真調(diào)試工具是一個指令級的模擬器。它的性能雖然強于仿真調(diào)試工具,但只能用來調(diào)試MC68328上的運用程序?;诒O(jiān)控器的調(diào)試工具是一個用插樁法來調(diào)試嵌入式運用程序的工具。運用它能察看運用程序在目的機上的運轉(zhuǎn)效果,但其問題同指令級仿真調(diào)試工具一樣,也只能支持少數(shù)幾種CPU,包括Motorola

33、MC68328、Winbond 90210/90221和x86系列的芯片。653.5.4.2 用Hopen SDK開發(fā)運用軟件的過程在運用Hopen系統(tǒng)的系統(tǒng)調(diào)用級模擬器作為調(diào)試工具時,運用軟件的開發(fā)過程應(yīng)分為工程方案、可行性分析、需求分析、概要設(shè)計、詳細設(shè)計、程序建立、程序調(diào)試、重新編譯、程序下載與固化、程序測試、程序運轉(zhuǎn)等11個階段。前5個階段與通常的開發(fā)過程相比沒有什么變化。不同之處主要表達在程序建立、程序調(diào)試、重新編譯、程序下載與固化、程序測試、程序運轉(zhuǎn)等幾個階段。661. 程序建立階段在Hopen系統(tǒng)中可用C和Java兩種言語中的任何一種來編寫運用程序。但在多數(shù)情況下是運用C言語。在

34、此處我們引見的開發(fā)過程也是針對C言語的。67為了協(xié)助軟件開發(fā)人員編寫運用程序,Hopen系統(tǒng)提供了一整套C言語的API函數(shù),包括操作系統(tǒng)API、窗口系統(tǒng)API、文件系統(tǒng)API、網(wǎng)絡(luò)系統(tǒng)API等。此外Hopen系統(tǒng)還提供了一個C言語庫。程序建立階段的任務(wù)就是利用這些API函數(shù)和庫函數(shù)根據(jù)運用的需求編寫出運用程序,并編譯成可執(zhí)行的目的碼。在編寫和編譯運用程序的時是用Visual C+5.0或6.0做為開發(fā)工具。不過在運用時有幾點要特別留意,第一是在編寫運用程序的時候應(yīng)遵照規(guī)范的C言語規(guī)范;第二是除了Hopen系統(tǒng)提供的API函數(shù)和庫函數(shù)之外不要調(diào)用其它的函數(shù),比如Visual C+的函數(shù);第三是工

35、程的類型該當是Hopen AppWizard。682. 程序調(diào)試階段和重新編譯階段由于在調(diào)試運用軟件之前,不需求將其下載到目的機之上,所以運用軟件被編譯為宿主機的目的指令后,馬上就可以用Hopen系統(tǒng)的仿真調(diào)試工具對其進展調(diào)試。當運用程序經(jīng)過反復調(diào)試,確認沒有錯誤之后,就可以將其下載并固化到目的機上面去。但要留意,在下載之前還必需將運用程序重新編譯成與目的機的CPU相一致的目的碼,并對目的碼進展重定位。進展這種編譯與重定位普通是運用GNU的C/C+編譯器gcc或者是某種與目的機相配套的編譯器。693. 程序下載與固化階段由于運用軟件在調(diào)試之前不需求下載到目的機之上,所以程序下載和程序固化兩個階

36、段已無再劃分的必要,可以一致為一個程序下載與固化階段。這個階段的任務(wù)與目的機有親密的關(guān)系。這里我們所說的目的機指專門為開發(fā)任務(wù)設(shè)計的開發(fā)評價板,而不是最終用戶所運用的普通硬件設(shè)備。這種開發(fā)評價板都提供一定的開發(fā)功能在軟件的支持下。利用這些功能,開發(fā)者可以比較方便地把運用程序下載和固化到它上面來。下載和固化的方法對于各種開發(fā)評價板是不太一樣的,必需詳細地參考它們各自的運用手冊。704. 程序測試階段運用程序下載到目的機上面之后,就可以按照一定的測試方案測試它的各種功能。由于在測試階段Hopen系統(tǒng)沒有提供對應(yīng)的支撐工具,所以只能仔細地逐一確認程序的每一個功能能否正確。但由于這時運轉(zhuǎn)的運用程序曾經(jīng)

37、在仿真調(diào)試工具中調(diào)試經(jīng)過,所以通常不會出現(xiàn)錯誤。假設(shè)有錯誤,普通都與目的機的硬件環(huán)境有關(guān),比如輸入輸出設(shè)備,中斷地址等。這些錯誤普通要借助目的機所提供的功能來排除。715. 程序運轉(zhuǎn)階段當運用程序在目的機上測試經(jīng)過之后,整個開發(fā)過程就告終了。剩下的事情就是把運用程序放到普通的硬件設(shè)備上去,宣告進入運用程序的最終運轉(zhuǎn)階段。723.5.4.3 用Visual C+編譯運用軟件的方法當預(yù)備用一臺PC機充任宿主機,運用它開發(fā)Hopen系統(tǒng)的運用軟件之前,必需首先在這臺PC上安裝Visual C+和Hopen SDK。留意安裝這兩個系統(tǒng)的次序不能顛倒,必需是先安裝Visual C+,后安裝Hopen S

38、DK。由于在安裝Hopen SDK時需求為Visual C+添加兩個新的工程類型。這兩個工程類型分別是Hopen AppWizard和Hopen DllWizard。 73安裝運用軟件開發(fā)環(huán)境后Visual C+新添加的工程類型新添加的工程類型 74在安裝了Visual C+和Hopen系統(tǒng)的運用軟件開發(fā)環(huán)境之后,可用Visual C+按照下面的步驟建立和編譯運用軟件:(1) 啟動Visual C+。(2) 在指定的目錄中建立一個類型為Hopen AppWizard的工程。(3) 在工程所給出的程序模板中添加程序代碼,建立運用軟件的源程序。(4) 編譯運用軟件的源程序。假設(shè)編譯經(jīng)過,Hopen AppWizard類型的工程將把運用軟件編譯為一個.dll文件。在缺省情況下這個.dll文件被保管在開發(fā)環(huán)境的安裝目錄的app子目錄中。753.5.4.4 用仿真調(diào)試工具調(diào)試運用軟件的方法Hopen系統(tǒng)的仿真調(diào)試工具是一個在 Windows操作系統(tǒng)下運轉(zhuǎn)的軟件。它對硬件環(huán)境的要求不高,在486上有32M內(nèi)存就可以正常地運轉(zhuǎn)。76仿真調(diào)試工具的主窗口仿真調(diào)試工具共有“文件、“編輯、“視圖、“系統(tǒng)、“調(diào)試、“工具和“協(xié)助七個菜單。77Hopen系統(tǒng)的運用軟件仿真調(diào)試工具向運用程序的開發(fā)者提供了一個與實踐的目的機根本等價的軟件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論