嵌入式軟件開發(fā)導(dǎo)論課件_第1頁(yè)
嵌入式軟件開發(fā)導(dǎo)論課件_第2頁(yè)
嵌入式軟件開發(fā)導(dǎo)論課件_第3頁(yè)
嵌入式軟件開發(fā)導(dǎo)論課件_第4頁(yè)
嵌入式軟件開發(fā)導(dǎo)論課件_第5頁(yè)
已閱讀5頁(yè),還剩447頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.嵌入式系統(tǒng)嵌入式軟件開發(fā)導(dǎo)論目錄什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)特點(diǎn)嵌入式系統(tǒng)結(jié)構(gòu)嵌入式硬件嵌入式軟件目錄什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)特點(diǎn)嵌入式系統(tǒng)結(jié)構(gòu)嵌入式硬件嵌入式軟件什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。簡(jiǎn)而言之,它是完成特定任務(wù)的計(jì)算機(jī)系統(tǒng)。什么是嵌入式系統(tǒng)?“所有的計(jì)算機(jī)系統(tǒng)都是通過(guò)編程來(lái)執(zhí)行任務(wù)的?”嵌入式系統(tǒng)里的程序是被寫死的。系統(tǒng)上電后程序開始執(zhí)行直至系統(tǒng)關(guān)閉,程序是不能被改變的,除非開發(fā)人員采用特定的方法才能對(duì)程序進(jìn)行改進(jìn)并重新寫入系統(tǒng)。什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)往往做為一個(gè)大型系統(tǒng)的組成部分被嵌入到該系統(tǒng)中(這也是它名稱的由來(lái)),嵌套關(guān)系可能相當(dāng)復(fù)雜,也可能非常簡(jiǎn)單,它的表現(xiàn)形式多種多樣。嵌入式系統(tǒng)應(yīng)用PDA

消費(fèi)電子

信息家電

移動(dòng)通信GPS

智能識(shí)別系統(tǒng)

導(dǎo)航系統(tǒng)

汽車電子嵌入式系統(tǒng)應(yīng)用

工業(yè)控制

火控系統(tǒng)

數(shù)字電視

飛行控制系統(tǒng)

測(cè)試儀器

醫(yī)療設(shè)備

游戲機(jī)

等等……Mars,December3,1999Crashedduetouninitializedvariable目錄什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)特點(diǎn)嵌入式系統(tǒng)結(jié)構(gòu)嵌入式硬件嵌入式軟件嵌入式系統(tǒng)特點(diǎn)實(shí)時(shí)性

小尺寸(資源,代碼,規(guī)格……)

低功耗

高效率……什么是實(shí)時(shí)性?

對(duì)于實(shí)時(shí)系統(tǒng),它的正確性不僅與系統(tǒng)的邏輯正確性相關(guān),而且與系統(tǒng)的響應(yīng)時(shí)間相關(guān)。如果系統(tǒng)的響應(yīng)不能滿足時(shí)限要求,即使它能得到正確的輸出,我們也只能說(shuō)它是一個(gè)失敗的響應(yīng)?!狣onald

Gillies什么是實(shí)時(shí)性?

操作系統(tǒng)中的實(shí)時(shí)性:

操作系統(tǒng)對(duì)時(shí)限要求的一種響應(yīng)能力?!狿OSIX標(biāo)準(zhǔn)1003.1實(shí)時(shí)系統(tǒng)

在時(shí)限范圍內(nèi)的正確響應(yīng)

通常是嵌入式系統(tǒng)

通常是分布式系統(tǒng)

對(duì)時(shí)限要求的不同

硬實(shí)時(shí)系統(tǒng)

軟實(shí)時(shí)系統(tǒng)硬實(shí)時(shí)和軟實(shí)時(shí)

硬實(shí)時(shí)

系統(tǒng)對(duì)時(shí)限的要求特別嚴(yán)格,如果不滿足時(shí)限要求會(huì)給系統(tǒng)帶來(lái)災(zāi)難性后果。如飛行控制系統(tǒng)。

軟實(shí)時(shí)

系統(tǒng)對(duì)時(shí)限的要求不是很迫切,如果不能滿足時(shí)限要求,系統(tǒng)仍然可以正常工作,只是性能有所影響而已。如數(shù)據(jù)采集系統(tǒng)。實(shí)時(shí)系統(tǒng)

硬實(shí)時(shí)系統(tǒng)應(yīng)用

汽車(沃爾沃S80有19臺(tái)計(jì)算機(jī))

飛機(jī)(JAS)

醫(yī)療設(shè)備

空間設(shè)備(火星探測(cè)器)

軍方系統(tǒng)

工業(yè)自動(dòng)化實(shí)時(shí)系統(tǒng)

軟實(shí)時(shí)系統(tǒng)應(yīng)用

游戲DVD(MPEG編碼)

英特網(wǎng)視頻和廣播

通訊目錄什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)特點(diǎn)嵌入式系統(tǒng)結(jié)構(gòu)

嵌入式硬件嵌入式軟件嵌入式系統(tǒng)結(jié)構(gòu)硬件操作系統(tǒng)

程序硬件內(nèi)嵌式操作系統(tǒng)系統(tǒng)組件用戶程序嵌入式系統(tǒng)結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)嵌入式系統(tǒng)應(yīng)用實(shí)例數(shù)字控制算法數(shù)據(jù)日志數(shù)據(jù)獲取和顯示操作員界面界面工程系統(tǒng)遠(yuǎn)程監(jiān)視系統(tǒng)實(shí)時(shí)時(shí)鐘數(shù)據(jù)庫(kù)操作員控制臺(tái)顯示設(shè)備實(shí)時(shí)計(jì)算機(jī)目錄什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)特點(diǎn)嵌入式系統(tǒng)結(jié)構(gòu)嵌入式硬件嵌入式軟件嵌入式系統(tǒng)硬件CPUIntelx86PowerPC(Mac)G3,G4,G5SPARC,AlphaARMMIPS……位寬8位控制器(仍然存在!)16位控制器(主流)32位控制器(開始流行)64位控制器(高性能)嵌入式系統(tǒng)硬件

CPU市場(chǎng)份額嵌入式硬件實(shí)例問(wèn)題

功耗和能量為何擔(dān)心能量和電力?“電能是嵌入式系統(tǒng)的最大約束”

[in:L.Eggermont(ed):EmbeddedSystemsRoadmap2002,STW]目前的UMTS電話系統(tǒng)幾乎不可能在數(shù)據(jù)一直被傳輸?shù)那闆r下被操作多于一小時(shí)的時(shí)間。

