




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rè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ā)運(yùn)用程序的過程與為PC機(jī)開發(fā)運(yùn)用軟件過程有一定的不同,出現(xiàn)了一些在PC機(jī)上不曾有的任務(wù)階段。在同樣的一個(gè)階段,詳細(xì)的任務(wù)也有很多的不同。2交叉開發(fā)方式運(yùn)用程序的編輯、編譯、鏈接等過程都在宿主機(jī)上完成,而運(yùn)用程序要在和宿主機(jī)有很大差別的目的機(jī)上實(shí)踐運(yùn)轉(zhuǎn)。運(yùn)用程序的調(diào)試主要是在宿主機(jī)上進(jìn)展,但在很多情況下要借助于目機(jī)。3嵌入式軟件的開發(fā)過程43.2 嵌入式軟件的
2、建立及其工具嵌入式軟件的建立步驟:源代碼編寫編譯鏈接定址5嵌入式軟件的建立步驟63.2.1 源代碼編寫源代碼編寫階段的任務(wù)義務(wù)是運(yùn)用適當(dāng)?shù)某绦蛟O(shè)計(jì)言語編寫程序的源代碼。比如說用C言語、C+言語、匯編言語等。就目前的情況來看,運(yùn)用最多的是C言語。這其中的緣由能夠有以下三個(gè):其一,受通用計(jì)算機(jī)的影響,C言語的運(yùn)用非常廣泛,幾乎每一種處置器都支持C言語的編譯器,而且有相當(dāng)多的程序員具有用C言語進(jìn)展程序開發(fā)的豐富閱歷。其二,在嵌入式系統(tǒng)領(lǐng)域中,C言語是一種最具一致規(guī)范的程序設(shè)計(jì)言語。其三,C言語是一個(gè)非?!暗图?jí)的言語。它賦于程序員很多直接控制計(jì)算機(jī)硬件的才干,但又不失去高級(jí)言語所固有的益處。它的這種特
3、點(diǎn)對(duì)嵌入式系統(tǒng)更為重要。73.2.2 編譯編譯階段要做的任務(wù)是用交叉編譯或匯編工具處置程序的源代碼,產(chǎn)生目的文件。當(dāng)宿主機(jī)和目的機(jī)采用同樣類型的處置器時(shí),沒有“交叉的問題,是這一階段的一個(gè)特例。這時(shí)編譯任務(wù)往往簡單些。8宿主機(jī)目標(biāo)機(jī)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+編譯器支持的宿主機(jī)/目的機(jī)組合93.2.3 鏈接交叉編譯器所產(chǎn)生的目的文件是不完好的,它里面能夠還有未定義的內(nèi)部變量和函數(shù)援用。鏈接階段的任務(wù)就是用鏈接工具把這些目的文件組合到一同,使一切未定義的變量和函數(shù)在程序庫或其它目的文件中找到它的定義。鏈接階段得到的結(jié)果是一個(gè)“可重定位的程序文件。其中包含
5、了來自輸入文件的一切代碼和數(shù)據(jù)。鏈接工具經(jīng)過合并輸入文件里的代碼段、數(shù)據(jù)段來完成這一任務(wù)。鏈接完成后,一切輸入文件里的機(jī)器言語代碼將出如今輸出文件的代碼段里,一切變量將出如今輸出文件的數(shù)據(jù)段里。103.2.4 定址要使鏈接工具輸出的文件變成可執(zhí)行的程序文件還必需做一件事,那就是為程序的代碼和數(shù)據(jù)指定存儲(chǔ)地址。指定存儲(chǔ)地址這項(xiàng)任務(wù)是需求在定址階段經(jīng)過定址工具來完成的義務(wù)。定址工具的輸入是“可重定位的程序文件,輸出是可執(zhí)行的二進(jìn)制文件。它們二者之間的轉(zhuǎn)換,由定址工具自動(dòng)完成,但運(yùn)用程序的開發(fā)者必需向定址工具提供有關(guān)目的機(jī)上的存儲(chǔ)器的信息。定址工具將用這些信息來為“可重定位程序里的每一個(gè)代碼段和數(shù)據(jù)
6、段指定物理存儲(chǔ)地址。113.3 嵌入式軟件的下載及其工具程序的下載就是把在宿主機(jī)上生成的目的機(jī)內(nèi)存映像文件放到目的機(jī)的RAM存儲(chǔ)器或者Flash ROM上面去,以便進(jìn)展調(diào)試和運(yùn)轉(zhuǎn)。程序下載的方法主要有以下幾種:(1) 運(yùn)用ROM仿真器(2) 運(yùn)用在線仿真器ICE(3) 運(yùn)用片上調(diào)試器ICD(4) 運(yùn)用目的機(jī)上的駐留程序12運(yùn)用目的機(jī)上的駐留程序生成了目的機(jī)的內(nèi)存映象文件之后,就可以運(yùn)用bootloader程序?qū)⑦@個(gè)內(nèi)存映像文件下載到目的機(jī)上面去。宿主機(jī)端軟件和bootloader程序普通是經(jīng)過串口相互銜接。當(dāng)然也可以經(jīng)過以太網(wǎng)相銜接。在運(yùn)用串口相銜接時(shí),下載程序的任務(wù)可分為以下幾步進(jìn)展:(1)
7、 用串口線銜接宿主機(jī)和開發(fā)評(píng)價(jià)板的串口。(2) 在宿主機(jī)上啟動(dòng)bootloader程序。當(dāng)運(yùn)用以Windows為操作系統(tǒng)的PC機(jī)做宿主機(jī)時(shí),通常以超級(jí)終端程序做宿主機(jī)端軟件。13(3) 在目的機(jī)上按復(fù)位鍵,重新啟動(dòng)目的機(jī)。目的機(jī)被重新啟動(dòng)后,將自動(dòng)執(zhí)行駐留在ROM中的bootloader程序。一些開發(fā)評(píng)價(jià)板可以經(jīng)過跳線選擇系統(tǒng)重新啟動(dòng)后從不同的地址開場運(yùn)轉(zhuǎn)。(4) 將宿主機(jī)的串口和目的機(jī)的串口設(shè)置為一樣的傳輸速率。在設(shè)置時(shí)應(yīng)選擇盡能夠高的速率,以節(jié)省程序下載所破費(fèi)的時(shí)間。設(shè)置目的機(jī)串口傳輸速率的方法是同過超級(jí)終端程序輸入相應(yīng)的命令。(5) 在宿主機(jī)上經(jīng)過超級(jí)終端程序輸入bootloader程序
8、的命令,將開發(fā)評(píng)價(jià)板設(shè)置為等待接納下載程序形狀,并指定程序下載的位置。(6) 在宿主機(jī)上發(fā)出下載命令。開場進(jìn)展程序下載。143.4 嵌入式軟件的調(diào)試及其工具直接測試法駐留程序法插樁法ROM仿真器法在線仿真器法片上調(diào)試法模擬器法153.4.1 直接測試法直接測試法是嵌人式系統(tǒng)開展的早期經(jīng)常采用的一種調(diào)試方法。緣由是這種方法需求的調(diào)試工具非常簡單,比較順該當(dāng)時(shí)的實(shí)踐情況。采用這種方式進(jìn)展軟件開發(fā)的根本步驟如下:16(1) 在宿主機(jī)上編寫程序的源代碼;(2) 在宿主機(jī)上用交叉編譯工具對(duì)程序的源代碼進(jìn)展編譯,生成可執(zhí)行程序;(3) 將可執(zhí)行程序固化到EPROM中;(4) 將EPROM插到目的機(jī)的插座上
9、;(5) 在目的機(jī)上啟動(dòng)程序運(yùn)轉(zhuǎn),假設(shè)程序正確,那么轉(zhuǎn)到第(8)步;(6) 在在宿主機(jī)上修正程序的源代碼,糾正錯(cuò)誤;(7) 轉(zhuǎn)到第(2)步;(8) 程序開發(fā)完成。173.4.2 駐留程序法駐留程序常被稱為bootloader程序。它需求有一個(gè)與之配合任務(wù)的宿主機(jī)端軟件。宿主機(jī)端軟件和bootloader可建立起銜接。對(duì)目的機(jī)來說宿主機(jī)端軟件好比是一個(gè)終端。經(jīng)過它可以輸入針對(duì)目的機(jī)的控制命令。目的機(jī)上的運(yùn)用程序輸出在規(guī)范輸出設(shè)備上的內(nèi)容可以經(jīng)過宿主機(jī)端軟件顯示出來。因此,只需在被調(diào)試的程序中將一些重要的信息用printf語句顯示出來就可以協(xié)助程序的調(diào)試。18在利用駐留程序法作為調(diào)試手段時(shí),程序的
10、開發(fā)步驟如下:(1) 在宿主機(jī)上編寫程序的源代碼。在編寫源代碼時(shí)應(yīng)根據(jù)需求參與假設(shè)干printf語句,目的是經(jīng)過宿主機(jī)端軟件顯示某些變量的值,以便協(xié)助進(jìn)展程序調(diào)試;(2) 在宿主機(jī)上編譯程序的源代碼,生成可執(zhí)行程序;(3) 將可執(zhí)行程序的代碼經(jīng)過bootloader程序提供的功能下載到目的機(jī)的RAM上;19(4) 經(jīng)過bootloader程序提供的功能啟動(dòng)被調(diào)試的程序;(5) 假設(shè)程序運(yùn)轉(zhuǎn)正確,那么去掉程序中不用要的printf語句后轉(zhuǎn)到第(9)步;(6) 借助于用printf語句顯示的信息,發(fā)現(xiàn)程序中的錯(cuò)誤;(7) 在宿主機(jī)上修正程序的源代碼,糾正錯(cuò)誤;(8) 轉(zhuǎn)到第(2)步;(9) 用bo
11、otloader程序提供的功能將調(diào)試正確的程序固化到目的機(jī)上。203.4.3 插樁法21在利用插樁法作為調(diào)試手段時(shí),程序的開發(fā)步驟如下:(1) 在宿主機(jī)上編寫程序的源代碼;(2) 在宿主機(jī)上編譯程序的源代碼,生成可執(zhí)行程序;(3) 將可執(zhí)行程序的代碼下載到目的機(jī)的RAM上;(4) 運(yùn)用調(diào)試器進(jìn)展調(diào)試;(5) 假設(shè)程序正確,那么轉(zhuǎn)到第(9)步;(6) 在調(diào)試器的協(xié)助下定位錯(cuò)誤;(7) 在宿主機(jī)上修正程序的源代碼,糾正錯(cuò)誤;(8) 轉(zhuǎn)到第(2)步;(9) 將可執(zhí)行程序固化到目的機(jī)上。223.4.4 ROM仿真器法ROM仿真器可以以為是一種用于替代目的機(jī)上ROM芯片的硬件設(shè)備。它本身也是一個(gè)嵌入式系
12、統(tǒng)。 23ROM仿真器的銜接方法24ROM仿真器的最主要用途是節(jié)省程序開發(fā)編輯、編譯、下載、調(diào)試過程所需的時(shí)間。運(yùn)用插樁法的情況下,在更新ROM中的程序時(shí),普通的過程是從目的機(jī)上取下舊的EPROM(或Flash),將其用紫外線照射擦除后放到EPROM編程器中,寫入新的程序,然后,再插回到目的機(jī)上。反復(fù)這樣做,EPROM很快就會(huì)老化。而運(yùn)用ROM仿真器時(shí),可將程序用ROM仿真器下載到目的機(jī)上運(yùn)轉(zhuǎn),并根據(jù)程序運(yùn)轉(zhuǎn)的情況對(duì)程序進(jìn)展修正。253.4.5 在線仿真器法在線仿真器In-Circuit Emulator,ICE是一種用于替代目的機(jī)上CPU的設(shè)備。對(duì)目的機(jī)來說,在線仿真器就相當(dāng)于它的CPU。在
13、線仿真器本身就是一個(gè)嵌入式系統(tǒng),它有本人的CPU、RAM、ROM和軟件。在線仿真器可以執(zhí)行目的機(jī)CPU的一切指令,但比普通的CPU有更多的引出線,可以將內(nèi)部的信號(hào)輸出到被控制的目的機(jī)上。在線仿真器上的存儲(chǔ)器也可以被映射到用戶的程序空間上。因此即使沒有目的機(jī),僅用在線仿真器也可以進(jìn)展程序的調(diào)試。26在線仿真器的銜接方法273.4.6 片上調(diào)試法片上調(diào)試In Circuit Debugger ICD是CPU芯片內(nèi)部的一種用于支持調(diào)試功能模塊??砂阉醋鍪且环N廉價(jià)的在線仿真器。28按照實(shí)現(xiàn)技術(shù),片上調(diào)試可分為以下幾類:仿調(diào)試監(jiān)控器: Motorola的CPU16、CPU32和ColdFire系列。后
14、臺(tái)調(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目前運(yùn)用比較多的是采用后臺(tái)調(diào)試方式的CPU芯片。這種芯片的外面有一些與調(diào)試控制有關(guān)的管腳。這些管腳在需求的時(shí)候可被引出,構(gòu)成一個(gè)用于與外部相連的調(diào)試端口。這種CPU具有調(diào)試方式和普通方式兩種不同的運(yùn)轉(zhuǎn)方式。當(dāng)滿足了特定的觸發(fā)條件時(shí)CPU就
15、可進(jìn)入調(diào)試方式。在調(diào)試方式下,CPU不再從內(nèi)存中讀取指令,而是經(jīng)過它的調(diào)試端口讀取指令。經(jīng)過調(diào)試端口還可以控制CPU進(jìn)入和退出調(diào)試方式,這樣在宿主機(jī)的調(diào)試器上就可以經(jīng)過調(diào)試端口直接向目的機(jī)發(fā)送要執(zhí)行的指令,使調(diào)試器讀寫目的機(jī)的內(nèi)存和各種存放器,控制目的程序的運(yùn)轉(zhuǎn)以及完成各種復(fù)雜的調(diào)試功能。303.4.7 模擬器法模擬器是一個(gè)運(yùn)轉(zhuǎn)于宿主機(jī)上的純軟件工具。它經(jīng)過模擬目的機(jī)的指令系統(tǒng)或目的機(jī)操作系統(tǒng)的系統(tǒng)調(diào)用來到達(dá)在宿主機(jī)上運(yùn)轉(zhuǎn)和調(diào)試嵌入式程序的目的。模擬器適宜于用來調(diào)試“高級(jí)的運(yùn)用程序,比如說一個(gè)“通訊簿程序。這種程序與外部設(shè)備打交道不多,實(shí)時(shí)性不強(qiáng),拿到哪一個(gè)計(jì)算機(jī)上去執(zhí)行都一樣。因此,開發(fā)者可
16、以直接在宿主機(jī)上驗(yàn)證程序的邏輯。當(dāng)確認(rèn)無誤之后,將寫好的程序移到目的機(jī)上面去普通就可以正確地執(zhí)行。31模擬器有兩種主要的類型:一類是在宿主機(jī)上模擬目的機(jī)指令系統(tǒng)的模擬器,我們稱其為指令級(jí)的模擬器。另一類是模擬目的機(jī)操作系統(tǒng)的系統(tǒng)調(diào)用的模擬器,我們稱其為系統(tǒng)調(diào)用級(jí)的模擬器。指令級(jí)的模擬器相當(dāng)于在宿主機(jī)上建立了一臺(tái)虛擬的目的機(jī),該虛擬目的機(jī)的CPU的種類可以與宿主機(jī)不同。例如,宿主機(jī)的CPU是Intel Pentium,而虛擬機(jī)是ARM、PowerPC或MIPS等。指令級(jí)的模擬器除了能模擬目的機(jī)的指令系統(tǒng)之外,視模擬器功能的強(qiáng)弱,還可以模擬目的機(jī)的外部設(shè)備、中斷和定時(shí)器。系統(tǒng)調(diào)用級(jí)的模擬器相當(dāng)于在
17、宿主機(jī)上安裝了目的機(jī)的操作系統(tǒng),使得基于目的機(jī)的操作系統(tǒng)的運(yùn)用程序可以在宿主機(jī)上運(yùn)轉(zhuǎn)。被模擬的目的機(jī)的操作系統(tǒng)的類型可以與宿主機(jī)不同。例如,宿主機(jī)的操作系統(tǒng)是Windows 2000,而目的機(jī)的操作系統(tǒng)是Hopen。兩種類型的模擬器相比,指令級(jí)模擬器所提供的運(yùn)轉(zhuǎn)環(huán)境與實(shí)踐的目的機(jī)更接近。而系統(tǒng)調(diào)用級(jí)的模擬器本身比較容易開發(fā),也容易移植。32我們曾經(jīng)把直接測試法、駐留程序法、插樁法、ROM仿真器法、在線仿真器法、片上調(diào)試法、模擬器法等幾種嵌入式軟件的調(diào)試方法都簡單地引見了一遍。從嵌入式軟件的開發(fā)實(shí)際來看,各種調(diào)試方法都有一定的適用范圍。沒有哪一種調(diào)試方法可以絕對(duì)地說是最好的調(diào)試方法。即使是直接測
18、試法在有的時(shí)候也是最有效的方法。因此,在嵌入式軟件開發(fā)的不同階段運(yùn)用最適宜的調(diào)試方式,不但可以節(jié)約開發(fā)費(fèi)用,同時(shí)還能大大地加快工程開發(fā)的進(jìn)度。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)境。第二類是與某個(gè)芯片系列配套的開發(fā)環(huán)境。如與愛普生的32位單片機(jī)S1C33相配套的開發(fā)環(huán)境C33、與ARM芯片相配套的UP-NetARM200等。3
19、4第三類是與某種運(yùn)用平臺(tái)配套的開發(fā)環(huán)境。如高通公司的Brew SDK。這里所說的運(yùn)用平臺(tái)是一種與操作系統(tǒng)相獨(dú)立,專門針對(duì)某種運(yùn)用領(lǐng)域的軟件系統(tǒng)。Brew就是一個(gè)專門針對(duì)手機(jī)的運(yùn)用平臺(tái)。353.5.1 VxWorks的集成開發(fā)環(huán)境TornadoTornado是WindRiver公司推出的一個(gè)集成軟件開發(fā)環(huán)境。它由三個(gè)部分所組成:運(yùn)轉(zhuǎn)在宿主機(jī)和目的機(jī)上的交叉開發(fā)工具和適用程序;運(yùn)轉(zhuǎn)在目的機(jī)上的實(shí)時(shí)操作系統(tǒng)VxWorks;銜接宿主機(jī)和目的機(jī)的各種通訊介質(zhì)。例如,以太網(wǎng)、串口、在線仿真器ICE或ROM仿真器等。36Tornado提供的交叉開發(fā)工具和適用程序主要有:源代碼編輯工具圖形化的交叉調(diào)試工具工程
20、配置工具集成仿真工具診斷分析工具C/C+編譯工具宿主機(jī)目的機(jī)銜接配置工具目的機(jī)系統(tǒng)形狀閱讀工具命令行執(zhí)行工具多言語閱讀工具圖形化中心配置工具37Tornado環(huán)境中宿主機(jī)與目的機(jī)間的關(guān)系381. 圖形化的交叉調(diào)試工具CrossWind/WDBCrossWind/WDB支持義務(wù)級(jí)和系統(tǒng)級(jí)兩種調(diào)試方式、混合源代碼和匯編代碼顯示、多目的機(jī)同時(shí)調(diào)試。它具有良好的圖形用戶界面。經(jīng)過CrossWind/WDB開發(fā)者可以在察看窗口中成組地察看表達(dá)式的值,在調(diào)試窗口中改動(dòng)變量、存放器和部分變量的值,經(jīng)過信息規(guī)整和分類的方法有效地提供信息。CrossWind/WDB還提供了GNU/GDB調(diào)試器引擎。GNU/GD
21、B調(diào)試器引擎采用命令行方式。對(duì)于熟習(xí)它的用戶,運(yùn)用起來有很強(qiáng)的靈敏性。392. 工程配置工具Project經(jīng)過Project可以對(duì)VxWorks操作系統(tǒng)及其組件進(jìn)展自動(dòng)配置,進(jìn)展依賴性分析和代碼容量計(jì)算,自動(dòng)生成Makefile文件。它簡化了VxWorks運(yùn)用程序的組織、配置和建立任務(wù),使工程管理和VxWorks配置的許多方面實(shí)現(xiàn)了自動(dòng)化。這種集成的圖形化工程管理環(huán)境加強(qiáng)了開發(fā)小組的專業(yè)化程度,使單獨(dú)的組件可以各自獨(dú)立開發(fā),然后由小組的其他成員共享和重用。403. 集成仿真工具VxSimVxSim能提供與真實(shí)目的機(jī)完全一致的調(diào)試和仿真運(yùn)轉(zhuǎn)環(huán)境。經(jīng)過VxSim,開發(fā)者可以在沒有板級(jí)支持包、目的機(jī)
22、操作系統(tǒng)、目的機(jī)硬件的情況下,運(yùn)用Tornado進(jìn)展開發(fā)任務(wù)。414. 診斷分析工具WindViewWindView是一個(gè)圖形化的工具。它的功能主要是向開發(fā)者提供在目的機(jī)上運(yùn)轉(zhuǎn)的運(yùn)用程序的許多的詳細(xì)情況。這種系統(tǒng)級(jí)的診斷分析工具可以與集成仿真器一同運(yùn)用。嵌入式系統(tǒng)開發(fā)者經(jīng)常由于無法知道程序執(zhí)行時(shí)系統(tǒng)內(nèi)部的情況和軟件的一些隨時(shí)間變化的特性而感到苦惱。WindView提供了運(yùn)轉(zhuǎn)在集成仿真器上的VxWorks運(yùn)用程序的詳細(xì)的動(dòng)態(tài)行為,用圖形化的方法顯示出了義務(wù)、中斷和系統(tǒng)對(duì)象之間的復(fù)雜關(guān)系,為軟件開發(fā)者處理了許多費(fèi)事的問題。425. C/C+編譯工具Tornado提供以下一些支持C言語和C+言語的工
23、具和類庫:Diab C/C+編譯器、GNU C/C+編譯器、iostreams類庫。436. 宿主機(jī)目的機(jī)銜接配置工具Launcher從開發(fā)者的角度看Launcher位于Tornado環(huán)境的最上層。經(jīng)過它開發(fā)者可對(duì)開發(fā)環(huán)境進(jìn)展設(shè)置。447. 目的機(jī)系統(tǒng)形狀閱讀工具BrowserBrowser是一個(gè)圖形化工具。它能隨時(shí)提供目的系統(tǒng)的全面形狀信息。開發(fā)者也可以經(jīng)過它監(jiān)視義務(wù)、信號(hào)量、音訊隊(duì)列、內(nèi)存分區(qū)、定時(shí)器、模塊、變量、堆棧等系統(tǒng)對(duì)象。這些對(duì)象的信息將根據(jù)開發(fā)者的選擇進(jìn)展周期性或條件性的更新。458. 命令行執(zhí)行工具WindShWindSh是一個(gè)命令行解釋器。它可以直接解釋執(zhí)行C言語達(dá)式、調(diào)用目
24、的機(jī)上的C函數(shù)、訪問已在系統(tǒng)符號(hào)表中定義的變量。WindSh不僅可以解釋幾乎一切的C言語表達(dá)式,而且還可以經(jīng)過它執(zhí)行Tornado中一切的調(diào)試功能。例如,下載軟件模塊、刪除軟件模塊、創(chuàng)建并啟動(dòng)一個(gè)義務(wù)、刪除義務(wù)、設(shè)置斷點(diǎn)、刪除斷點(diǎn)、運(yùn)轉(zhuǎn)程序、單步運(yùn)轉(zhuǎn)程序、繼續(xù)運(yùn)轉(zhuǎn)程序、查看內(nèi)存、查看存放器、查看變量、修正內(nèi)存、修正存放器、修正變量、查看義務(wù)列表、查看內(nèi)存運(yùn)用情況、查看CPU利用率、查看特定的對(duì)象義務(wù)、信號(hào)量、音訊隊(duì)列、內(nèi)存分區(qū)、類、復(fù)位目的機(jī)等。469. 多言語閱讀工具WindNavigator經(jīng)過WindNavigator可閱讀源程序代碼,用圖形化的方式顯示函數(shù)調(diào)用關(guān)系。這樣就可快速地進(jìn)展代
25、碼定位。4710. 圖形化中心配置工具WindConfig經(jīng)過WindCgnfig所提供的圖形導(dǎo)游,Tornado的用戶可以方便地配置VxWorks內(nèi)核及其組件的參數(shù)。483.5.2 Brew SDK49Brew SDK是一個(gè)用于開發(fā)基于Brew的運(yùn)用程序的開發(fā)環(huán)境。運(yùn)用這個(gè)開發(fā)環(huán)境可在PC機(jī)上需求Windows NT或Windows 2000操作系統(tǒng)的支持為無線設(shè)備編寫和調(diào)試運(yùn)用程序。待程序開發(fā)終了后,再下載到無線設(shè)備上去。Brew SDK由以下工具和程序所組成:模擬器設(shè)備配置器資源編輯器模塊信息文件編輯器庫函數(shù)Brew頭文件例如運(yùn)用程序501. Brew模擬器Brew模擬器用于模擬運(yùn)轉(zhuǎn)和調(diào)
26、試Brew的運(yùn)用程序。它能提供與被模擬的手機(jī)同樣的用戶界面,好似運(yùn)用程序真正是在實(shí)踐的手機(jī)上運(yùn)轉(zhuǎn)一樣。Brew SDK提供了一些類型的手機(jī)的模擬方案,用戶也可以運(yùn)用Brew的設(shè)備配置器建立其它手機(jī)的模擬方案。 512. Brew設(shè)備配置器Brew設(shè)備配置器用于生成新的設(shè)備配置文件或編輯現(xiàn)有的設(shè)備配置文件。可以經(jīng)過設(shè)備配置文件進(jìn)展設(shè)置的內(nèi)容有鍵盤鍵及其功能、屏幕的尺寸和分辨率、內(nèi)存的大小等。523. Brew資源編輯器Brew資源編輯器用于建立運(yùn)用程序的資源,如字符串、圖像和對(duì)話框等。保管字符串、圖像和對(duì)話框等資源的文件的后綴為.bar。資源編輯器在產(chǎn)生資源內(nèi)容的同時(shí),還產(chǎn)生定義資源標(biāo)識(shí)號(hào)的.h
27、文件。編譯工具在生成運(yùn)用程序的.dll文件時(shí)需求用到這個(gè).h文件。534. Brew模塊信息文件MIF編輯器Brew模塊信息文件MIF編輯器用來產(chǎn)生模塊信息文件。模塊信息文件包含以下幾方面的內(nèi)容,模塊中運(yùn)用程序和類的數(shù)量、每個(gè)運(yùn)用程序和類的標(biāo)識(shí)號(hào)、運(yùn)用程序的稱號(hào)、運(yùn)用程序的圖標(biāo)等。留意,在Brew中,一個(gè)模塊文件內(nèi)可以有多個(gè)運(yùn)用程序的信息。模擬器在裝入一個(gè)模塊文件時(shí)要用到它的模塊信息文件。54用Brew SDK開發(fā)運(yùn)用程序的過程可分為以下5個(gè)步驟:(1) 運(yùn)用模塊信息文件編輯器建立模塊信息文件.mif文件。(2) 運(yùn)用Visual C+建立一個(gè)新工程,以便建立運(yùn)用程序模塊文件.dll文件。(3
28、) 將運(yùn)用程序的源碼參與到第2步所建立的新工程當(dāng)中去。(4) 建立運(yùn)用程序的模塊文件。(5) 啟動(dòng)模擬器調(diào)試運(yùn)用程序模塊文件。假設(shè)有必要,在啟動(dòng)模擬器調(diào)試運(yùn)用程序之前還應(yīng)該用資源編輯器建立運(yùn)用程序要用到的資源文件.bar文件,用設(shè)備配置器建立起要模擬的設(shè)備的設(shè)備配置文件.qsc文件。55用Brew SDK開發(fā)運(yùn)用程序的過程563.5.3 C33編程工具包C33是EPSON公司推出的一個(gè)專門為基于S1C33系列微控制器芯片的嵌入式系統(tǒng)開發(fā)運(yùn)用程序的軟件工具包。這個(gè)工具包里面包括多種工具。C33提供的軟件工具有:(1) gcc33:C言語編譯器;(2) pp33:預(yù)處置器,用于處置宏命令;(3)
29、ext33:指令擴(kuò)展器,用于處置S1C33系列的擴(kuò)展指令;(4) as33:匯編程序;(5) lk33:鏈接器,用于建立可執(zhí)行目的程序;57(6) dis33:反匯編程序;(7) db33:調(diào)試器,可經(jīng)過控制硬件工具或調(diào)試監(jiān)控器進(jìn)展調(diào)試,也可運(yùn)用模擬程序在宿主機(jī)上進(jìn)展調(diào)試;(8) hex33:二進(jìn)制/十六進(jìn)制轉(zhuǎn)換工具;(9) lib33:庫生成工具;(10) wb33:集成開發(fā)平臺(tái),包含了上述一切的工具;(11) MON33:調(diào)試監(jiān)控器。調(diào)試監(jiān)控器運(yùn)轉(zhuǎn)在目的機(jī)上,并與宿主機(jī)上的調(diào)試器相互通訊,到達(dá)監(jiān)控被調(diào)試的運(yùn)用程序的目的。58C33提供的硬件工具有:(1) ICE33:在線仿真器;(2) I
30、CD33:片上調(diào)試器;(3) EPOD33:針對(duì)不同芯片的仿真器;(4) MEM33:存儲(chǔ)仿真器,可仿真ROM、F1ash和RAM。59用C33開發(fā)嵌入式軟件的過程包括以下6個(gè)主要步驟:(1) 建立源程序:建立源程序可以運(yùn)用普通的編輯器。(2) 建立make文件:在C33的集成開發(fā)平臺(tái)wb33中可方便地建立make文件。經(jīng)過make文件,預(yù)處置、編譯、鏈接等步驟可自動(dòng)完成。(3) 執(zhí)行make文件:執(zhí)行上一步驟生成的make文件生成后綴為.sr的目的文件。(4) 調(diào)試目的文件:運(yùn)用調(diào)試器db33調(diào)試上一步生成的目的文件。在調(diào)試目的文件時(shí)有3種不同的方式:運(yùn)用ICE33,運(yùn)用ICD33,運(yùn)用調(diào)試
31、監(jiān)控器MON33。60(5) 反匯編:為驗(yàn)證源程序代碼與絕對(duì)地址之間的一致性,可利用反匯編工具dis33對(duì)一個(gè)鏈接好的目的文件進(jìn)展反匯編。反匯編程序的輸出是后綴為.di的列表文件。(6) 創(chuàng)建ROM數(shù)據(jù)或掩碼數(shù)據(jù):利用二進(jìn)制/十六進(jìn)制轉(zhuǎn)換工具h(yuǎn)ex33,將前面生成的目的文件轉(zhuǎn)換為目的ROM數(shù)據(jù)或/和掩碼數(shù)據(jù),以便將其固化到基于S1C33芯片的目的機(jī)中去。61用C33編程工具包開發(fā)運(yùn)用程序的過程623.5.4 Hopen的運(yùn)用軟件開發(fā)環(huán)境Hopen是凱思公司研制的一個(gè)嵌入式軟件系統(tǒng)。它由操作系統(tǒng)、軟件開發(fā)環(huán)境、窗口系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、Java虛擬機(jī)等多個(gè)部分所組成。Hopen系統(tǒng)的運(yùn)
32、用軟件開發(fā)環(huán)境又稱為Hopen SDK。633.5.4.1 Hopen SDK的組成64Hopen系統(tǒng)提供的調(diào)試工具分別是:仿真調(diào)試工具指令級(jí)仿真調(diào)試工具基于監(jiān)控器的調(diào)試工具仿真調(diào)試工具實(shí)踐上就是我們前面所說的系統(tǒng)調(diào)用級(jí)的模擬器。由于一個(gè)不太規(guī)范的習(xí)慣,它被稱為了如今的名字。在3個(gè)工具中它運(yùn)用的最多。指令級(jí)仿真調(diào)試工具是一個(gè)指令級(jí)的模擬器。它的性能雖然強(qiáng)于仿真調(diào)試工具,但只能用來調(diào)試MC68328上的運(yùn)用程序。基于監(jiān)控器的調(diào)試工具是一個(gè)用插樁法來調(diào)試嵌入式運(yùn)用程序的工具。運(yùn)用它能察看運(yùn)用程序在目的機(jī)上的運(yùn)轉(zhuǎn)效果,但其問題同指令級(jí)仿真調(diào)試工具一樣,也只能支持少數(shù)幾種CPU,包括Motorola
33、MC68328、Winbond 90210/90221和x86系列的芯片。653.5.4.2 用Hopen SDK開發(fā)運(yùn)用軟件的過程在運(yùn)用Hopen系統(tǒng)的系統(tǒng)調(diào)用級(jí)模擬器作為調(diào)試工具時(shí),運(yùn)用軟件的開發(fā)過程應(yīng)分為工程方案、可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序建立、程序調(diào)試、重新編譯、程序下載與固化、程序測試、程序運(yùn)轉(zhuǎn)等11個(gè)階段。前5個(gè)階段與通常的開發(fā)過程相比沒有什么變化。不同之處主要表達(dá)在程序建立、程序調(diào)試、重新編譯、程序下載與固化、程序測試、程序運(yùn)轉(zhuǎn)等幾個(gè)階段。661. 程序建立階段在Hopen系統(tǒng)中可用C和Java兩種言語中的任何一種來編寫運(yùn)用程序。但在多數(shù)情況下是運(yùn)用C言語。在
34、此處我們引見的開發(fā)過程也是針對(duì)C言語的。67為了協(xié)助軟件開發(fā)人員編寫運(yùn)用程序,Hopen系統(tǒng)提供了一整套C言語的API函數(shù),包括操作系統(tǒng)API、窗口系統(tǒng)API、文件系統(tǒng)API、網(wǎng)絡(luò)系統(tǒng)API等。此外Hopen系統(tǒng)還提供了一個(gè)C言語庫。程序建立階段的任務(wù)就是利用這些API函數(shù)和庫函數(shù)根據(jù)運(yùn)用的需求編寫出運(yùn)用程序,并編譯成可執(zhí)行的目的碼。在編寫和編譯運(yùn)用程序的時(shí)是用Visual C+5.0或6.0做為開發(fā)工具。不過在運(yùn)用時(shí)有幾點(diǎn)要特別留意,第一是在編寫運(yùn)用程序的時(shí)候應(yīng)遵照規(guī)范的C言語規(guī)范;第二是除了Hopen系統(tǒng)提供的API函數(shù)和庫函數(shù)之外不要調(diào)用其它的函數(shù),比如Visual C+的函數(shù);第三是工
35、程的類型該當(dāng)是Hopen AppWizard。682. 程序調(diào)試階段和重新編譯階段由于在調(diào)試運(yùn)用軟件之前,不需求將其下載到目的機(jī)之上,所以運(yùn)用軟件被編譯為宿主機(jī)的目的指令后,馬上就可以用Hopen系統(tǒng)的仿真調(diào)試工具對(duì)其進(jìn)展調(diào)試。當(dāng)運(yùn)用程序經(jīng)過反復(fù)調(diào)試,確認(rèn)沒有錯(cuò)誤之后,就可以將其下載并固化到目的機(jī)上面去。但要留意,在下載之前還必需將運(yùn)用程序重新編譯成與目的機(jī)的CPU相一致的目的碼,并對(duì)目的碼進(jìn)展重定位。進(jìn)展這種編譯與重定位普通是運(yùn)用GNU的C/C+編譯器gcc或者是某種與目的機(jī)相配套的編譯器。693. 程序下載與固化階段由于運(yùn)用軟件在調(diào)試之前不需求下載到目的機(jī)之上,所以程序下載和程序固化兩個(gè)階
36、段已無再劃分的必要,可以一致為一個(gè)程序下載與固化階段。這個(gè)階段的任務(wù)與目的機(jī)有親密的關(guān)系。這里我們所說的目的機(jī)指專門為開發(fā)任務(wù)設(shè)計(jì)的開發(fā)評(píng)價(jià)板,而不是最終用戶所運(yùn)用的普通硬件設(shè)備。這種開發(fā)評(píng)價(jià)板都提供一定的開發(fā)功能在軟件的支持下。利用這些功能,開發(fā)者可以比較方便地把運(yùn)用程序下載和固化到它上面來。下載和固化的方法對(duì)于各種開發(fā)評(píng)價(jià)板是不太一樣的,必需詳細(xì)地參考它們各自的運(yùn)用手冊。704. 程序測試階段運(yùn)用程序下載到目的機(jī)上面之后,就可以按照一定的測試方案測試它的各種功能。由于在測試階段Hopen系統(tǒng)沒有提供對(duì)應(yīng)的支撐工具,所以只能仔細(xì)地逐一確認(rèn)程序的每一個(gè)功能能否正確。但由于這時(shí)運(yùn)轉(zhuǎn)的運(yùn)用程序曾經(jīng)
37、在仿真調(diào)試工具中調(diào)試經(jīng)過,所以通常不會(huì)出現(xiàn)錯(cuò)誤。假設(shè)有錯(cuò)誤,普通都與目的機(jī)的硬件環(huán)境有關(guān),比如輸入輸出設(shè)備,中斷地址等。這些錯(cuò)誤普通要借助目的機(jī)所提供的功能來排除。715. 程序運(yùn)轉(zhuǎn)階段當(dāng)運(yùn)用程序在目的機(jī)上測試經(jīng)過之后,整個(gè)開發(fā)過程就告終了。剩下的事情就是把運(yùn)用程序放到普通的硬件設(shè)備上去,宣告進(jìn)入運(yùn)用程序的最終運(yùn)轉(zhuǎn)階段。723.5.4.3 用Visual C+編譯運(yùn)用軟件的方法當(dāng)預(yù)備用一臺(tái)PC機(jī)充任宿主機(jī),運(yùn)用它開發(fā)Hopen系統(tǒng)的運(yùn)用軟件之前,必需首先在這臺(tái)PC上安裝Visual C+和Hopen SDK。留意安裝這兩個(gè)系統(tǒng)的次序不能顛倒,必需是先安裝Visual C+,后安裝Hopen S
38、DK。由于在安裝Hopen SDK時(shí)需求為Visual C+添加兩個(gè)新的工程類型。這兩個(gè)工程類型分別是Hopen AppWizard和Hopen DllWizard。 73安裝運(yùn)用軟件開發(fā)環(huán)境后Visual C+新添加的工程類型新添加的工程類型 74在安裝了Visual C+和Hopen系統(tǒng)的運(yùn)用軟件開發(fā)環(huán)境之后,可用Visual C+按照下面的步驟建立和編譯運(yùn)用軟件:(1) 啟動(dòng)Visual C+。(2) 在指定的目錄中建立一個(gè)類型為Hopen AppWizard的工程。(3) 在工程所給出的程序模板中添加程序代碼,建立運(yùn)用軟件的源程序。(4) 編譯運(yùn)用軟件的源程序。假設(shè)編譯經(jīng)過,Hopen AppWizard類型的工程將把運(yùn)用軟件編譯為一個(gè).dll文件。在缺省情況下這個(gè).dll文件被保管在開發(fā)環(huán)境的安裝目錄的app子目錄中。753.5.4.4 用仿真調(diào)試工具調(diào)試運(yùn)用軟件的方法Hopen系統(tǒng)的仿真調(diào)試工具是一個(gè)在 Windows操作系統(tǒng)下運(yùn)轉(zhuǎn)的軟件。它對(duì)硬件環(huán)境的要求不高,在486上有32M內(nèi)存就可以正常地運(yùn)轉(zhuǎn)。76仿真調(diào)試工具的主窗口仿真調(diào)試工具共有“文件、“編輯、“視圖、“系統(tǒng)、“調(diào)試、“工具和“協(xié)助七個(gè)菜單。77Hopen系統(tǒng)的運(yùn)用軟件仿真調(diào)試工具向運(yùn)用程序的開發(fā)者提供了一個(gè)與實(shí)踐的目的機(jī)根本等價(jià)的軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山西同文職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年安陽幼兒師范高等專科學(xué)校高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年寧德職業(yè)技術(shù)學(xué)院高職單招語文2019-2024歷年真題考點(diǎn)試卷含答案解析
- bprt培訓(xùn)課件教學(xué)課件
- 軟件定制開發(fā)項(xiàng)目合同書
- 202x工作匯報(bào)年終總結(jié)模板4
- 大恐龍創(chuàng)意畫課件
- 人教版數(shù)學(xué)六年級(jí)下冊第一單元《負(fù)數(shù)》單元測試
- 貴州航天職業(yè)技術(shù)學(xué)院《羽毛球3》2023-2024學(xué)年第一學(xué)期期末試卷
- 畢節(jié)工業(yè)職業(yè)技術(shù)學(xué)院《俄羅斯國情文化》2023-2024學(xué)年第二學(xué)期期末試卷
- 《多相反應(yīng)及反應(yīng)器》課件
- 2024年10月自考01685動(dòng)漫藝術(shù)概論試題及答案含評(píng)分參考
- 不同行業(yè)的企業(yè)會(huì)計(jì)制度比較分析
- 投標(biāo)書售后服務(wù)怎么寫
- 數(shù)據(jù)中心強(qiáng)弱電施工設(shè)計(jì)方案
- 暴發(fā)性心肌炎的診斷與治療
- 部編版小學(xué)道德與法治五年級(jí)下冊《不甘屈辱-奮勇抗?fàn)帯返谝徽n時(shí)課件
- 2024年湖北省初中學(xué)業(yè)水平考試地理試卷含答案
- 地理信息系統(tǒng)試題
- 法制教育課件教學(xué)課件
- 《抗爆、泄爆門窗應(yīng)用技術(shù)規(guī)程》
評(píng)論
0/150
提交評(píng)論