新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > WindowsCE.net 4.2目录解析

WindowsCE.net 4.2目录解析

作者:时间:2011-02-24来源:网络收藏

windowsCE的目录结构巨大而庞杂,尽管windowsCE的帮助对这个庞大的目录结构进行了说明仍然有很多目录下对应的代码在windowsCE help没有介绍其具体用途,下面就将windowsCE的目录结构进行简单的介绍。
1.SDK
在windowsCE.net4.2的根目录下存在PLATFORM,PRIVATE,SDK,OTHERS,PUBLIC五个目录。SDK是其中最为简单的一个目录结构SDKBINI386下所存放的就是开发所需要的工具集,编译器等等,在这里我就不再啰嗦了。
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
这个目录下的内容比较杂,有诸如ATL,MFC的头文件,运行库等开发应用程序所需的库文件和其一部分代码。其中有个文件目录对开发系统来说是比较重要的,就是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提供对各种开发板的硬件抽象层,bootloader,soc驱动等资源,由此可见这个目录下的资源是硬件相关的,一般说来该目录下每个文件夹都对应一个SDB的,下面以SMDK2410为例说明platform目录结构的内容.
|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为启动介质的启动代码,UTILITIES里面的内容是包含调试信息的可执行文件-三星的测试程序(用ADS的调试器AXD就可以使用该文件)。
CESYSGEN一般都只有一个叫makefile的文件,通常该文件指向$(_WINCEROOT)publiccommoncesysgenCeSysgenPlatform.mak 也就是公共的platform生成文件,该文件为产生windowsCE项目提供支持。
DRIVER目录下的内容也是很直接的,也就是各种soc的设备和板载设备的驱动。例如:display就是lcd控制器的驱动,keybd就是键盘驱动等等
eboot目录下面的文件是ethernet bootloader的源文件,通常这个目录下的文件都来自于PUBLICCOMMONOAKDRIVERSETHDBG所提供的模版改写得到,因此发现该目录下文件使用到未知的函数时都可以到上述文件中寻找答案。(bootloader的源文件是完整的,有兴趣的男男女女都大可研究一下)
FILES下面就是一个杂物仓库,里面可能有BSP提供的应用程序和生成系统所需要的信息文件。要是想要知道该bsp的入口点,调整镜像,了解静态高内存分配等信息大可以到这儿一看,INTLTRNS子目录下定义了一些字串,这些字串在生成系统的时候用来替换CEPB生成注册表所使用的标示。
GWE里面就是GWES的部分了,这里面NLEDDRV下面的文件是LED提示灯的驱动,至于buildExe就是生成gwes.exe所需的文件了,事实上这个目录下是空的,因为使用CSP里面的GWS.lib等所提供的接口已经完备了。
INC就是头文件的聚集地,这个就不说了。
KERNEL:
这个目录结构是整个bsp的关键所在,内核就在这儿诞生。
buildexe目录下的三个文件夹-KERN-KERNKITL--KERNKITLPROF分别生成kernel的三个版本kernel only/kernel with kitl transport/kernel with kitl and profiler,第一个版本就是最基本的kernel也就是以后用作发布用的,第二个提供了kitl传输界面,可对系统进行调试,而kernkitlprof提供了传输界面的同时还提供了专门的性能计时器用作测定系统性能。
PROFILER目录下面的就是性能计时器的代码。
HAL下面是内核硬件抽象层的代码所在。
基本上platform文件夹就是这个样子了,比起后面还没有说的private和public目录来说这两个文件夹的结构还是相对简单明了的。
我们看看后面都还有什么东西