[fromareportoftheFinancialTimes,Germany,onananalysisbyCreditSuisseFirstBoston;http://www.ftd.de/tm/tk/9580232.html?nv=se]目錄什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)特點(diǎn)嵌入式系統(tǒng)結(jié)構(gòu)嵌入式硬件嵌入式軟件嵌入式軟件——目標(biāo)設(shè)計(jì)可靠、穩(wěn)定、高效的嵌入式軟件,需要考慮

繼承性

有限的資源

多樣性

可讀性

并發(fā)性

兼容性

實(shí)時(shí)性

層次嵌入式系統(tǒng)軟件的特點(diǎn)HardwareIncludingOperatingSystemComponentsUserProgram嵌入式系統(tǒng)

有限的資源

實(shí)時(shí)性

操作系統(tǒng)與用戶軟件沒有明顯的界線

開發(fā)模式hosttarget串口以太網(wǎng)嵌入式系統(tǒng)軟件的今天嵌入式系統(tǒng)軟件的明天作業(yè)你是如何理解嵌入式系統(tǒng)的?在日常生活中,你接觸過(guò)哪些嵌入式產(chǎn)品?他們都有些什么功能?嵌入式系統(tǒng)中的軟件有哪些特征?比較嵌入式系統(tǒng)與普通的計(jì)算機(jī)系統(tǒng)存有哪些相同和不同之處。嵌入式軟件開發(fā)導(dǎo)論2.嵌入式操作系統(tǒng)目錄什么是嵌入式操作系統(tǒng)?常用嵌入式操作系統(tǒng)簡(jiǎn)介WindowsEmbeddedVxWorksEmbeddedLinux目錄什么是嵌入式操作系統(tǒng)?常用嵌入式操作系統(tǒng)簡(jiǎn)介WindowsEmbeddedVxWorksEmbeddedLinux各式各樣的OS桌面機(jī)Windows(9X,XPHome,XP/2000Pro)Mac服務(wù)器Windows(XP/2000Server&AdvancedServer)UnixVarieties嵌入式Many什么是嵌入式操作系統(tǒng)?嵌入式系統(tǒng)是使用特定嵌入式軟件完成特定功能的計(jì)算機(jī)系統(tǒng),嵌入式操作系統(tǒng)作為軟件的組成部分,為嵌入式軟件的開發(fā)和運(yùn)行提供良好的環(huán)境。嵌入式系統(tǒng)可以是基于ROM或者是磁盤的系統(tǒng),類似PC,但它并不能替代通用計(jì)算機(jī)系統(tǒng)。什么是嵌入式操作系統(tǒng)?模塊化可升級(jí)可配置小內(nèi)存損耗CPU支持設(shè)備驅(qū)動(dòng)等等...什么構(gòu)成實(shí)時(shí)操作系統(tǒng)RTOS?多線程和搶占式調(diào)度由于非時(shí)限驅(qū)動(dòng)OS的存在,具有線程優(yōu)先級(jí)必須支持可預(yù)測(cè)線程同步機(jī)制優(yōu)先級(jí)繼承系統(tǒng)常用嵌入式操作系統(tǒng)MicrosoftEmbeddedNT/XP“實(shí)時(shí)”控制WindowsCE(CE.NET)Internet設(shè)備PocketPC2002HandheldPC’sandPDA’sWindRiverSystemsVxWorkspSOS目錄什么是嵌入式操作系統(tǒng)?常用嵌入式操作系統(tǒng)簡(jiǎn)介

WindowsEmbeddedVxWorksEmbeddedLinux微軟的移動(dòng)平臺(tái)更強(qiáng)的功能筆記本PC復(fù)雜的文檔編輯和讀寫桌面鍵盤輸入鍵盤和鼠標(biāo)輸入法完整的.NETframework支持WindowsXP/XPE平板電腦復(fù)雜的文檔編輯和讀寫桌面鍵盤輸入支持?jǐn)?shù)字墨水可以支持鍵盤,也可以把鍵盤拿走鍵盤、鼠標(biāo)、數(shù)字墨水和語(yǔ)音輸入完整的.NETframework支持提供筆,數(shù)字墨水,手寫和語(yǔ)音識(shí)別APIWindowsCE小型個(gè)人產(chǎn)品單向網(wǎng)絡(luò)信息消費(fèi)WindowsMobileSmartphone信息消費(fèi)基本數(shù)據(jù)瀏覽把PDA融入電話可以與Exchange交互.NETCompactFrameworkASP.NET移動(dòng)控件PocketPC信息消費(fèi)瀏覽和輸入數(shù)據(jù)把電話融入PDA可以與Office,Exchange和SQLServer交互.NETCompactFrameworkASP.NET移動(dòng)控件WindowsEmbedded家族目錄什么是嵌入式操作系統(tǒng)?常用嵌入式操作系統(tǒng)簡(jiǎn)介

