hjsaxkc

hjsaxkc

0个粉丝

15

问答

0

专栏

0

资料

hjsaxkc  发布于  2012-12-05 14:32:19
采纳率 0%
15个问答
3186

WindowsCE目录解析

 
windowsCE的目录结构巨大而庞杂,尽管windowsCE的帮助对这个庞大的目录结构进行了说明仍然有很多目录下对应的代码在windowsCE help没有介绍其具体用途,下面就将windowsCE的目录结构进行简单的介绍。

1.SDK

在windowsCE.net4.2的根目录下存在PLATFORM,PRIVATE,SDK,OTHERS,PUBLIC五个目录。SDK是其中最为简单的一个目录结构,SDK\BIN\I386下所存放的就是开发所需要的工具集,编译器等等,在这里我就不再啰嗦了。

SDK目录中包含PB所需的各种工具,如下所示。但是不包含用于编译(build)系统镜像的工具。

         处理器编译器:包含平台支持的交叉编译器和交叉汇编器。

         开发工具:包括各种开发工具,例如Error Lookup, GuidGen, Link 和 Nmake。

         其他用途的各种工具:包括Zoomin和Windiff等。

2.other

这个目录下的内容比较杂,有诸如ATL,MFC的头文件,运行库等开发应用程序所需的库文件和其一部分代码。其中有个文件目录对开发系统来说是比较重要的,就是CETK的客户端OTHERS\WCETK,通过该目录下的文件可以订制自己的Windows CE .NET Test Kit客户端。

Other目录包含所有的Windows CE运行时库和头文件、.NET精简框架的组件和ATL和MFC的例子。它又有以下子目录:

         ATL:包含ATL头文件、库和用于调试的源代码,库的调试符号也包括在内。

         DOTNET:包含.NET处理器特殊的二进制的便携式.NET精简框架的文件。

         MFC:包含MFC头文件、库和用于调试的源代码。库的调试符号也包括在内。

         SAMPLES:包含MFC和ATL的应用例子。

         WCETK:包含Windows CE测试工具包(CETK),处理器特殊二进制文件。CETK为各个级别的设备提供测试。在CETK中,你可以选择合适的测试程序使其在你的设备驱动上运行,也可以通过远程连接使其在你的目标设备上运行该测试程序。

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)\public\common\cesysgen\CeSysgenPlatform.mak 也就是公共的platform生成文件,该文件为产生windowsCE项目提供支持。

DRIVER目录下的内容也是很直接的,也就是各种soc的设备和板载设备的驱动。例如:display就是lcd控制器的驱动,keybd就是键盘驱动等等 。

eboot目录下面的文件是ethernet bootloader的源文件,通常这个目录下的文件都来自于PUBLIC\COMMON\OAK\DRIVERS\ETHDBG所提供的模版改写得到,因此发现该目录下文件使用到未知的函数时都可以到上述文件中寻找答案。(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下面提供了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。

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的网络服务。

4.7 SCRPIT  IE

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

4.8 RDP

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

4.9 NETCF

Dot Net Compact Framework.事实上目录下面是空的,到底这些.net的文件都在那儿呢?看看makefile就可以知道,这里面用到的资源都是来自于前面讲过的%WINCEROOT%\OTHERS\DOTNET下面。

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
我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区