4.PUBLIC
这个文件夹是我这辈子见到过的最最可怕的目录结构之一。总而言之这里面什么东西都有,一个字"杂",难说得上什么分类。先来看看第一级子目录的结构吧。
|public-|--WCESHELLFE *
|--SHELLSDK *
|--SHELL *
|--WCEAPPSFE
|--VIEWERS
|--SQLCE
|--SPEECH
|--SERVERS
|--SCRPIT
|--IE
|--RDP
|--NETCF
|--IABASE
|--HLBASE
|--DirectX
|--DCOM
|--DATASYNC
|--COMMON
COMMON下面的东西很多,现在我们先绕开不说。我还是从上往下说吧(流汗中...)
4.1关于shell
WCESHELLFE,SHELLSDK,SHELL这三个目录下的东西都是shell相关的(别问我什么是shell,它就是你天天看到,最最熟悉你还不知道它的存在的那个玩意儿).SHELL下面提供了standshell和AYGSHELL,standShell就是标准的windowsCEshell看起来和tablePC的样子差不多,其中AYGshell原来是给Pocket PC设计的,这两个shell都可以在CEPB的IDE里面选。
至于WCESHELLFE,主要是各种windowsShell的组件:
CTLPNL就是控制面板的组件,有了这个你可以自己做自己的控制项,且不愉快?
FTPUPDATE提供了通过ftp升级firemire的程序,作用也是给大家照猫画虎
LANG 和INPUTMETHODS 是输入法支持,这个我不了解就不乱说了
Taskman 这个就比较有意思,恐怕很多人都会需要这个东西,用这个shell可以直接生成一个空的桌面,没有图标,没有icon,除了蓝色的桌面什么都没有,不过这个不能通过IDE选项生成,照帮助也是弄不出来的,需要修改sysgen.bat才行。
至于这个目录下面的那些个什么FILE ,inc,lib与上面提到的同名的文件夹作用差不多,我就不再说了.
shellSDK就比较简单了,里面也就是开发SHELL应用程序所要用的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,我没弄过,也不清楚。
既然别人这么说我就当它有吧。

4.3 VIEWERS
这个听名字就知道是干什么的,也就是windowsCE带的那一对查看器,比如什么pdf啊,excel啊,word啊什么的,不过都不是source都只是lib了,所以也没什么大的意思的。

4.4 SQLCE
这个就是SQLCE的老家,不过和上面一样,还是没得改,更没得写,一样的无聊。

4.5 SPEECH
这个目录下面是MS SAPI5.0,里面包括了TTS和语音识别,免费的啊!不过只支持汉语和英语还有日语的TTS其他的语言一概不支持。同样也是不开放代码,顺便说一句,file里面有个voice目录,那个是发声文件,要想听别的声音就要自己换,要是谁知道哪儿有这些vce文件请告诉我一下。

4.6 SERVERS
这个目录下主要是windowsCE的网络服务。上次记得有人问我类似路有器的远程管理界面(web shell)是怎么弄的,在这儿找答案吧。

4.7 SCRPIT IE
这个不用说了就是天天用的Internet Explorer还有java-vb script支持所在。其中IE是可以订制的。

4.8 RDP
该目录下面提供远程桌面的支持(我理解为用于windowsCE的木马),包括远程软件的客户端和服务端。里面有个第三方软件,具体的使用方法我也不是很清楚。

4.9 NETCF
Dot Net Compact Framework.事实上目录下面是空的,到底这些.net的文件都在那儿呢?看看makefile就可以知道,这里面用到的资源都是来自于前面讲过的%WINCEROOT%OTHERSDOTNET下面。
4.10 IABASE
4.11 HLBASE
这两个合到一起讲,这两个目录存在的目的不是给PB的IDE用的,而是在命令行模式下创建工程的模版,里面有很多.bat文件,对应了一些默认的配置,这个和PB IDE里面的向导是一致的。两个目录的区别在于,一个带显示一个不带,这就决定了配置有很多相关的东西不一样:如gwes等,所以分开两个目录,使用不同的sysgen.bat文件。在CE5.0中已经将这两个目录合二为一了。
Internet Appliance Base Configuration
Headless Base Configuration

4.12 DirectX
DirectX就是DirectX了,看看目录结构
├─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二进制的链接库。值得注意的是SDK目录下面的sample目录下提供比如:regsvr32等等常用的工具。

4.14 DATASYNC
Device-side communication components.

5 publiccommonOAKdriver
不要以为这个目录下的东西就像它的名字一样全部都是驱动,事实上这个目录下面有很多驱动和windows组件,我们在windowsCE IDE中选取的很多特性的源代码都在这里,而且这儿提供了很多开发模版供我们写代码使用,个人认为用好这个目录是我们是定制自己的windowCE的关键,特色windowsCE就从这里开始。:)
到这里顺便说一个事情,OAK这个目录名一直困扰我多年,直到前段时间有位叫做"土豹子"的兄弟告知才明白,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驱动。
├─ACM
│ ├─ACMDWRAP
│ ├─GSM610
│ ├─MSFILTER
│ └─PCMCONV
├─BATTDRVR
│ └─TEST
│ ├─GETBAT
│ └─SETSTUBBAT
ACM是Audio Compression Manager 的简写也就是音频压缩管理器,该目录下面所提供了G.711 (A-law 和 mu-law 编码), GSM 610, G.722.1, 和 SIREN,说白

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