WindowsEmbeddedVxWorksEmbeddedLinuxVxWoksVxWorks是風(fēng)河公司開發(fā)的一款商用硬實(shí)時(shí)操作系統(tǒng)主要思想:在嵌入式系統(tǒng)中最大限度地實(shí)現(xiàn)內(nèi)核的時(shí)間可預(yù)測(cè)性,根據(jù)用戶定義的任務(wù)優(yōu)先級(jí)對(duì)任務(wù)實(shí)現(xiàn)調(diào)度。給用戶最大的控制權(quán)VxWoks為追求系統(tǒng)的實(shí)時(shí)性而設(shè)計(jì)的,并不是以通用OS為設(shè)計(jì)目標(biāo)。去掉了一些OS模塊,因?yàn)檫@些模塊在某種程度上會(huì)影響系統(tǒng)的實(shí)時(shí)性(如在內(nèi)存管理中沒有采用頁(yè)面管理模式,采用的是平板式內(nèi)存。VxWoks任務(wù)調(diào)度采用的是基于優(yōu)先級(jí)的搶占式任務(wù)調(diào)度模式,優(yōu)先級(jí)分256級(jí)(0-255)用戶可以動(dòng)態(tài)的改變優(yōu)先級(jí),但是這種做法不提倡用戶可以鎖定一個(gè)任務(wù)使它不被更高的任務(wù)或中斷搶占允許使用固定優(yōu)先級(jí)響應(yīng)時(shí)間來(lái)檢查任務(wù)調(diào)度的性能VxWoks資源共享和優(yōu)先級(jí)繼承機(jī)制采用最優(yōu)化的上下文切換和中斷返回機(jī)制.內(nèi)核從不禁止非屏蔽中斷NMI(non-maskableinterrupts)VxWoks–缺點(diǎn)缺少某些OS特性保證時(shí)限要求是設(shè)計(jì)者自己的任務(wù)(系統(tǒng)的靈活性帶來(lái)的弊端)不支持很多應(yīng)用和APIs(只支持部分POSIX標(biāo)準(zhǔn)的函數(shù)集)盡管采用了平板式內(nèi)存管理,但是由于內(nèi)存的動(dòng)態(tài)分配,仍然存在內(nèi)存段,這樣仍然存在時(shí)間上的不可預(yù)測(cè)性VxWoks–缺點(diǎn)應(yīng)用領(lǐng)域主要局限在對(duì)實(shí)時(shí)性要求較嚴(yán)格的硬實(shí)時(shí)系統(tǒng)中帶給用戶最大的控制權(quán)的同時(shí),用戶對(duì)系統(tǒng)的實(shí)時(shí)性調(diào)度責(zé)任也更大Tornado——集成開發(fā)環(huán)境GDB——調(diào)試工具WindView——多任務(wù)跟蹤和觀察工具目錄什么是嵌入式操作系統(tǒng)?常用嵌入式操作系統(tǒng)簡(jiǎn)介

WindowsEmbeddedVxWorksEmbeddedLinux主要內(nèi)容嵌入式Linux概覽使用嵌入式Linux的開發(fā)過(guò)程嵌入式Linux與WindowsCE將Linux嵌入到各種設(shè)備中:NASA個(gè)人助理開發(fā)過(guò)程Linux操作系統(tǒng)選擇操作系統(tǒng)的移植與改進(jìn)DriverandApplicationsoftwaredevelopment從系統(tǒng)設(shè)計(jì)測(cè)試

Rehat,bluecat,RTLinux,MontaVistaLinux,RTAI,……Tekram,HP,Intel,…嵌入式Windows與嵌入式LinuxJerryKrasner與RickRehrbraum

之爭(zhēng)版權(quán)費(fèi)開發(fā)環(huán)境功能上市時(shí)間開人員數(shù)非常便宜并非所有的嵌入式windows產(chǎn)品都便宜更好不同意更多不同意更短更少不確定不確定硬件支持差不多Linux更好

嵌入式Windows與嵌入式Linux目前嵌入式系統(tǒng)項(xiàng)目中使用的目標(biāo)操作系統(tǒng)以及二年后使用的操作系統(tǒng),2002,數(shù)據(jù)來(lái)自EDC兩者都呈強(qiáng)健的上升趨勢(shì)!續(xù)作業(yè)Vxworks操作系統(tǒng)有哪些優(yōu)缺點(diǎn)?什么是嵌入式embeddedLinux?給出幾個(gè)例子。與嵌入式Linux相比嵌入式Windows有何優(yōu)點(diǎn)?應(yīng)用WindowsCE與嵌入式Linux進(jìn)行嵌入式系統(tǒng)開發(fā),二者的開發(fā)流程有什么不一樣?嵌入式軟件開發(fā)導(dǎo)論3.

WindowsCE簡(jiǎn)介目錄HelloWindowsCE!WindowsCE特性與桌面版OS比較與其他嵌入式OS比較演示:

HelloWindowsCE!WinCE能做什么:手機(jī)WinCE能做什么:PDA便攜式多媒體設(shè)備WinCE能做什么:游戲機(jī)LinuxWindowsWinCE能作什么:汽車電子BMWCitro?nClarionCo.Ltd.DaimlerChryslerFiatSubaruHondaHyundaiMitsubishiToyota…WinCE能做什么:其它網(wǎng)關(guān)工業(yè)控制機(jī)頂盒醫(yī)療設(shè)備銀行ATM系統(tǒng)放映機(jī)和大屏幕顯示器VoIP設(shè)備…WindowsCE發(fā)展歷史1996年發(fā)布WindowsCE1.0WindowsCE.NET4.x被廣泛應(yīng)用最新版WindowsCE5.0WindowsCE特點(diǎn)與桌面版本比較:

硬件平臺(tái)桌面版WindowsOnlyruns

onx86architectureWindowsCEARM/XscaleMIPSPowerPCSHx86WindowsCE特性WindowsCE能運(yùn)行在不同的硬件平臺(tái)之上:是如何實(shí)現(xiàn)的?NewPlatformWizard答案是BSP!BSP介紹BSP(BoardSupportPackage,板級(jí)支持包)是用來(lái)支持OEM適配層(OEMadaptationlayer,OAL)和軟件開發(fā)板(softwaredevelopmentboard,SDB)的設(shè)備驅(qū)動(dòng)的這部分軟件。HardwareOperatingSystemBoardSupportPackage與桌面版本比較:

鏡像大小桌面WindowsWindows3.x:2-5MBWindows98:400MBWindowsXP:1.5GB越來(lái)越大…不能定制WindowsCE最小:200KB網(wǎng)絡(luò)部分大約800KBGWES,ShellandApps大約4MB

InternetExplorer大約3MBWindowsCE特性組件化200多個(gè)可選組件快速方便地針對(duì)特定應(yīng)用系統(tǒng)定制OS與桌面版比較:

實(shí)時(shí)性桌面Windows不具有實(shí)時(shí)性WindowsCE線程優(yōu)先級(jí)256級(jí)中斷嵌套每個(gè)線程都有獨(dú)立的時(shí)鐘嘀嗒處理優(yōu)先級(jí)反轉(zhuǎn)WindowsCE特性:WindowsCE支持實(shí)時(shí)性實(shí)時(shí)性對(duì)于時(shí)限要求嚴(yán)格的系統(tǒng)非常關(guān)鍵與桌面版比較:

電源管理桌面Windows電源管理實(shí)現(xiàn)差WindowsCE電池供電/AC供電各設(shè)備的電源使用狀況關(guān)閉不必要的設(shè)備WindowsCE特性:WindowsCE提供電源管理器,用來(lái)管理設(shè)備供電系統(tǒng),增加電能的使用效率WindowsCE能夠減少設(shè)備的能量損耗,在系統(tǒng)復(fù)位、開啟、休眠和掛起狀態(tài),維持和保護(hù)RAM上的文件系統(tǒng)與桌面版比較:

編程接口桌面WindowsASCII/UNICODE豐富的API強(qiáng)有力的硬件平臺(tái)WindowsCE只支持UNICODE部分Win32API,MFC等有限的硬件資源WindowsCE特性:WindowsCE只支持UNICODECHAR->TCHAR/WCHARstrlen->wcslen部分API功能受限運(yùn)行WindowsCE的系統(tǒng)通常資源受限與桌面版比較:

微內(nèi)核桌面WindowsNT系列力求微內(nèi)核9xseries不是微內(nèi)核WindowsCE微內(nèi)核文件系統(tǒng)和設(shè)備驅(qū)動(dòng)運(yùn)行在用戶模式內(nèi)核負(fù)責(zé)傳遞消息WindowsCE特性:微內(nèi)核增強(qiáng)的可靠性增強(qiáng)的可擴(kuò)展性與桌面版比較:

共享源代碼桌面Windows商業(yè)軟件,源代碼是微軟的一級(jí)機(jī)密WindowsCEWindowsCE公開了70%的源代碼用戶可以對(duì)它進(jìn)行修改WindowsCE特性:源代碼共享用戶可以在“%_WINCEROOT%\private”文件夾中找到公開的源代碼與其它嵌入式OS比較:

多媒體支持其它嵌入式OS:對(duì)音視頻支持有限沒有商業(yè)的網(wǎng)站瀏覽器WindowsCE友好的用戶界面WindowsMediaPlayer9,支持mp3,wav,avi,wmv…InternetExplorer6&PocketIEWindowsCE特性:友好的用戶界面強(qiáng)大的多媒體支持與桌面版windows相兼容PocketWord,Excel,PowerPoint,adobereaderPocketMSNmessengerPocketIE,WindowsMediaPlayerSQLServerCEeditionACDSee……與其它的嵌入式OS比較:

編程接口OtherEOS:不同的編程接口常用的C/C++&j2meWindowsCEWin32APIMFC,ATL,STL…COM,ActiveX.NETCompactFrameworkJavaVMEVB,EVC…WindowsCE特性:對(duì)于Windows程序員來(lái)說(shuō)容易上手支持多種編程語(yǔ)言與其它的嵌入式OS比較:

鏡像大小和實(shí)時(shí)性其它嵌入式OS:RTLinux,μC/OS-II支持硬實(shí)時(shí)Vxworks最小:8kμC/OS-II最小:2kWindowsCE非硬實(shí)時(shí)系統(tǒng)對(duì)于一些特殊的應(yīng)用鏡像可能過(guò)大WindowsCE優(yōu)點(diǎn):豐富的可選組件和功能定制方便易使用與桌面版windows編程接口類似具有豐富的微軟及第三方應(yīng)用支持WindowsCE缺點(diǎn):對(duì)于一些特殊的應(yīng)用,鏡像可能過(guò)大實(shí)時(shí)性?非免費(fèi):3$perruntimelicense995$forPlatformBuilder性能和安全性?作業(yè)用PlatformBuilder創(chuàng)建一個(gè)自己的WindowsCE平臺(tái),并運(yùn)行它。熟悉WindowsCEGUI,文件系統(tǒng),控制面板…用PlatformBuilder完成一個(gè)tic-tac-toe程序,在你自己的WindowsCE平臺(tái)上運(yùn)行它。嵌入式軟件開發(fā)導(dǎo)論4.應(yīng)用程序開發(fā)目錄工具和技術(shù)常規(guī)的應(yīng)用開發(fā)步驟WindowsCE編程特點(diǎn)WindowsMobile開發(fā)PocketPCSmartphone模擬器概述目錄工具和技術(shù)常規(guī)的應(yīng)用開發(fā)步驟WindowsCE編程特點(diǎn)WindowsMobile開發(fā)PocketPCSmartphone模擬器概述什么是應(yīng)用程序開發(fā)在特定的WindowsCE平臺(tái)下使用該平臺(tái)的編程接口實(shí)現(xiàn)各種功能平臺(tái)的價(jià)值依賴于運(yùn)行在其上的應(yīng)用程序WindowsCE應(yīng)用程序開發(fā)工具PlatformBuilderEmbeddedVisualC++VisualStudio.NETEmbeddedVisualTools3.0(不提倡,被廢棄)PlatformBuilderPlatformBuilder支持WinCEApp/DLL/Lib,使用Win32API開發(fā)應(yīng)用程序?qū)⒈绘溄拥絆S內(nèi)核中一旦修改代碼,必須再重新編譯鏡像容易調(diào)試OS內(nèi)核,不容易調(diào)試應(yīng)用程序首先必須創(chuàng)建一個(gè)debug版的OSDebugZoneEmbeddedVisualC++EmbeddedVisualC++支持WinCEApp/DLL/COM/LibusingWin32API,MFC,ATLandSTL與VisualC++6.0具有相似的工程管理模式和用戶界面易于調(diào)試和測(cè)試必須安裝相應(yīng)的為特定平臺(tái)開發(fā)的SDK,從而開發(fā)相應(yīng)的應(yīng)用程序VisualStudio.NETVisualStudio.NET2003開發(fā)WindowsCEApp/Assemblyusing.NETcompactframework可使用C#,VB.NET,J#...VS.NET具有完整的開發(fā)環(huán)境目標(biāo)平臺(tái)上需要安裝.NETcompactframework易于調(diào)試和測(cè)試EmbeddedVisualTools3.0包括EmbeddedVisualBasic3.0andEmbeddedVisualC++3.0用戶界面類似VisualStudio6.0開發(fā)的程序只能用于WindowsCEVersion3.0NativeApplicationModelManagedApplicationModelVisualStudio.NET2003C#orVB.NET.NETCompactFrameworkRuntimeCorC++Win32ApplicationsCompiledPlatformBuilderWindowsCEOperatingSystemCorC++Win32ApplicationseMbeddedVisualTools應(yīng)用程序開發(fā)選擇應(yīng)用程序開發(fā)選擇(將來(lái))VisualStudio2005C#orVB.NET.NETCompactFramework2.xCorC++Win32ApplicationsWindowsCEOperatingSystemCorC++Win32ApplicationsPlatformBuilder相關(guān)技術(shù)

