WindowsCE.net 4.2目錄解析
windowsCE的目錄結(jié)構(gòu)巨大而龐雜,盡管windowsCE的幫助對(duì)這個(gè)龐大的目錄結(jié)構(gòu)進(jìn)行了說明仍然有很多目錄下對(duì)應(yīng)的代碼在windowsCE help沒有介紹其具體用途,下面就將windowsCE的目錄結(jié)構(gòu)進(jìn)行簡(jiǎn)單的介紹。
1.SDK
在windowsCE.net4.2的根目錄下存在PLATFORM,PRIVATE,SDK,OTHERS,PUBLIC五個(gè)目錄。SDK是其中最為簡(jiǎn)單的一個(gè)目錄結(jié)構(gòu)SDKBINI386下所存放的就是開發(fā)所需要的工具集,編譯器等等,在這里我就不再啰嗦了。
The SDK directory contains tools that are used by Platform Builder. However,
it does not contain the tools that are used to build the image. The tools
contained by the SDK directory are:
.. Processor compilers
This directory contains the cross compilers and assemblers for supported
platforms.
.. Development tools
This directory contains the tools such as, Error Lookup, GuidGen, and Link
and Nmake.
.. Miscellaneous utilites
This directory contains the utilities, such as Zoomin, and Windiff.
2.other
這個(gè)目錄下的內(nèi)容比較雜,有諸如ATL,MFC的頭文件,運(yùn)行庫(kù)等開發(fā)應(yīng)用程序所需的庫(kù)文件和其一部分代碼。其中有個(gè)文件目錄對(duì)開發(fā)系統(tǒng)來說是比較重要的,就是CETK的客戶端OTHERSWCETK,通過該目錄下的文件可以訂制自己的Windows CE .NET Test Kit客戶端。
The Others directory contains all the Windows CE runtime libraries and
headers, components for .NET Compact Frameworks, and Samples for ATL
and MFC. The Others directory contains the following subdirectories:
.. ATL
This directory contains ATL headers, libraries and source code for
debugging. The library debug symbols are also included.
.. DOTNET
This directory contains the .NET processor specific binaries and portable
.NET Compact Framework files.
.. MFC
This directory contains MFC Headers, Libraries and Source Code for
debugging. The library debug symbols are also included.
.. SAMPLES
This directory contains the MFC and ATL sample applications.
.. WCETK
This directory contains the Windows CE Test Kit (CETK) processor
specific binaries. CETK provides tests for each class of devices. Within the
CETK, you can choose the appropriate test to perform on your device driver
and the tool remotely runs the tests on your target device.
3.PLATFORM
PLATFORM下存放的就是傳說中的BSP了,這些BSP提供對(duì)各種開發(fā)板的硬件抽象層,bootloader,soc驅(qū)動(dòng)等資源,由此可見這個(gè)目錄下的資源是硬件相關(guān)的,一般說來該目錄下每個(gè)文件夾都對(duì)應(yīng)一個(gè)SDB的,下面以SMDK2410為例說明platform目錄結(jié)構(gòu)的內(nèi)容.
|platform|--smdk2410----|--CESYSGEN
|--DRIVERS------|--DISPLAY
| |--DRVLIB
| |--KEYBD
| |--PCMCIA
| |--PWRBTN
| |--SERIAL
| |--TOUCHP
| |--USB
| |--WAVCLICK
| |--WAVEDEV
|--EBOOT--------|--ARM
| |--BIN
|--FILES--------|--INTLTRNS
|--GWE----------|--BUILDEXE
| |--NLEDDRV
|--INC |
|--KERNEL-------|--BUILDEXE-----|--KERN
| | |--KERNKITL
| | |--KERNKITLPROF
| |--HAL
| |--PROFILER
|--NAND*
|--UTILITIES*
其中NAND和UTILITIES是2410的bsp特有的,NAND包含的是以NANDFLASH為啟動(dòng)介質(zhì)的啟動(dòng)代碼,UTILITIES里面的內(nèi)容是包含調(diào)試信息的可執(zhí)行文件-三星的測(cè)試程序(用ADS的調(diào)試器AXD就可以使用該文件)。
CESYSGEN一般都只有一個(gè)叫makefile的文件,通常該文件指向$(_WINCEROOT)publiccommoncesysgenCeSysgenPlatform.mak 也就是公共的platform生成文件,該文件為產(chǎn)生windowsCE項(xiàng)目提供支持。
DRIVER目錄下的內(nèi)容也是很直接的,也就是各種soc的設(shè)備和板載設(shè)備的驅(qū)動(dòng)。例如:display就是lcd控制器的驅(qū)動(dòng),keybd就是鍵盤驅(qū)動(dòng)等等
eboot目錄下面的文件是ethernet bootloader的源文件,通常這個(gè)目錄下的文件都來自于PUBLICCOMMONOAKDRIVERSETHDBG所提供的模版改寫得到,因此發(fā)現(xiàn)該目錄下文件使用到未知的函數(shù)時(shí)都可以到上述文件中尋找答案。(bootloader的源文件是完整的,有興趣的男男女女都大可研究一下)
FILES下面就是一個(gè)雜物倉(cāng)庫(kù),里面可能有BSP提供的應(yīng)用程序和生成系統(tǒng)所需要的信息文件。要是想要知道該bsp的入口點(diǎn),調(diào)整鏡像,了解靜態(tài)高內(nèi)存分配等信息大可以到這兒一看,INTLTRNS子目錄下定義了一些字串,這些字串在生成系統(tǒng)的時(shí)候用來替換CEPB生成注冊(cè)表所使用的標(biāo)示。
GWE里面就是GWES的部分了,這里面NLEDDRV下面的文件是LED提示燈的驅(qū)動(dòng),至于buildExe就是生成gwes.exe所需的文件了,事實(shí)上這個(gè)目錄下是空的,因?yàn)槭褂肅SP里面的GWS.lib等所提供的接口已經(jīng)完備了。
INC就是頭文件的聚集地,這個(gè)就不說了。
KERNEL:
這個(gè)目錄結(jié)構(gòu)是整個(gè)bsp的關(guān)鍵所在,內(nèi)核就在這兒誕生。
buildexe目錄下的三個(gè)文件夾-KERN-KERNKITL--KERNKITLPROF分別生成kernel的三個(gè)版本kernel only/kernel with kitl transport/kernel with kitl and profiler,第一個(gè)版本就是最基本的kernel也就是以后用作發(fā)布用的,第二個(gè)提供了kitl傳輸界面,可對(duì)系統(tǒng)進(jìn)行調(diào)試,而kernkitlprof提供了傳輸界面的同時(shí)還提供了專門的性能計(jì)時(shí)器用作測(cè)定系統(tǒng)性能。
PROFILER目錄下面的就是性能計(jì)時(shí)器的代碼。
HAL下面是內(nèi)核硬件抽象層的代碼所在。
基本上platform文件夾就是這個(gè)樣子了,比起后面還沒有說的private和public目錄來說這兩個(gè)文件夾的結(jié)構(gòu)還是相對(duì)簡(jiǎn)單明了的。
我們看看后面都還有什么東西
4.PUBLIC
這個(gè)文件夾是我這輩子見到過的最最可怕的目錄結(jié)構(gòu)之一??偠灾@里面什么東西都有,一個(gè)字"雜",難說得上什么分類。先來看看第一級(jí)子目錄的結(jié)構(gòu)吧。
|public-|--WCESHELLFE *
|--SHELLSDK *
|--SHELL *
|--WCEAPPSFE
|--VIEWERS
|--SQLCE
|--SPEECH
|--SERVERS
|--SCRPIT
|--IE
|--RDP
|--NETCF
|--IABASE
|--HLBASE
|--DirectX
|--DCOM
|--DATASYNC
|--COMMON
COMMON下面的東西很多,現(xiàn)在我們先繞開不說。我還是從上往下說吧(流汗中...)
4.1關(guān)于shell
WCESHELLFE,SHELLSDK,SHELL這三個(gè)目錄下的東西都是shell相關(guān)的(別問我什么是shell,它就是你天天看到,最最熟悉你還不知道它的存在的那個(gè)玩意兒).SHELL下面提供了standshell和AYGSHELL,standShell就是標(biāo)準(zhǔn)的windowsCEshell看起來和tablePC的樣子差不多,其中AYGshell原來是給Pocket PC設(shè)計(jì)的,這兩個(gè)shell都可以在CEPB的IDE里面選。
至于WCESHELLFE,主要是各種windowsShell的組件:
CTLPNL就是控制面板的組件,有了這個(gè)你可以自己做自己的控制項(xiàng),且不愉快?
FTPUPDATE提供了通過ftp升級(jí)firemire的程序,作用也是給大家照貓畫虎
LANG 和INPUTMETHODS 是輸入法支持,這個(gè)我不了解就不亂說了
Taskman 這個(gè)就比較有意思,恐怕很多人都會(huì)需要這個(gè)東西,用這個(gè)shell可以直接生成一個(gè)空的桌面,沒有圖標(biāo),沒有icon,除了藍(lán)色的桌面什么都沒有,不過這個(gè)不能通過IDE選項(xiàng)生成,照幫助也是弄不出來的,需要修改sysgen.bat才行。
至于這個(gè)目錄下面的那些個(gè)什么FILE ,inc,lib與上面提到的同名的文件夾作用差不多,我就不再說了.
shellSDK就比較簡(jiǎn)單了,里面也就是開發(fā)SHELL應(yīng)用程序所要用的head和lib,沒啥好講了。
Modules and components relative to the far-east enabled
shell, such as, task manager and control panel components
4.2 WCEAPPSFE
傳說這里面有word和outlook,我沒弄過,也不清楚。
既然別人這么說我就當(dāng)它有吧。
4.3 VIEWERS
這個(gè)聽名字就知道是干什么的,也就是windowsCE帶的那一對(duì)查看器,比如什么pdf啊,excel啊,word啊什么的,不過都不是source都只是lib了,所以也沒什么大的意思的。
4.4 SQLCE
這個(gè)就是SQLCE的老家,不過和上面一樣,還是沒得改,更沒得寫,一樣的無聊。
4.5 SPEECH
這個(gè)目錄下面是MS SAPI5.0,里面包括了TTS和語(yǔ)音識(shí)別,免費(fèi)的??!不過只支持漢語(yǔ)和英語(yǔ)還有日語(yǔ)的TTS其他的語(yǔ)言一概不支持。同樣也是不開放代碼,順便說一句,file里面有個(gè)voice目錄,那個(gè)是發(fā)聲文件,要想聽別的聲音就要自己換,要是誰知道哪兒有這些vce文件請(qǐng)告訴我一下。
4.6 SERVERS
這個(gè)目錄下主要是windowsCE的網(wǎng)絡(luò)服務(wù)。上次記得有人問我類似路有器的遠(yuǎn)程管理界面(web shell)是怎么弄的,在這兒找答案吧。
4.7 SCRPIT IE
這個(gè)不用說了就是天天用的Internet Explorer還有java-vb script支持所在。其中IE是可以訂制的。
4.8 RDP
該目錄下面提供遠(yuǎn)程桌面的支持(我理解為用于windowsCE的木馬),包括遠(yuǎn)程軟件的客戶端和服務(wù)端。里面有個(gè)第三方軟件,具體的使用方法我也不是很清楚。
4.9 NETCF
Dot Net Compact Framework.事實(shí)上目錄下面是空的,到底這些.net的文件都在那兒呢?看看makefile就可以知道,這里面用到的資源都是來自于前面講過的%WINCEROOT%OTHERSDOTNET下面。
4.10 IABASE
4.11 HLBASE
這兩個(gè)合到一起講,這兩個(gè)目錄存在的目的不是給PB的IDE用的,而是在命令行模式下創(chuàng)建工程的模版,里面有很多.bat文件,對(duì)應(yīng)了一些默認(rèn)的配置,這個(gè)和PB IDE里面的向?qū)且恢碌?。兩個(gè)目錄的區(qū)別在于,一個(gè)帶顯示一個(gè)不帶,這就決定了配置有很多相關(guān)的東西不一樣:如gwes等,所以分開兩個(gè)目錄,使用不同的sysgen.bat文件。在CE5.0中已經(jīng)將這兩個(gè)目錄合二為一了。
Internet Appliance Base Configuration
Headless Base Configuration
4.12 DirectX
DirectX就是DirectX了,看看目錄結(jié)構(gòu)
├─CESYSGEN
Sysgen目錄下
├─OAK
│ ├─FILES
│ │ ├─INTLFILE
│ │ └─INTLTRNS
│ ├─INC
│ ├─LIB
│ └─VOIP
│ ├─VOIPMEDIA_REF
│ ├─VOIPPROV
│ │ ├─FILE
│ │ ├─LDAP
│ │ ├─MANUAL
│ │ ├─MANUAL_CORE
│ │ ├─TEST
│ │ └─XMLHELPER
│ └─VOIPUI
│ ├─APP
│ │ └─RES
│ ├─HELPER
│ ├─IME
│ ├─INC
│ └─STATE
└─SDK
├─INC
├─LIB
└─SAMPLES
├─D3D
│ ├─BOIDS
│ ├─SIMPLE
│ └─TUTORIALS
│ ├─TUT01_CREATEDEVICE
│ ├─TUT02_VERTICES
│ ├─TUT03_MATRICES
│ ├─TUT04_LIGHTS
│ └─TUT05_TEXTURES
├─DDRAW
│ ├─INCLUDE
│ └─SRC
│ ├─DDEX1
│ ├─DDEX2
│ ├─DDEX3
│ ├─DDEX4
│ ├─DDUTIL
│ ├─DONUTS
│ └─MOSQUITO
├─DDVD
│ ├─ANXJTEST
│ ├─DVDPLAY
│ └─DVDSAMPLE
├─DSHOW
│ ├─BASECLASSES
│ │ ├─HEADED
│ │ └─HEADLESS
│ ├─FILTERS
│ │ ├─BALL
│ │ ├─DUMP
│ │ ├─EZRGB24
│ │ └─INFTEE
│ └─PLAYERS
│ ├─CEPLAYIT
│ ├─DDXCLMV
│ ├─HLPLAYIT
│ └─PLAYWND
├─DSOUND
│ ├─CAPTUREECHO
│ └─DSPLAY
├─DXMISC
│ ├─DDCAPS
│ └─DXVIEW
├─MIXER
│ └─TMIX
├─STB
│ └─STBIHOST
├─VOIP
│ └─VOIPDEMO
│ ├─RESOURCES
│ └─SOURCE
└─WMP
└─CEPLAYER
└─RES
4.13 DCOM
該目錄提供DCOM/COM的支持,可惜的是沒有源碼,僅僅是2二進(jìn)制的鏈接庫(kù)。值得注意的是SDK目錄下面的sample目錄下提供比如:regsvr32等等常用的工具。
4.14 DATASYNC
Device-side communication components.
5 publiccommonOAKdriver
不要以為這個(gè)目錄下的東西就像它的名字一樣全部都是驅(qū)動(dòng),事實(shí)上這個(gè)目錄下面有很多驅(qū)動(dòng)和windows組件,我們?cè)趙indowsCE IDE中選取的很多特性的源代碼都在這里,而且這兒提供了很多開發(fā)模版供我們寫代碼使用,個(gè)人認(rèn)為用好這個(gè)目錄是我們是定制自己的windowCE的關(guān)鍵,特色windowsCE就從這里開始。:)
到這里順便說一個(gè)事情,OAK這個(gè)目錄名一直困擾我多年,直到前段時(shí)間有位叫做"土豹子"的兄弟告知才明白,oak原來是OEM adaptation kit的意思。
下面我們就來看看這下面都有什么東西吧。
├─1394
│ ├─DRIVERS
│ │ ├─CLIENT
│ │ │ ├─1394DCAM
│ │ │ ├─AVC_STREAM
│ │ │ └─AVC_VCR
│ │ └─VIRTUAL
│ │ ├─1394DCAM
│ │ ├─AVC_UNIT
│ │ └─AVC_VVCR
│ ├─INC
│ └─TEST
│ ├─DRIVER
│ │ ├─1394DIAG
│ │ ├─1394VDEV
│ │ └─COMMON
│ ├─INC
│ └─UI
│ └─TOPOMAP
1394驅(qū)動(dòng)。
├─ACM
│ ├─ACMDWRAP
│ ├─GSM610
│ ├─MSFILTER
│ └─PCMCONV
├─BATTDRVR
│ └─TEST
│ ├─GETBAT
│ └─SETSTUBBAT
ACM是Audio Compression Manager 的簡(jiǎn)寫也就是音頻壓縮管理器,該目錄下面所提供了G.711 (A-law 和 mu-law 編碼), GSM 610, G.722.1, 和 SIREN,說白
評(píng)論