音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

分享我的WindowsCE.net 4.2目錄經(jīng)驗(yàn)

出處:互聯(lián)網(wǎng)    發(fā)布于:2011-09-04 15:22:25

  windowsCE的幫助對(duì)目錄結(jié)構(gòu)進(jìn)行了詳細(xì)的介紹,但還是有遺漏的地方的,下面就將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)SDK\BIN\I386下所存放的就是開發(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, andLink and Nmake.  Miscellaneous utilites This directory contains the utilities, such as Zoomin, and Windiff. 

  2.other
  這個(gè)目錄下的內(nèi)容比較雜,有諸如ATL,MFC的頭文件,運(yùn)行庫等開發(fā)應(yīng)用程序所需的庫文件和其一部分代碼。其中有個(gè)文件目錄對(duì)開發(fā)系統(tǒng)來說是比較重要的,就是CETK的客戶端OTHERS\WCETK,通過該目錄下的文件可以訂制自己的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)\public\common\cesysgen\CeSysgenPlatform.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è)目錄下的文件都來自于PUBLIC\COMMON\OAK\DRIVERS\ETHDBG所提供的模版改寫得到,因此發(fā)現(xiàn)該目錄下文件使用到未知的函數(shù)時(shí)都可以到上述文件中尋找答案。(bootloader的源文件是完整的,有興趣的男男女女都大可研究一下) 。
  FILES下面就是一個(gè)雜物倉庫,里面可能有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和語音識(shí)別,的??!不過只支持漢語和英語還有日語的TTS其他的語言一概不支持。同樣也是不開放代碼,順便說一句,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%\OTHERS\DOTNET下面。
  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)制的鏈接庫。值得注意的是SDK目錄下面的sample目錄下提供比如:regsvr32等等常用的工具。

  4.14 DATASYNC
  Device-side communication components.

  5 public\common\OAK\driver
  不要以為這個(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,說白了就是音頻編碼器,做傳輸用途做voip這類的東西時(shí)還是比較有用的。GSM610在同名目錄下,另外的幾個(gè)ACM在MSFILTER目錄下。PCMCONV故名思義就是PCM converter了。

  ├─BATTDRVR

  電池驅(qū)動(dòng)。

  ├─BLOCK

  │ ├─ATADISK

  │ ├─ATAPI

  │ ├─MSFLASHFMD

  │ │ ├─ECC

  │ │ ├─INC

  │ │ ├─SDNPCI

  │ │ │ ├─SDNPCID

  │ │ │ └─SDNPCIK

  │ │ └─STRATA

  │ │ ├─STRATAD

  │ │ └─STRATAK

  │ ├─RAMDISK

  │ │ ├─DRIVER

  │ │ └─LOADERDriver Code Structure

  │ └─SDMMC

  BLOCK目錄下面就是windowsCE提供的所有的block驅(qū)動(dòng)。包括PCCARD接口的硬盤/光驅(qū),F(xiàn)lash,以及ramdisk和SD card /MMC card的驅(qū)動(dòng)程序。

  ATAPI是PCI總線的ATA控制器驅(qū)動(dòng),盡管只有一個(gè)目錄內(nèi)容卻是不少的這里面包含了ALI的1543,promise的20262,intel 82371ATA控制器/南橋芯片的驅(qū)動(dòng)程序。ATADISK是PCMCIA ATA卡的驅(qū)動(dòng)。另外還有PCI總線界面的SD/NANDFLASH/MMC卡,以及平面接口的NORFLASH的驅(qū)動(dòng)程序。RAMDISK是使用內(nèi)存模擬存儲(chǔ)系統(tǒng)的例子。

  ├─BLUETOOTH

  │ ├─DRIVERS

  │ │ ├─WCESTREAMBT

  │ │ └─WENDYSER

  │ ├─PROFILES

  │ │ └─HID

  │ │ ├─BASE

  │ │ ├─PARSER

  │ │ └─PB

  │ ├─SAMPLE

  │ │ ├─ASUI

  │ │ ├─BTCP

  │ │ ├─BTDC4.15 COMMON

  │ │ ├─BTDIALER

  │ │ ├─BTDIALP

  │ │ ├─BTECHO

  │ │ ├─BTENUM

  │ │ ├─BTFILTER

  │ │ ├─BTHEADSET

  │ │ │ ├─BTAUDIOGW

  │ │ │ ├─BTHSAGW_CE

  │ │ │ ├─BTHSAGW_MDD

  │ │ │ ├─HEADSETCTL

  │ │ │ ├─INC

  │ │ │ ├─PLAY

  │ │ │ └─TALK

  │ │ ├─BTHLINK

  │ │ ├─BTHNSCREATE

  │ │ ├─BTLOADER

  │ │ ├─BTMODEM

  │ │ ├─BTPAIR

  │ │ ├─BTSVC

  │ │ ├─COMTEST

  │ │ ├─DUNPORT

  │ │ ├─FCTEST

  │ │ ├─GW

  │ │ ├─HCITEST

  │ │ ├─L2CAPAPI

  │ │ ├─L2CAPDEV

  │ │ ├─OPTTEST

  │ │ ├─PHONEUI

  │ │ ├─PRINTUI

  │ │ ├─SCA

  │ │ ├─SDPCOMMON

  │ │ ├─SDPPRINT

  │ │ ├─SDPSEARCH

  │ │ ├─SOCKTEST

  │ │ └─SSA

  │ └─TRANSPORTS

  │ ├─AMBICOM

  │ ├─BCSP

  │ ├─SC

  │ ├─UART

  │ ├─UNIV

  │ ├─USB

  │ └─WSS

  │ └─INC

  這個(gè)目錄下的是關(guān)于藍(lán)牙的支持,我沒看過,也就不亂說了。

  ├─CALIBRUI

  這個(gè)目錄是一個(gè)觸摸屏校準(zhǔn)的例子。

  ├─CEDDK

  │ ├─DDK_BUS

  │ ├─DDK_DMA

  │ ├─DDK_IO

  │ ├─DDK_MAP

  │ ├─DDK_TIME

  │ ├─DLL

  │ └─TEST

  │ ├─ISAENUM

  │ └─PCIENUM

  由于嵌入式系統(tǒng)的硬件架構(gòu)千差萬別所以在定制DDK的時(shí)候需要為自己的硬件系統(tǒng)專門實(shí)現(xiàn)一套一般操作的硬件抽象層,以供其它開發(fā)者使用這些一般的操作能夠控制掛接的設(shè)備,這些操作通常包括總線,DMA,IO,計(jì)時(shí)器等資源,以該目錄的為一套x86的DDK的接口抽象。

  ├─CERDISP

  │ ├─CERDISP

  │ ├─CERHOST

  │ └─INC

  遠(yuǎn)程顯示的例子。這個(gè)遠(yuǎn)程顯示就是windowsCE特性里面的那個(gè)。

  ├─DISPLAY

  │ ├─AABLT

  │ ├─ATI

  │ ├─DDGPE

  │ ├─DISPPERF

  │ ├─EMUL

  │ ├─EMULROTATEPERM3

  │ ├─EMULSTUB

  │ ├─GPE

  │ ├─GPEROTATE

  │ ├─MQ200

  │ ├─NOPDISP

  │ ├─PERM3

  │ ├─PERM3_CFG

  │ ├─RFLAT

  │ ├─SWG

  │ ├─TVIA5000

  │ └─VGAFLAT

  顯示部分的東西就比較多了,aablt是抗鋸齒的例子,DDGPE是帶DDraw的GPE驅(qū)動(dòng)的例子,DISPPERF是測(cè)試驅(qū)動(dòng)效率的一段代碼,夾在自己的程序里面可以做測(cè)用。,SWG是Microsoft Software Graphics Library的源代碼,沒有看完不知道齊不齊。以mul開頭的都是模擬圖形處理源代碼,還有g(shù)pe的源代碼,帶旋轉(zhuǎn)能力的gpe的源代碼。上面能說的這幾個(gè)在display 目錄下的程序都不是驅(qū)動(dòng)程序,應(yīng)該算是windowsCE GWES顯示部分的一些源代碼盡管沒有提供完整的代碼但從這些個(gè)零散的代碼也能看出windowsCE的圖形庫的基本結(jié)構(gòu)了,還是很有研究?jī)r(jià)值的,更況且這個(gè)和winnt的架構(gòu)是如此的相似:P

  NODISP是個(gè)比較特殊的顯示驅(qū)動(dòng)的例子,它滿足GDI的借口需求但同時(shí)并沒有實(shí)際的顯示,有PERM3啥用我也沒想明白。

  rflat下面是基于GPERotate的顯示驅(qū)動(dòng),想要旋狀你的屏幕又不想改硬件的可以來看看。至于vgaflat就是模擬器上使用的那個(gè)驅(qū)動(dòng)程序。這段提到的這幾個(gè)驅(qū)動(dòng)程序都是簡(jiǎn)單的顯示驅(qū)動(dòng)程序模版,如果需要自己寫顯示驅(qū)動(dòng)可以拷貝這些代碼保留架構(gòu)重新實(shí)現(xiàn)就可以了,看得出微軟在做這些個(gè)目錄結(jié)構(gòu)的時(shí)候還是為大家考慮得比較周到的。這幾個(gè)驅(qū)動(dòng)都是用在VESA BIOS 2.0 兼容的顯卡上的就是說模擬器就可以使用這些驅(qū)動(dòng),要是想操練顯示驅(qū)動(dòng)又沒有硬件支持的話,可以用這幾個(gè)驅(qū)動(dòng)作試驗(yàn)。

  剩下的那幾個(gè)是幾種特定的顯卡的驅(qū)動(dòng),PERM3是個(gè)比較特別的驅(qū)動(dòng),這是這些驅(qū)動(dòng)里面支持D3D的顯示驅(qū)動(dòng)程序。盡管微軟推薦用這幾個(gè)驅(qū)動(dòng)作為寫代碼的參考,我還是建議大家用上面提到的XXflat的顯示驅(qū)動(dòng)來重新實(shí)現(xiàn)會(huì)比較清晰。

  ├─ETHDBG

  │ ├─3C90X

  │ ├─AM79C970

  │ ├─BLCOMMON

  │ ├─BOOTPART

  │ ├─CS8900

  │ ├─DEC21140

  │ ├─DP83815

  │ ├─EBOOT

  │ ├─EDBGSAMP

  │ ├─KITLETH

  │ ├─NE2000

  │ ├─RNE_MDD

  │ ├─RTL8139

  │ ├─SMC9000

  │ ├─SMSC100

  │ ├─VBDGSTUB

  │ ├─VBRIDGE

  │ └─VMINI

  ETHDBG下面有很多東西,同樣是比較雜。

  blcommon,bootpart,eboot都是寫bootloader所需要的組成部分。我們可以看到platform下面的eboot的代碼調(diào)用了很多其它的函數(shù),那些函數(shù)就是這里的代碼生成的,看不懂bootloader?接著這兒的代碼一起看相信很快就可以看出結(jié)果。blcommon是bootloader的主流程代碼,bootpart是bootloader操作hdd或Flash的相關(guān)代碼,主要是在文件系統(tǒng)層面進(jìn)行操作比如分區(qū)啊什么的,eboot下面包含的內(nèi)容是tftp和dhcp等網(wǎng)絡(luò)協(xié)議的實(shí)現(xiàn),但不包含hal代碼。KITLETH是kitl下以太網(wǎng)transport的硬件無關(guān)實(shí)現(xiàn),包含DHCP和UDP協(xié)議的實(shí)現(xiàn)。

  EDBGSAMP下面應(yīng)該是TCP/Ip transport的實(shí)現(xiàn),目的是通過以太網(wǎng)卡實(shí)現(xiàn)調(diào)試信息通道,過對(duì)這個(gè)我沒有去驗(yàn)證過不是很確定。

  3C90X AM79C970 CS8900 DEC21140 DP83815 NE2000 RTL8139 SMC9000 SMSC100都是針對(duì)芯片的驅(qū)動(dòng)代碼,bootloader可以利用它們作為ethernet和KITL的HAL但是必須將這些"驅(qū)動(dòng)"與windowsCE的驅(qū)動(dòng)程序區(qū)別開來,這些驅(qū)動(dòng)僅僅是能用于作為操作系統(tǒng)下的HAL使用,而不是系統(tǒng)網(wǎng)絡(luò)部分的網(wǎng)卡驅(qū)動(dòng)。

  RNE_MDD KITLETH VBDGSTUB VBRIDGE VMINI 都是關(guān)于kitl的代碼,KITLETH是kitl的以太網(wǎng)傳輸實(shí)現(xiàn),vbridge和vmini是虛擬網(wǎng)橋和網(wǎng)卡,這兩個(gè)部分的目的在于建立kitl ethernet transport 的同時(shí)windowsCE能共享以太網(wǎng)用作傳輸。vDBGSTUB是vbirdge的簡(jiǎn)實(shí)現(xiàn)(啥都不干)。

  RNE_MDD是R-ndis的MDD支持??梢耘cCommon\Oak\Drivers\Rndisfn\net2890配合使用。

  ├─FSD

  │ ├─ENCFILT

  │ ├─FATUTIL

  │ │ ├─MAIN

  │ │ ├─NOUI

  │ │ └─UI

  │ ├─FSDSPY

  │ └─REGPART

  FSD不用說,就是文件系統(tǒng)驅(qū)動(dòng)了,這個(gè)是上層的驅(qū)動(dòng)程序與具體的硬件代碼無關(guān)。FATUTIL提供了一系列的支持,比如格式化,磁盤掃描這類的程序。ENCFILT里面提供了加密的途徑,要加密這里來。而FSDSPY估計(jì)是偵測(cè)文件系統(tǒng)的,具體使用方法和用途不詳。REGPART是一個(gè)partition驅(qū)動(dòng)的例子,作用同樣也是模版。構(gòu)建好自己的partition驅(qū)動(dòng)以后可以像調(diào)用mspart.dll來操作。

  ├─GDCFG

  這個(gè)是Generic Device Configuration是和PCI總線相關(guān)的代碼,看代碼大概是總線設(shè)備通常行為管理和控制的用途,由于知識(shí)的匱乏,不知道具體干什么用的。

  ├─GIISR

  Generic installable ISR的例子。

  ├─HELPER

  傳聞是注冊(cè)已配置的PCI設(shè)備的代碼,同樣我不清楚。

  ├─IMEJPN

  ├─IMEJPP

  │ ├─COMMONCODE

  │ ├─DICMAKE

  │ │ └─BIN

  │ └─IMEUI

  這兩個(gè)目錄都是輸入法-IME相關(guān)的,還是不懂。

  ├─IRMAC

  │ ├─INC

  │ ├─IRSIR

  │ └─UTILS

  紅外線端口的驅(qū)動(dòng)程序。

  ├─KEYBD

  │ ├─DEVICELAYOUTS

  │ │ ├─PS2_AT

  │ │ │ ├─00000409

  │ │ │ ├─00000411

  │ │ │ ├─00000412

  │ │ │ └─00010411

  │ │ └─REMAP

  │ │ └─NUMPADRMP

  │ ├─DLL

  │ │ ├─KBD8042JPN1

  │ │ ├─KBD8042JPN2

  │ │ ├─KBD8042KOR

  │ │ ├─KBD8042US

  │ │ ├─KBDNOPJPN1

  │ │ ├─KBDNOPJPN2

  │ │ ├─KBDNOPKOR

  │ │ └─KBDNOPUS

  │ ├─HIDIOCTL

  │ ├─INPUTLANGS

  │ │ ├─0409

  │ │ ├─0411

  │ │ └─0412

  │ ├─IST

  │ ├─LAYMGR

  │ ├─NOP

  │ │ ├─PDD

  │ │ └─PDDLIST

  │ ├─PS2_8042

  │ └─TEST

  鍵盤驅(qū)動(dòng)及其測(cè)試程序。

  ├─LMEMDEBUG

  這個(gè)目錄下的代碼可以使用用戶代碼進(jìn)行內(nèi)存檢測(cè),通常用于測(cè)試內(nèi)存泄露和調(diào)試,有興趣還可以參考private\winceos\coreos\core\lmem目錄下的內(nèi)容。

  ├─MESSAGEDIALOGBOXCUSTOMIZE

  這個(gè)下面就是大名鼎鼎的MessageBox,想要自己的messageBox?容易啊,改掉這個(gè)家伙就可以了。

  ├─MMTIMER

  多媒體時(shí)鐘。

  ├─NDISUIO

  NDIS usermode I/O driver.用途不明。

  ├─NETCARD

  │ ├─DC21X4

  │ ├─DP83815

  │ ├─NE2000

  │ ├─NE2000ISR

  │ ├─NETMUI

  │ ├─RNDISMINI

  │ │ ├─HOST

  │ ├─SMSC100FD

  │ └─XIRCOM.CE2

  這個(gè)目錄下面的是網(wǎng)卡驅(qū)動(dòng)。NE2000ISR相當(dāng)于一個(gè)插件使得ne2000本地驅(qū)動(dòng)可以工作在IISR模式下。netmui據(jù)說是網(wǎng)絡(luò)多用戶支持里面的內(nèi)容簡(jiǎn)單得看不出怎么個(gè)支持法。RNDISMINI是RNDIS的小端口驅(qū)動(dòng),這相當(dāng)于一個(gè)實(shí)現(xiàn)了微軟的remote NDIS Specification 的MDD,這個(gè)程序與RNDISFN 目錄下的PCI-USB界面結(jié)合就可以實(shí)現(xiàn)rNDIS,RNDISFN目錄下面的東西相當(dāng)于是PDD,Host目錄下面的東西是使用RNDISFN作為PDD時(shí),在PC上所需的安裝信息文件,另外所需的RNDIS-USB Kit在微軟的網(wǎng)站上可以下到。

  ├─NETSAMP

  │ ├─ASYNCMAC

  │ ├─AUTORAS

  │ │ ├─DLL

  │ │ └─TEST

  │ ├─CONNMC

  │ ├─ETHMAN

  │ ├─INC

  │ ├─IPCONFIG

  │ ├─IPNAT

  │ │ └─EDITSAMP

  │ ├─IPV6TUN

  │ ├─NDISCONFIG

  │ ├─NDISPWR

  │ ├─NETSTAT

  │ ├─PASSTHRU

  │ ├─PEGTERM

  │ │ ├─APP

  │ │ └─TERMCTRL

  │ ├─PING

  │ ├─RASDIAL

  │ ├─RASENTRY

  │ ├─RASSERVER

  │ ├─RNAAPP

  │ ├─ROUTE

  │ ├─TAPIHELP

  │ ├─TRACERT

  │ ├─WZCTOOL

  │ └─ZCLOG

  這個(gè)目錄下面的東西包括了整個(gè)廣域網(wǎng)協(xié)議從上到下的各個(gè)層面的一些例子和工具,ping netstat route tracert ipconfig這幾個(gè)是大家再熟悉不過的網(wǎng)絡(luò)工具了。其他的我也不是很清楚用途。

  ├─NETUI

  這個(gè)目錄下面的是UI相關(guān)于網(wǎng)絡(luò)的部分,比如控制面板里面的網(wǎng)絡(luò)選項(xiàng),在狀態(tài)欄出現(xiàn)的連接圖標(biāo)等等。

  ├─OOMUI

  OOMUI就是out of memory User Interface…內(nèi)存溢出時(shí)顯示什么東西?就在這兒了。順便說一句所有以UI結(jié)束的目錄都是可定制UI的部分。

  ├─PARALLEL

  這里有并行口模塊驅(qū)動(dòng)的代碼,以及使用該模塊驅(qū)動(dòng)生成并口驅(qū)動(dòng)的例子。

  ├─PCIBUS

  這個(gè)目錄下是PCI總線相關(guān)的代碼,不了解我就不說了。

  ├─PCMCIA

  │ ├─I82365

  │ ├─MDD

  │ ├─TEST

  │ │ ├─DEVTUPLE

  │ │ └─TUPLETST

  │ ├─TI1250

  │ └─TI1250ISR

  同樣,MDD下面就是PCMCIA的模塊驅(qū)動(dòng),另外I82365和ti1250是使用模塊驅(qū)動(dòng)構(gòu)建驅(qū)動(dòng)程序的例子,TI1250ISR是TI1250驅(qū)動(dòng)的IISR.

  ├─PM

  │ ├─BATTERY

  │ ├─MDD

  │ ├─PDD

  │ │ ├─DEFAULT

  │ │ └─PDA

  │ ├─PMSTUBS

  │ └─TEST

  │ ├─DEVSAMPLE

  │ ├─GET

  │ ├─GETD

  │ ├─MON

  │ ├─REQ

  │ ├─SET

  │ └─SETD

  PM就是power management,里面包含電池驅(qū)動(dòng)。PM device的模塊驅(qū)動(dòng),test下面還有使用模塊驅(qū)動(dòng)的例子。PDD目錄下是平臺(tái)相關(guān)的驅(qū)動(dòng)代碼。

  ├─PRINTER

  │ ├─PCL

  │ ├─PRNERR

  │ └─PRNPORT

  看名字像是打印機(jī)相關(guān)的驅(qū)動(dòng),具體內(nèi)容不詳。

  ├─REGENUM

  設(shè)備管理器的注冊(cè)表枚舉器,該目錄下的內(nèi)容可以生成一個(gè)regenum.dll,該鏈接庫由設(shè)備管理器加載并決定了如何使用注冊(cè)表的信息來加載驅(qū)動(dòng),因此在很多場(chǎng)合(由硬件決定的不同的加載方式)都需要自己訂制該鏈接庫,這樣才能正確地加載驅(qū)動(dòng)。

  ├─RNDISFN

  │ └─NET2890

  使用2890建立r-NDIS的例子。

  ├─SAMPTSPI

  TAPI的實(shí)現(xiàn)樣例。

  ├─SERIAL

  │ ├─2890_SER

  │ ├─COM16550

  │ ├─COM_CARD

  │ ├─COM_MDD

  │ ├─COM_MDD2

  │ ├─ISR16550

  │ ├─SER16550

  │ ├─SER_CARD

  │ └─SER_CARD2

  這個(gè)目錄下都是串行驅(qū)動(dòng)的例子,2890_SER是使用USB端口模仿普通串口的行為,這樣子就可以通過RAS用USB端口與桌面PC機(jī)相連接,這是的用法,很多ARM系列的處理器BSP都對(duì)USB function實(shí)現(xiàn)成Serial-unimoden的形式,桌面的驅(qū)動(dòng)可以在activeSync目錄下找到,僅僅需要修改驅(qū)動(dòng)的安裝信息文件就可以直接使用,所以這個(gè)驅(qū)動(dòng)是針對(duì)ActiveSync的實(shí)現(xiàn),如果需要將USB實(shí)現(xiàn)為RNDIS的話所參考的驅(qū)動(dòng)就不再是這個(gè)目錄下的代碼而是RNDIS下的相應(yīng)代碼了,再進(jìn)一步如果需要將該設(shè)備用于你自定義的功能的話<比如與你自己的USB桌面程序同步/>就需要直接將該設(shè)備實(shí)現(xiàn)為流式驅(qū)動(dòng),由此可以看到WindowsCE的驅(qū)動(dòng)的實(shí)現(xiàn)并不時(shí)一塵不變的,實(shí)現(xiàn)的方法由目的決定,是多樣的。com16550是標(biāo)準(zhǔn)的CE串行驅(qū)動(dòng)范例,COM_CARD是PCMICA界面COM口的例子。COM_MDD/2是串口模塊驅(qū)動(dòng),通常我們并不直接位操作系統(tǒng)實(shí)現(xiàn)流式驅(qū)動(dòng)供其調(diào)用,而是編寫與MDD接口相兼容的代碼然后再讓MDD區(qū)實(shí)現(xiàn)流式驅(qū)動(dòng)。這樣來我們僅僅需要將特定的硬件操作封裝成其所需要的程序就可以了而不需要做與系統(tǒng)相關(guān)的諸多工作,該目錄下的代碼就是串行口模塊驅(qū)動(dòng)的源代碼。ISR16550是IISR的例子。ser16550是把16550當(dāng)作標(biāo)準(zhǔn)設(shè)備來使用的驅(qū)動(dòng)的例子,這個(gè)驅(qū)動(dòng)是不使用模塊驅(qū)動(dòng)的。SER_CARD下的驅(qū)動(dòng)是使用ser16550生成的庫編寫的PCMICA界面的串行口的驅(qū)動(dòng)。這個(gè)目錄下面并沒有列舉多個(gè)芯片的驅(qū)動(dòng),而是以16550為例子對(duì)其進(jìn)行了多種方式的實(shí)現(xiàn),對(duì)學(xué)習(xí)windowsCE驅(qū)動(dòng)程序結(jié)構(gòu)還是很有研究?jī)r(jià)值的。

  ├─SKINNABLEUI

  │ ├─COMMCTRL

  │ ├─COMMCTRLXP

  │ ├─GWE

  │ │ ├─BTNCTL

  │ │ ├─CMBCTL

  │ │ ├─CURSOR

  │ │ ├─GCACHE

  │ │ ├─INC

  │ │ ├─LBCTLVIEW

  │ │ ├─NCLIENT

  │ │ ├─SBCMN

  │ │ └─STCCTL

  │ └─GWEXP

  │ ├─BTNCTLVIEWXP

  │ ├─CMBCTLVIEWXP

  │ ├─GCACHEVIEWXP

  │ ├─INC

  │ ├─LBCTLVIEWXP

  │ ├─NCLIENTVIEWXP

  │ ├─SBCMNVIEWXP

  │ └─STCCTLVIEWXP

  這個(gè)目錄下面是定值UI界面的例子,不帶XP后綴的是WinCE下win9X風(fēng)格的公共控件和光標(biāo)等的代碼,而帶XP后綴則是winXP UI元素的代碼。諸如:光標(biāo),button,static,checkbox等

  ├─SMARTCARD

  │ ├─BULLTLP3

  │ ├─PSCR

  │ ├─SMCLIB

  │ └─STCUSB

  SmartCArd相關(guān)的驅(qū)動(dòng)。

  ├─SNMP

  │ └─SNMPTESTMIB

  簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議的測(cè)試軟件代碼,據(jù)說僅僅是對(duì)MIB的測(cè)試。

  ├─STARTUI

  可以通過改寫編譯這下面的代碼改變啟動(dòng)時(shí)運(yùn)行的程序的外觀和功能。

  ├─TCH_CAL

  這個(gè)目錄下的代碼是用于為2D觸摸屏驅(qū)動(dòng)提供坐標(biāo)旋轉(zhuǎn)校準(zhǔn)的能力。

  ├─TEST

  │ └─PCMCIA

  ├─TOUCH

  │ ├─BASIC

  │ ├─TCHMAIN

  │ └─TRNSCRBR

  這里面包括了觸摸屏的MDD和DDI等代碼。

  ├─USB

  │ ├─CLASS

  │ │ ├─COMMON

  │ │ ├─HID

  │ │ │ ├─CLIENTS

  │ │ │ │ ├─CONSHID

  │ │ │ │ ├─KBDHID

  │ │ │ │ └─MOUHID

  │ │ │ └─HIDCLASS

  │ │ ├─PRINTER

  │ │ └─STORAGE

  │ │ ├─CLASS

  │ │ ├─DISK

  │ │ │ └─SCSI2

  │ │ ├─emulatorDbg

  │ │ └─INC

  │ ├─CLIENTS

  │ ├─COMMON

  │ ├─HCD

  │ │ ├─COMMON

  │ │ ├─OHC

  │ │ ├─OHCD2

  │ │ ├─UHC

  │ │ └─UHCD

  │ ├─INC

  │ └─USBD

  該目錄下面是USB相關(guān)的驅(qū)動(dòng),class下面的都是類驅(qū)動(dòng),包括人機(jī)界面(也就是鍵盤鼠標(biāo)),打印機(jī),磁盤/存儲(chǔ)設(shè)備的類驅(qū)動(dòng)。HCD下面的代碼是OHCD和UHCD的驅(qū)動(dòng)代碼。USBD下面是USB 驅(qū)動(dòng)代碼。

  ├─VGACON

  這個(gè)目錄下很有用,如果你不需要GUI而是需要控制臺(tái)的時(shí)候,就可以使用這個(gè)目錄下的驅(qū)動(dòng)。

  ├─WAVEDEV

  │ ├─MDD

  │ ├─PDD

  │ │ ├─ES1371

  │ │ └─TVIA5000

  │ └─UNIFIED

  │ └─ENSONIQ

  聲卡驅(qū)動(dòng),包含MDD和 ES1371 TVIA5000的MDD,至于Unified下面是Unified Audio Model驅(qū)動(dòng)的例子。

  └─WAVEUI

  和前面的Calibrui, Fatui, Netui, Oomui, Startui等一樣,waveui也是用戶自定義界面的一部分,不過這次是相關(guān)聲音輸出的。

  to be continue…

  Prviate 目錄非完全收錄

  WINCE420\PRIVATE\WINCEOS\COREOS\NK\TOOLS\ROMIMAGE

  ├─CATBIN

  ├─CHECKSYMBOLS

  ├─COMPBIN

  ├─COMPRESS

  ├─COMPRESSLZ77

  ├─COMPRESSLZX

  ├─CVRTBIN

  ├─DATA

  ├─DIFFBIN

  ├─MYSTRING

  ├─ROMIMAGE

  ├─SIGNBIN

  │ ├─CE

  │ └─NT

  ├─SORTBIN

  ├─STAMPBIN

  └─VIEWBIN

  這個(gè)目錄下面收錄的都是對(duì)windowsCE鏡像進(jìn)行操作的工作,但這些工具不是在windowsCE上運(yùn)行的,而是桌面PC的程序。

 



  

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!