你有哪些選擇?Win32MicrosoftFoundationClass(MFC).NETCompactFramework相關(guān)技術(shù)

對(duì)大小的影響RuntimeSize(Byte)SizeIncrementWin329,805,2310MFC10,234,415429,184.NETcompactframework11,201,4591,396,228*該測(cè)試是基于InternetAppliance“平臺(tái)相關(guān)技術(shù)

開發(fā)和執(zhí)行時(shí)間Developtimeperformanceruntimeperformance.NETCompactframeworkMFCWin32API相關(guān)技術(shù)

結(jié)論確定使用何種模式取決于你是否使用了Win32/MFC/C#/VB來(lái)開發(fā)程序,以及系統(tǒng)對(duì)操作系統(tǒng)鏡像大小的要求,同時(shí)還要考慮其他因素,如應(yīng)用程序開發(fā)速度以及系統(tǒng)的可靠性和兼容性等。

你可以根據(jù)項(xiàng)目的工作層來(lái)整合和匹配代碼,如工作在:驅(qū)動(dòng)中的Win32,Win32,MFC或者終端用戶程序的C#/VB,開發(fā)人員可以充分利用他們?cè)谧烂鎤indows下的開發(fā)經(jīng)驗(yàn)來(lái)快速開發(fā)WindowsCE產(chǎn)品。目錄工具和技術(shù)常規(guī)的應(yīng)用開發(fā)步驟WindowsCE編程特點(diǎn)Windows移動(dòng)開發(fā)PocketPCSmartphone模擬器概述常規(guī)的應(yīng)用開發(fā)步驟:獲得特定WindowsCE平臺(tái)的SDK.在WindowsCE模擬器上編輯和調(diào)試代碼.在實(shí)際目標(biāo)平臺(tái)上,編譯、運(yùn)行程序,如果需要在設(shè)備上調(diào)試程序,可以通過(guò)

ActiveSync.第一步:獲得SDKSDK是用于在EVC和VisualStudio下開發(fā)應(yīng)用程序的獲得SDK的兩種方法微軟或第三方提供為自己的平臺(tái)導(dǎo)出SDKMicrosoft提供:StandardSDK(CommonSDKdev)WindowsMobileSDK(PocketPC…)PB下的SDK向?qū)且粋€(gè)工具,用來(lái)產(chǎn)生和導(dǎo)出特定平臺(tái)的SDK(softwaredevelopmentkit)。被導(dǎo)出的SDK由頭文件、庫(kù)文件、運(yùn)行文件、平臺(tái)的外延和幫助文件等組成。應(yīng)用程序開發(fā)人員可以利用這個(gè)SDK去關(guān)聯(lián)MicrosoftembeddedVisualC++4.0或MicrosoftVisualStudio.NET,為特定平臺(tái)開發(fā)應(yīng)用。Platform->ConfigureSDKPlatform->BuildSDKPB、SDK和開發(fā)工具間的關(guān)系圖演示:

在PB下導(dǎo)出SDK,

為EVC使用提示:只在StandardSDK不能滿足需求時(shí)才使用自己的導(dǎo)出SDK用Platform->Configure

SDK

來(lái)配置SDK從控制面板中卸載SDK第二步:在模擬器下編程和調(diào)試與VisualC++6.0andVisualC++.NET類似取決于你的WindowsProgramming知識(shí)平臺(tái)管理器(PlatformManager)它是一種通訊機(jī)制,用來(lái)管理宿主機(jī)和目標(biāo)機(jī)之間的通訊。平臺(tái)管理器允許宿主機(jī)上的開發(fā)工具以介質(zhì)無(wú)關(guān)的方式下載和連接目標(biāo)機(jī),PB,EVC4.0,和Microsoft.NETCompactFramework使用平臺(tái)管理器下載諸如應(yīng)用、MSActiveX控件、實(shí)時(shí)運(yùn)行庫(kù)和遠(yuǎn)程客戶端工具等到目標(biāo)機(jī)上。WorkstationCEDeviceTCP/IPKITLActiveSyncPlatformManager遠(yuǎn)程工具你可以在宿主機(jī)上遠(yuǎn)程執(zhí)行位于目標(biāo)機(jī)上的各種程序不同的平臺(tái)支持不同的遠(yuǎn)程工具位于PB和EVC的Tools

菜單下開發(fā)者可以使用相應(yīng)的接口和APIs產(chǎn)生新的遠(yuǎn)程工具工具名稱描述RemoteCallProfilerProvidesprofilingandanalysistoolswithinagraphicaluserinterface(GUI)thatenableyoutoidentifyalgorithmicbottlenecksinyourapplications.RemoteFileViewerDisplaysahierarchicalviewofthefilesystemonatargetdevice.RemoteHeapWalkerDisplaysinformationaboutheapidentifiersandflagsforprocessesthatarerunningonatargetdevice.RemoteKernelTrackerDisplaysarepresentationoftheexecutionoftheoperatingsystem(OS)onatargetdevice.RemotePerformanceMonitorMeasurestheperformanceofatargetdevice.RemoteProcessViewerDisplaysalistofprocessesandthreadsrunningonatargetdevice.RemoteRegistryEditorDisplaystheregistryforatargetdeviceandenablesyoutomanagetheregistry.RemoteSpyDisplaysalistofwindowsopenedonatargetdeviceandmessagesgeneratedbythosewindows.RemoteSystemInformationDisplayssystemsettingsandpropertiesforatargetdevice.RemoteZoom-inDisplaysanimagefromthescreenofatargetdevice.演示:

EVC下的HelloWorld

和遠(yuǎn)程工具第三步:在目標(biāo)機(jī)上的運(yùn)行和調(diào)試根據(jù)目標(biāo)機(jī)使用的CPU編譯程序下載這個(gè)可執(zhí)行文件到目標(biāo)機(jī)上,然后運(yùn)行該可知行文件

如果需要,使用ActiveSync一步一步調(diào)試程序介紹ActiveSyncActiveSync提供了一種支持,用來(lái)同步基于桌面Windows系統(tǒng)和基于CE.NET的便攜式系統(tǒng)間的數(shù)據(jù),它使用時(shí)間標(biāo)記(stamps)和用戶參數(shù)來(lái)跟蹤兩個(gè)系統(tǒng)間的數(shù)據(jù)改變,并傳送相應(yīng)的數(shù)據(jù)使得每個(gè)系統(tǒng)上的數(shù)據(jù)都是最新的,過(guò)時(shí)的或者冗余的數(shù)據(jù)會(huì)被刪除。ActiveSync支持USB,紅外,調(diào)制解調(diào)器,以及Ethernet等多種連接。ActiveSync不支持CE設(shè)備間的數(shù)據(jù)同步,也不支持CE設(shè)備和服務(wù)器間的數(shù)據(jù)同步。ActiveSync工作模式使用ActiveSync調(diào)試安裝ActiveSync(從Microsoft網(wǎng)站獲得)宿主機(jī)和目標(biāo)機(jī)間提供至少以下一種連接SerialUSBInfraredModemEthernet在EVC下選擇“WindowsCEDevice”inEVC,調(diào)試運(yùn)行在目標(biāo)機(jī)上的程序目錄工具和技術(shù)常規(guī)的應(yīng)用開發(fā)步驟WindowsCE編程特點(diǎn)Windows移動(dòng)開發(fā)PocketPCSmartphone模擬器概述GDI編程不能使用TextOutAPI注意CreateFontAPI注意WindowsCE調(diào)色板輸入:Stick不能使用WM_MOUSEMOVE消息,使用GetMouseMovePointsAPI。WindowsCE數(shù)據(jù)庫(kù)WinCEOS提供的APIs,用來(lái)支持簡(jiǎn)單的數(shù)據(jù)庫(kù)應(yīng)用不能被其他版本的Windows使用APIs:CeCreateDatabaseCeDeleteRecord…串行通訊//TraditionalWin32way.hSer=CreateFile(TEXT(“COM1:”),GENERIC_READ,0,NULL,OPEN_EXSITING,0,NULL);rc=ReadFile(hSer,&ch,1,&cBytes,NULL);TransmitCommChar(hSer,‘a(chǎn)’);CloseHandle(hSer);問(wèn)題:我們能用什么,除了“COM1”以外RAPIRAPI是一個(gè)接口,它可以使運(yùn)行于桌面系統(tǒng)的應(yīng)用調(diào)用目標(biāo)機(jī)上的函數(shù)。桌面系統(tǒng)被叫作RAPI客戶端,目標(biāo)機(jī)被叫作RAPI服務(wù)器端。

RAPI遠(yuǎn)行在WinsockandTCP/IP之上,API通常以Cexxxx開頭。RAPI結(jié)構(gòu)WinCERunRAPIApplicationRAPIServer目錄工具和技術(shù)常規(guī)的應(yīng)用開發(fā)步驟WindowsCE編程特點(diǎn)WindowsMobile開發(fā)PocketPCSmartphone模擬器概述介紹Windows

MobileWindows

Mobile是微軟為PocketPCs和Smartphones開發(fā)的軟件平臺(tái)

Windows移動(dòng)延伸到微軟的桌面系統(tǒng)和個(gè)人設(shè)備Windows移動(dòng)家族PocketPCSmartphoneWindows汽車電子SmartphonePocketPC為什么要開發(fā)Windows移動(dòng)移動(dòng)設(shè)備的市場(chǎng)越來(lái)越大截止2008,將會(huì)有超過(guò)10億集成設(shè)備和2億的移動(dòng)手機(jī)用戶(IDC,2004).PocketPC已經(jīng)是PDA市場(chǎng)的龍頭,超過(guò)PalmSmartphone的快速發(fā)展WindowsMobile的特點(diǎn)Microsoft提供了平臺(tái)和SDKOEMs提供硬件開發(fā)人員不能修改Platform特性Windows移動(dòng)開發(fā)

第一步:下載和安裝SDKsURL:/mobility/downloads/sdks/default.aspxSDK能被用在EVC和VisualStudio.NET2003上Windows移動(dòng)開發(fā)

第二步:開發(fā)、調(diào)試,運(yùn)行參考前面的部分你需要知道什么1.只能使用Unicode字符集a.ANSI是一個(gè)字節(jié),UNICODE是兩個(gè)字節(jié)b.聲明:CHAR->WCHAR

orTCHARc.字符串函數(shù):strlen()->wcslen()strcmp()->wcscmp()你需要知道什么(2)2.注意內(nèi)存的使用減少靜態(tài)和全局變量的使用注意函數(shù)的遞歸注意圖片、視頻文件的大小檢查動(dòng)態(tài)內(nèi)存的分配情況你需要知道什么(3)3.檢查屏幕分辨率620×240、240×320….屏幕分辨率例子我們?cè)谀?Getplatform&SDKfromOEMsCoding&TestingReleasetoManufactureExportyourSDK目錄工具和技術(shù)常規(guī)的應(yīng)用開發(fā)步驟WindowsCE編程特點(diǎn)Windows移動(dòng)開發(fā)PocketPCSmartphone模擬器概述概述仿真器是一個(gè)用來(lái)模擬支持WindowsCE平臺(tái)的硬件行為的工具。

使用仿真器,你不需要硬件就可以設(shè)計(jì)、建立和測(cè)試一個(gè)CE平臺(tái),它是用軟件的形式來(lái)實(shí)現(xiàn)對(duì)硬件平臺(tái)的模擬。用軟件模擬硬件。相關(guān)軟件MicrosoftVirtualPCVMWare共享代碼的Bochs使用場(chǎng)景平臺(tái)開發(fā)DMA的支持支持KITL,可以調(diào)試OS應(yīng)用開發(fā)用你的SDK發(fā)布它在真實(shí)的環(huán)境上運(yùn)行前,測(cè)試你的應(yīng)用在模擬器上映射一個(gè)目錄使用模擬器,你可以將一個(gè)宿主機(jī)上的目錄映射到仿真器上,就好像這個(gè)目錄是安裝在模擬器上的一個(gè)驅(qū)動(dòng)設(shè)備。在模擬器的文件里,這個(gè)映射到模擬器上的目錄現(xiàn)在處于根目錄下,名字是StorageCard,模擬器一次只能映射一個(gè)目錄。在模擬器上映射一個(gè)目錄映射一個(gè)目錄到模擬器上在模擬器上,運(yùn)行一個(gè)WindowsCE系統(tǒng),它可以支持宿主機(jī)目錄映射到模擬器上在模擬器窗口里,從模擬器菜單中選擇文件夾共享

選擇共享文件夾選擇一個(gè)目錄共享,然后點(diǎn)OK刪除映射目錄在模擬器窗口里,從模擬器菜單中選擇文件夾共享

在共享文件夾中選擇目錄的路徑

選擇不共享模擬器的限制—

通訊和網(wǎng)絡(luò)模擬器要運(yùn)行在NAT連接上撥號(hào)連接不支持模擬器不能建立RemoteDesktopProtocol(RDP)不支持:IrDABluetooth802.11模擬器的限制—

硬件限制Universalserialbus(USB)設(shè)備PCCard設(shè)備存儲(chǔ)設(shè)備,包括CF卡和硬盤文件系統(tǒng)驅(qū)動(dòng),包括fileallocationtable(FAT),compactdisc(CD),anddigitalvideodisc(DVD)driversIEEE1394devices仿真器的限制—

多媒體限制不支持對(duì)多媒體的硬件加速DirectXWindowsMediaDVD-VideoAPIDigitalrightsmanagement(DRM)VoiceoverIP(VoIP)Multiple-screensupport下一節(jié),我們將在真正的硬件系統(tǒng)上學(xué)習(xí)作業(yè)在PB上導(dǎo)出你自己CE的SDK在EVC下重寫tictactoe程序,用你自己的SDK,如果可能使用MFC,要包括以下特性:用戶可以選擇外形尺寸存游戲結(jié)果到WinCE數(shù)據(jù)庫(kù)(如23贏10輸)移植這個(gè)游戲到pocketPC和smartphone(沒鼠標(biāo)……)嵌入式軟件開發(fā)導(dǎo)論5.操作系統(tǒng)開發(fā)目錄介紹PlatformBuilder用戶界面UI目錄(Catalog)and特性(Feature)配置平臺(tái)平臺(tái)創(chuàng)建流程Build系統(tǒng)定制目錄Catalog目錄介紹PlatformBuilder用戶界面UI目錄(Catalog)and特性(Feature)配置平臺(tái)平臺(tái)創(chuàng)建流程Build系統(tǒng)定制目錄Catalog介紹PlatformBuilder一個(gè)定制基于WindowsCE的平臺(tái)定制集成開發(fā)環(huán)境(IDE)提供所有與基于WindowsCE平臺(tái)設(shè)計(jì)、創(chuàng)建、編譯、測(cè)試和調(diào)試相關(guān)的開發(fā)工具該集成開發(fā)環(huán)境提供統(tǒng)一的與平臺(tái)和項(xiàng)目相關(guān)的工作空間

PB能做什么?(1)平臺(tái)向?qū)椭銊?chuàng)建一個(gè)新的平臺(tái)(platform)BSP向?qū)椭銊?chuàng)建新的板級(jí)支持包(BSP)目錄(Catalog)顯示用戶定制的平臺(tái)OS屬性列表依賴性自動(dòng)監(jiān)測(cè)(Automateddependencychecking)可以確保與平臺(tái)相關(guān)的所有屬性都會(huì)被包含在OS鏡像中

導(dǎo)出向?qū)Э梢詫?dǎo)出目錄中的屬性給其它PB使用者

基本配置(Baseconfigurations)是創(chuàng)建用戶特定定制OS的起點(diǎn)PB能做什么?(2)WindowsCE測(cè)試套件(TestKit)提供了整套驅(qū)動(dòng)測(cè)試工具

內(nèi)核調(diào)試器可以調(diào)試定制的OS鏡像,同時(shí)提供給用戶鏡像運(yùn)行狀況的信息

應(yīng)用調(diào)試器可以調(diào)試在特定OS上運(yùn)行的應(yīng)用程序

遠(yuǎn)程工具可以調(diào)試基于WindowsCE的目標(biāo)機(jī)上運(yùn)行任務(wù),并獲取相關(guān)信息

模擬器通過(guò)模擬硬件可以加快和簡(jiǎn)化開發(fā)過(guò)程,使用戶可以在宿主機(jī)上完成平臺(tái)和應(yīng)用程序的初步開發(fā)

SDK導(dǎo)出向?qū)Э梢詾橛脩魧?dǎo)出一個(gè)特定的軟件支持包(softwaredevelopmentkit—SDK).平臺(tái)向?qū)?PlatformWizard)平臺(tái)向?qū)椭阋徊讲降膭?chuàng)建一個(gè)基于WindowsCE的平臺(tái)使用平臺(tái)向?qū)У?步選擇一個(gè)安裝的BSP為你的設(shè)備選擇一個(gè)基本平臺(tái)配置

為你的設(shè)備選擇配置變量

為你的平臺(tái)選擇其它的屬性PlatformBuilder用戶界面TextEditorWorkspaceWindowSearchTextConnectivityDeviceNameOutputWindowsDebugtoolstatusindicatorsMultipleviewsoftheworkspaceBuildConfiguration目錄(Catalog)包含BSPs,驅(qū)動(dòng),OS內(nèi)核配置和平臺(tái)管理器等,在目錄中出現(xiàn)的所有項(xiàng)目包含了你所設(shè)計(jì)的CE平臺(tái)所使用到的屬性BSP:BoardSupportPackagesCoreOS:includesheadlessdevicesanddisplay-baseddevices:ApplicationsandServicesDevelopmentApplications-EndUserCommunicationServicesandNetworkingCoreOSServicesFileSystemsandDataStoreFontsInternationalInternetClientServicesMultimediaTechnologiesSecurityShellandUserInterfaceDeviceDriversPlatformManager目錄(Catalog)項(xiàng)屬性組(FeatureGroup)和屬性(Feature)屬性組定義了通用的屬性而沒有定義具體的實(shí)現(xiàn)。屬性組在你選擇一個(gè)實(shí)現(xiàn)的時(shí)候才被解析,這個(gè)實(shí)現(xiàn)決定了它的具體功能。一個(gè)屬性是OS組件的任何一個(gè)邏輯群Feature圖標(biāo)圖標(biāo)描述BSPCoreOSdesignCatalogitemgroup.RequiredCatalogitem.OptionalCatalogitem.Catalogitem,type,orimplementationexcludedfromthecurrentOSdesign.FolderCatalogitemthathasoneormorespecialnotifications.CatalogpropertiesforaspecificimplementationofaCatalogitem.Implementation

Feature圖標(biāo)(2)圖標(biāo)描述User-specifiedCatalogitem.Catalogitem(optional).Catalogitemthatcanbebuiltbutisexcludedfromtherun-timeimage.Catalogitemexcludedfromthebuildandtherun-timeimage.Sourcecodefile.Feature選項(xiàng)顯示備選feature信息.Feature依賴關(guān)系顯示備選feature的依賴關(guān)系挑戰(zhàn)了解盡可能多的features挑戰(zhàn)豐富的經(jīng)驗(yàn)和知識(shí)沒有這些不能設(shè)計(jì)合理的平臺(tái)WindowsCE上可以使用簡(jiǎn)體中文?WindowsCE支不支持VBScript?關(guān)于屬性的功能可參照:有關(guān)WindowsCE.NET->CatalogFeaturesPlatformSetting使你可以瀏覽和修改關(guān)于整個(gè)平臺(tái)的每個(gè)屬性的選項(xiàng)菜單:Platform->Settings…BuildOptions(1)EnableCETargetControlSupport選擇該選項(xiàng)可以在啟動(dòng)時(shí)使能目標(biāo)控制功能(targetcontrolsupport).選擇這一項(xiàng)同時(shí)也打開了內(nèi)核無(wú)關(guān)傳輸層(KernelIndependentTransportLayer—KITL).EnableEbootSpaceinMemory

選擇該選項(xiàng)可以在Config.bib文件中預(yù)留內(nèi)存空間,允許在啟動(dòng)過(guò)程中操作系統(tǒng)可以讀取bootloader存儲(chǔ)的數(shù)據(jù).EnableEventTrackingduringBoot選擇該選項(xiàng)可以開啟事件跟蹤子系統(tǒng)(event-trackingsubsystem).EnableFullKernelMode

選擇該選項(xiàng)可使線程運(yùn)行在內(nèi)核模式,選擇該模式會(huì)使系統(tǒng)較脆弱,但是性能會(huì)有所提高.EnableImageforFlash選擇該選項(xiàng)可以使編譯好的鏡像下載后被燒寫的到Flash中BuildOptions(2)EnableKernelDebugger

允許調(diào)試器建立宿主機(jī)和目標(biāo)機(jī)間的鏈接和傳送調(diào)試信息EnableKITL

要建立宿主機(jī)和目標(biāo)機(jī)間的通訊就必須選擇該選項(xiàng),取消該項(xiàng)也會(huì)同時(shí)取消被選定的“EnableCETargetControlSupport”選項(xiàng)EnableProfiling選擇該選項(xiàng)可以將WindowsCE的有關(guān)內(nèi)核的信息以日志的形式裝入平臺(tái)鏡像中EnableShipBuild這是一個(gè)有條件編譯的標(biāo)志,設(shè)置它表示OS會(huì)提供詳細(xì)的調(diào)試信息來(lái)幫助調(diào)試.FlushEventstoReleaseDirectory選擇該選項(xiàng)將事件放入release目錄,同時(shí)開啟事件跟蹤平臺(tái)配置文件PlatformBuilder使用兩類配置文件:

原碼配置文件Build工具使用原碼配置文件去build模塊、屬性,同時(shí)為你的OS鏡像build原碼

鏡像配置文件MakeBinaryImage工具調(diào)用相應(yīng)的工具,這些工具使用鏡像配置文件來(lái)產(chǎn)生OS鏡像原碼配置文件文件類型描述DirsFile描述包含源代碼的子目錄SourcesFile包含要編譯的代碼及宏MakefileFileMakefile鏡像配置文件參數(shù)視圖配置文件:.BIB文件表明應(yīng)該被包含在鏡像中的模塊和組件包含4個(gè)部分的文本文件:文件部分:為靜態(tài)數(shù)據(jù)文件預(yù)留的內(nèi)存模塊部分:指定被裝載到內(nèi)存中的目標(biāo)模塊;Name Path MemoryTypeTahoma.ttf $(_FLATRELEASEDIR)\Tahoma.ttfNK SHUTaskman.exe $(_FLATRELEASEDIR)\Taskman.exeNK

配置文件:.BIB文件內(nèi)存部分

定義平臺(tái)的內(nèi)存信息劃分物理內(nèi)存的數(shù)據(jù)存儲(chǔ)和程序存儲(chǔ)部分配置部分不是必須的用來(lái)設(shè)置屬性等Name Startaddress Size(bytes) Type

NK 8C800000 00800000 RAMIMAGE

RAM 8C050000 007AFFFF RAM配置文件:.REG文件定義默認(rèn)的注冊(cè)設(shè)置COMMON.REG,IE.REG,WCEAPPS.REG,WCESHELL.REG:為WindowsCE模塊定義注冊(cè)設(shè)置PLATFORM.REG:與平臺(tái)相關(guān)的注冊(cè)設(shè)置,如驅(qū)動(dòng)入口等PROJECT.REG:定義與你的工程相關(guān)的注冊(cè)設(shè)置[HKEY_LOCAL_MACHINE\init]“Launch10”=“shell.exe”“Launch20”=“device.exe”配置文件:.DAT文件定義鏡像的文件夾結(jié)構(gòu)COMMON.DAT,IE.DAT,WCEAPPS.DAT,WCESHELL.DATPLATFORM.DATPROJECT.DAT例子:Root:-Directory(“ProgramFiles”)Directory(“\ProgramFiles”):-Directory(“MyProjects”)Root:-Directory(“MyDocuments”)Directory(“\MyDocuments”):-File(“MyFile.doc”,“\Windows\Myfile.doc”)配置文件:.DB文件定義默認(rèn)的鏡像數(shù)據(jù)庫(kù)COMMON.DB,WCEAPPS.DB,WCESHELL.DB這些.DB文件是與Common,Wceapps,andWceshell模塊相關(guān)的數(shù)據(jù)庫(kù)PLATFORM.DB該文件包含特定平臺(tái)的默認(rèn)數(shù)據(jù)庫(kù)

PROJECT.DB該文件特定工程的默認(rèn)數(shù)據(jù)庫(kù)產(chǎn)生鏡像整合release文件夾中的文件來(lái)生成WindowsCE鏡像過(guò)程整合配置文件:

所有的.bib文件到CE.BIB

所有的.reg文件到REGINIT.INI

所有的.dat文件到INITOBJ.DAT

所有的.db文件到INITDB.INI壓縮reginit.ini到二進(jìn)制注冊(cè)文件(DEFAULT.FDF)由于語(yǔ)言的適配,替換.exeand.dll中的資源forlanguageadaptation生成WindowsCE鏡像(NK.BIN)Build的幾個(gè)階段Sysgen階段FeatureBuild階段ReleaseCopy階段MakeImage階段當(dāng)你在IDE的Biuld菜單下選擇

BuildPlatform

命令時(shí),系統(tǒng)創(chuàng)建平臺(tái)依次經(jīng)歷了以下4個(gè)過(guò)程:Sysgen階段任務(wù)鏈接相應(yīng)的靜態(tài)庫(kù)到模塊MakeSDK過(guò)濾系統(tǒng)頭文件,產(chǎn)生只包含為聲明被平臺(tái)導(dǎo)出的函數(shù)的頭文件.為系統(tǒng)模塊產(chǎn)生輸入庫(kù)構(gòu)建板級(jí)支持包(BSP)SystemGenerationCompleteheaderandsourcecodefilesCompletesystemlibrariesModuledefinitions(.def)Cesysgen.batSystem-specificheaderfilesLinkedlibrariesSpecific.deffilesSYSGEN.BATFeatureBuild階段任務(wù)所有的用戶屬性,包括PB工程文件(.pbp),dirs文件,源文件,makefiles(.mak)被編譯和創(chuàng)建ReleaseCopy階段任務(wù)拷貝所有用戶生成OS鏡像所需的文件到release目錄下,在Sysgen階段生成的模塊和文件首先被拷貝,接著是FeatureBuild階段生成的模塊和文件.MakeImage階段任務(wù)Rrelease目錄中的文件被整合的二進(jìn)制鏡像文件Nk.bin中.這一階段對(duì)應(yīng)Build菜單下的

MakeImage

命令

Build過(guò)程COMMONDATASYNCDCOMDIRECTXIERDPSCRIPTSERVERSWCEAPPSFEWCESHELLFE…..\cesysgen\ddk..\cesysgen\oak..\cesysgen\sdk\target,\filesStep1.SystemGenerationStep2.BuildStep3.BuildingtheReleaseDirectoryStep4.MakinganImageNK.BIN..\platform\..\target,\files%_FLATRELEASEDIR%Build結(jié)果nk.bin:WindowsCE二進(jìn)制鏡像數(shù)據(jù)格式運(yùn)行時(shí)必須首先裝載到內(nèi)存中.由數(shù)據(jù)段和代碼段組成nk.nb0:二進(jìn)制數(shù)據(jù)文件格式能夠被轉(zhuǎn)載到Flash中可以以XIP模式運(yùn)行XIP介紹ExecuteInPlace的簡(jiǎn)稱程序的執(zhí)行可以直接在ROM中,而不是必須得先裝載到RAM中

被NORflash類型的閃存支持如何解決Build中的錯(cuò)誤查看Output

窗口NoenoughharddiskspaceCompile&linkerror檢查WINCE420根目錄下的Build.log&Build.err

文件詳細(xì)的輸出信息Windows編程經(jīng)驗(yàn)和知識(shí)是你解決問(wèn)題的關(guān)鍵解釋BuildErrorsSysgen階段的錯(cuò)誤Causedbymissingfiles,missingconfigurationoftheoperatingsystemfeatures,andapplicationsbuiltduringtheSysgenphaseModulebuild階段的錯(cuò)誤CompilationerrorsorunresolvedlinkerrorsBuildingthereleasedirectory階段的錯(cuò)誤FilecopyerrorsMakinganimage階段的錯(cuò)誤Romimage.exefailedinCE.BIBRomimage.exefailedinreginit.iniWarning:Imageexceeds作業(yè)閱讀在線文檔“CEPCHow-toTopics”和“Tutorial:UsingPlatformBuilderwithaCEPC”,x86硬件平臺(tái)上下載、運(yùn)行自己的一個(gè)WindowsCE提示:制作wince的啟動(dòng)盤和配置IP地址用cepcBSP創(chuàng)建你的WinCE用你的啟動(dòng)盤啟動(dòng)系統(tǒng)通過(guò)TCP/IP鏈接、下載目錄介紹PlatformBuilder用戶界面UI目錄(Catalog)and特性(Feature)配置平臺(tái)平臺(tái)創(chuàng)建流程Build系統(tǒng)定制目錄Catalog應(yīng)用程序開發(fā)回顧Getplatform&SDKfromOEMsCoding&TestingReleasetoManufactureExportyourSDK平臺(tái)創(chuàng)建流程得到特定軟件開發(fā)板(specifiedSoftwareDevelopmentBoard—SDB)的BSP用PlatformBuilder定制平臺(tái)通過(guò)SDB下載、調(diào)試和運(yùn)行平臺(tái)為你的平臺(tái)構(gòu)建發(fā)布版系統(tǒng)第一步:獲得BSPMicrosoftCEPC第三方OEMsMotorolaDragonballAdvantech7230…生成自己的BSP后面討論…從哪獲得BSP?安裝和使用BSP如果BSP是以MSI文件提供,象其它的軟件那樣安裝它如果BSP是以源文件的形式提供,在PB中添加相應(yīng)的.CEC文件注意:你必須首先在PB中安裝了相應(yīng)CPU的支持演示:

安裝和使用MotorolaDragonBallMXLBSP第二步:定制平臺(tái)在Microsoft提供的模板中選擇一個(gè),在它的基礎(chǔ)上進(jìn)行修改從頭定制HLBaseandIABaseHL意思headless,表示該OS沒有圖形用戶界面GUI如果選擇IABase,OS包含GUI第三步:通過(guò)SDB下載、調(diào)試和運(yùn)行平臺(tái)獲得EbootorSboot配置網(wǎng)絡(luò)配置串行調(diào)試接口(可選)配置PlatformBuilder鏈接下載OS鏡像到板子常規(guī)步驟:獲得EbootorSbootBootloader通常做為BSP的一部分由OEMs提供.bootloader的目的是裝載OS鏡像到內(nèi)存中,然后跳到OS啟動(dòng)程序Eboot:EthernetBootloaderSboot:SerialBootloader通常在release版中被除去各種BootloaderFlashintoflashRomUsebootfloppydiskUseCFcard…唯一的目的:下載OS鏡像為串口配置網(wǎng)絡(luò)只插串口鏈接線缺點(diǎn):太慢為以太網(wǎng)配置網(wǎng)絡(luò)用Hub為以太網(wǎng)配置網(wǎng)絡(luò)使用獨(dú)立的網(wǎng)絡(luò)鏈接配置串行調(diào)試接口插RS232串口適配器到ADS板和你主機(jī)上默認(rèn)的COM口.選擇StartMenu→Programs→Accessories→Hyperterminal→Hyperterminal去激活一個(gè)Hyperterm窗口超級(jí)終端配置PB鏈接從Target->ConfigureRemoteConnection配置PB鏈接Eboot會(huì)向LAN發(fā)送廣播包,PB接收和顯示設(shè)備ID下載OS鏡像到板子在PB中點(diǎn)擊Target→Download/Initialize.在設(shè)備的屏幕上你會(huì)看到我們到哪了?Gethardware&BSPfromOEMsNeedplatformcustomization?Getplatform&SDKfromOEMsCustomizeyourWinCEplatformExportyourSDKCoding&TestingReleasetoManufacture目錄介紹PlatformBuilder用戶界面UI目錄(Catalog)and特性(Feature)配置平臺(tái)平臺(tái)創(chuàng)建流程Build系統(tǒng)定制目錄CatalogPB目錄結(jié)構(gòu)DirectoryDescriptionOthersRun-timefiles,binaryfilesforbuildingOSimagefiles,registryfiles,andbatchfilesthatareusedtoaddfilestoanOSimage.PlatformBSPandDevice-specificfilesanddirectories.PrivateSourcecodefortheWindowsCEOS.PublicDirectoriesfortheWindowsCEOSconfigurations.SDKToolsandlibrariesintheWindowsCESDKthatsupportPlatformBuilder.環(huán)境變量%_WINCEROOT%-WindowsCE安裝的根目錄通常為C:\WINCE500%_PUBLICROOT%-%_WINCEROOT%\PUBLIC%_PLATROOT%-%_WINCEROOT%\Platform其它在build窗口的命令提示符中使用‘set’

可以查看當(dāng)前的環(huán)境變量包含與特定硬件平臺(tái)相關(guān)的BSP文件定位在以下目錄%_WINCEROOT%\Platform包含以下子目錄每一個(gè)目錄用于描述某一特定WindowsCE平臺(tái)的應(yīng)用每一目錄包含一個(gè)dirs文件和至少

一個(gè)特定BSP的批處理文件將你與該特定硬件平臺(tái)相關(guān)的文件放入對(duì)應(yīng)目錄Platform目錄Public目錄包含與平臺(tái)無(wú)關(guān)的組件和配置設(shè)置定位在以下目錄%_WINCEROOT%\Public包含以下子目錄:模塊、組件子目錄Common,Wceshellfe,Wceappsfe,IE,Servers相關(guān)配置子目錄-CEBASESDK目錄定位在以下目錄%_WINCEROOT%\SDK包含支持PlatformBuilder的工具ProcessorcompilersDevelopmenttoolsMiscellaneousutilitiesOthers目錄定位在以下目錄%_WINCEROOT%\OTHERS包括以下子目錄:ATL:包含調(diào)試用的ATL頭文件,庫(kù)和原碼等DOTNET:包含.NET可用的各處理器的二進(jìn)制文件和portable.NETCompactFramework文件MFC:包含調(diào)試用的MFC頭文件,庫(kù)和原碼等

SAMPLES:包含MFC和ATL應(yīng)用例程WCETK:包含WindowsCETestKit(CETK)相關(guān)二進(jìn)制文件Private目錄定位在以下目錄%_WINCEROOT%\PRIVATE在安裝的時(shí)候必須檢查選項(xiàng),與SharedSourceLicense項(xiàng)保持一致你可以裝載你的產(chǎn)品的最新版私人代碼Premium(“Almosteverything”)Source都是可用的包括的:KernelGWEScomponentsFilesyscomponents回顧Build的4個(gè)步驟2134

SYSGEN根據(jù)OS設(shè)計(jì)配置過(guò)濾模塊和組件Build使用DIRS,SOURCES和OS設(shè)計(jì)工作空間為BSP和應(yīng)用build原碼BUILDREL拷貝文件到release目錄下MakeImage用release目錄里的文件身成OS實(shí)時(shí)鏡像1234BuildSystem概述IDE作為客戶端,通過(guò)命令行創(chuàng)建buildsystem.命令行工具使用環(huán)境變量確認(rèn)Build設(shè)置,并調(diào)用編譯器和連接器命令行工具存放在:%_PUBLICROOT%\COMMON\OAK\MISC環(huán)境變量重要目錄%_WINCEROOT%%_PublicRoot%可選的OS屬性SYSGEN_AYGSHELLSYSGEN_BATTERYSYSGEN_STANDARDSHELLPlatform->SettingoptionsIMGAUTOFLUSHWINCESHIPIMGRAM64原碼結(jié)構(gòu)DIRSSOURCESMakeFilemakefile.defDIRS文件DIRS類似工作空間“Workspace”中包含的工程“projects”列表文本文件列出了包含其它DIRSorSOURCES文件的目錄列表BUILD.EXE通過(guò)讀DIRS文件確定build的內(nèi)容例如:DIRS=\ Eboot\ DriversSOURCESSOURCES工程的源文件列表TARGETNAME輸出目標(biāo)名(非擴(kuò)展)TARGETTYPEPROGRAM–(.EXE)ApplicationDYNLINK–(.DLL)DynamicLinkLibraryLIBRARY–(.LIB)Staticlibrary文件結(jié)構(gòu)文本文件被包含在makefile.def,提供給目標(biāo)機(jī)關(guān)于build的相關(guān)信息MAKEFILE.INCSOURCESMAKEFILE.DEFLocalprojectfolder%_MAKEENVROOT%有用的命

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論