windows ce 篇 - mcuzone · 第四章:定制一个简单的windows ce 操作系统...

185
微控电子——专业的开发工具提供商 专业 ATARM 推广商 Windows CE 第一章:Windows CE 操作系统简介 第一节:什么是 Windows CE第二节:Windows CE 开发所需的软件平台 第二章:在 VC-9261EK 平台上使用 Windows CE 系统 第一节:firstbooteboot NK 第二节:使用 SAMBA 烧写一个镜像 第三节:配置串口调试工具及 eboot 第四节:安装和配置 Microsoft ActiveSync 第五节:挂接外部设备 第三章:搭建 Windows CE 开发平台 第一节:安装 Platform Builder 5 第二节:安装 Platform Builder 5 AT91SAM9261-EK BSP 第三节:安装 Platform Builder 6 第四节:安装 Platform Builder 6 AT91SAM9261-EK BSP 第五节:安装 Embedded Visual C++ 4 第四章:定制一个简单的 Windows CE 操作系统 第一节:编译并定制一个 Windows CE 5 第二节:编译并定制一个 Windows CE 6 第三节:镜像转换工具 第四节:Release 版和 Debug 第五章:Windows CE 下编写应用程序举例 第六章:Windows CE 的注册表、REG 文件和 BIB 文件 第一节:Windows CE 的注册表 第二节:REG 文件 第三节:BIB 文件 第四节:config.bib 文件 第七章:AT91SAM9261EK BSP 简介 第一节:BSP 的组件介绍 第二节:BSP 目录结构 第三节:向 BSP 中添加驱动的流程 第八章:定制 Windows CE 操作系统进阶 第一节:Build Options 第二节:Hive-based Registry 第三节:Microsoft ActiveSync CAB File 支持 http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Upload: others

Post on 09-Jan-2020

44 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Windows CE 篇 第一章:Windows CE 操作系统简介 第一节:什么是 Windows CE? 第二节:Windows CE 开发所需的软件平台 第二章:在 VC-9261EK 平台上使用 Windows CE 系统 第一节:firstboot、eboot 和 NK 第二节:使用 SAMBA 烧写一个镜像 第三节:配置串口调试工具及 eboot 第四节:安装和配置 Microsoft ActiveSync 第五节:挂接外部设备 第三章:搭建 Windows CE 开发平台 第一节:安装 Platform Builder 5 第二节:安装 Platform Builder 5 的 AT91SAM9261-EK BSP 第三节:安装 Platform Builder 6 第四节:安装 Platform Builder 6 的 AT91SAM9261-EK BSP 第五节:安装 Embedded Visual C++ 4 第四章:定制一个简单的 Windows CE 操作系统 第一节:编译并定制一个 Windows CE 5 第二节:编译并定制一个 Windows CE 6 第三节:镜像转换工具 第四节:Release 版和 Debug 版 第五章:Windows CE 下编写应用程序举例 第六章:Windows CE 的注册表、REG 文件和 BIB 文件 第一节:Windows CE 的注册表 第二节:REG 文件 第三节:BIB 文件 第四节:config.bib 文件 第七章:AT91SAM9261EK BSP 简介 第一节:BSP 的组件介绍 第二节:BSP 目录结构 第三节:向 BSP 中添加驱动的流程 第八章:定制 Windows CE 操作系统进阶 第一节:Build Options 第二节:Hive-based Registry 第三节:Microsoft ActiveSync 与 CAB File 支持

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 2: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第四节:多语言支持 第五节:使用串口 第六节:保存桌面、开始菜单等文件夹 第七节:Windows CE 的编译和快速编译技巧 第八节:导出 SDK 第九章:网络服务组件及 Telnet 应用 第一节:Command Shell 第二节:Web Server (HTTPD) 第三节:File Server 第四节:FTP Server 第五节:Telnet Server 第六节:FTP Client 第七节:Telnet 应用 第十章:SD 卡、双网卡、类 NAS 及 GPS 应用 第一节:SD 卡应用 第二节:双网卡共存 第三节:类 NAS 存储应用 第四节:GPS 应用

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 3: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第一章:Windows CE 操作系统简介 第一节:什么是 Windows CE? Windows CE 为微软研发的 32 位嵌入式操作系统,可以应用在各种嵌入式系统,或是

硬件配置较低的计算机系统。Windows CE 使用一套完全重新设计的内核,所以它可以在功

能非常有限的硬件上运行。虽然内核不同,但是它却提供了高度的 Win32 API 软件开发界面

的兼容性,功能有内存管理、文件操作、多线程、网络功能等。因此,开发台式机软件的人

可以很容易编写甚或直接移植软件到 Windows CE 上。 现在主流的 Windows CE 版本为 Windows CE .NET 4.x、Windows CE 5.0 和 Windows Embedded CE 6.0,本篇主要讲述 Windows CE 5.0 在 VC9261-EK 开发板上的应用。 第二节:Windows CE 开发所需的软件平台 和其它的嵌入式系统一样,Windows CE 也需要根据不同的硬件配置进行定制,定制和

编译 Windows CE 操作系统的平台为 Platform Builder,编译 Windows CE 5 可以用 Platform Builder 5,从 Windows CE 6 开始,Platform Builder 作为一个组件被整合到 Visual Studio 中

去了,所以如果要编译Windows CE 6,就需要先安装Visual Studio 2005或Visual Studio 2008,然后在 Visual Studio 的基础上再安装 Platform Builder for CE 6。 可以使用 Visual C++或 Embedded Visual C++,并配合一定的 SDK 来开发 Windows CE程序,从 Windows CE 6 开始,Windows CE 取消了对 Embedded Visual C++的支持,因此只

能使用 Visual C++来进行开发。本篇会讲述如何安装 Embedded Visual C++ 4.0,并简单讲述

如何编写一个 Hello World。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 4: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

第二章:在 VC9261-EK 平台上使用 Windows CE 系统 第一节:firstboot、eboot 和 NK 要使 Windows CE 在 VC9261-EK 系统上运行起来,需要用到以下 3 个文件: firstboot.nb0:存放在 DataFlash 中,负责确定时钟频率,初始化串口、IO 口,ECC 检校,

跳到 eboot 的起始地址。 eboot.nb0:存放在 DataFlash 中,负责硬件的初始化,并下载 NK 到 SDRAM 中。 NK.nb0:存放在 NandFlash 中,是操作系统的主体,由 eboot 下载到 SDRAM 中并运行。 firstboot 和 eboot 类似于 PC 的 BIOS,而 NK 则相当于操作系统本身,只是 NK 需要从

NandFlash 复制到 SDRAM 中才能运行。 第二节:使用 SAMBA 烧写一个镜像

ATMEL提供了SAM-BA软件(现整合在AT91-ISP里面),因此我们可以通过DBGU串口

或者USB Device进行下载,SAM-BA支持ATMEL的AT45DB系列DATAFLASH和主流NAND FLASH。该软件可以到ATMEL官方网站下载(打开www.atmel.com,然后搜索AT91-ISP),也可以在微控电子的网站(www.mcuzone.com 或 www.atarm.com )找到相关下载链接。

下面我们以烧写一个 Windows CE Demo 为例简要介绍一下 SAM-BA 的使用。 里面,

我们

首先安装 SAM-BA 软件,目前 ATMEL 已经把 SAM-BA 整合到了 AT91-ISP 软件

就直接安装这个软件。

击安装,一路点 next 即可完成安装。安装完成后需要重启系统。

如果使用的是下图所示的 VC9261-EK,那只需要将提供的串口先连接板上的 J4,即

DBGU 接口到 PC 的串口即可。然后将 9261 核心板上的 J21 拨位开关的 2 个拨位都置于 OFF状态。

Page 5: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

当连接核心板上的 miniUSB 口或者 VC9261-EK 的 J11 USB 口到 PC 后,Windows 会提

示发现新硬件:

由于之前已经安装了 SAM-BA,此时只需要选择自动安装即可:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 6: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择仍然继续:

安装成功后可以在 Windows 的设备管理器里面找到这个设备:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 7: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

安装完成后打开 SAM-BA 软件:

在 Select the Connection 下拉菜单中选择\usb\ARM0,在 Select your board 下拉菜单选择

AT91SAM9261-EK,然后点击 Connect 按钮。

接下来如果能够打开以下界面,说明 PC 已经与 AT91SAM9261 通讯成功。然后就可以

开始烧写 DataFlash AT45DB 的内容了。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 8: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

在烧写 DataFlash AT45DB 前,请先将之前断开的 J21 拨位开关的下面一位(即靠近双

排针的那一位)拨到 ON 的状态。然后才能开始烧写 DataFlash AT45DB。 首先选择“DataFlash AT45DB/DCB”,如下图箭头 1;然后在 Scripts 下拉菜单里面选择

Enable DataFlash on CS0,如下图箭头 2;然后点击执行按钮,如下图 3 箭头。如果一切正

常,下方 log 窗口会提示找到 DataFlash,如果提示找不到 DataFlash(会有红色字体提醒),

请重新检查 J21 跳线,并重新上电连接。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 9: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

先执行 Enable DataFlash on cs0。

找到 DataFlash AT45DB 后即可开始烧写,按照下图进行操作:

第一步:在 Scripts 下拉菜单下选择 Send BOOT File ,如箭头 1 所示; 第二步:点击 Execute 按钮,如下图箭头 2 所示,这时会跳出一个选择文件的对话框,请选

择文件类型为 All files,然后再选择 firstboot.nb0 文件,点击打开按钮,即可将 firstboot.nb0下载到 DataFlash。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 10: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

firstboot.nb0 文件下载成功后我们再继续发送 eboot.nb0 文件。如下图所示:

第一步:在箭头 1 的位置设置地址为 0x5000, 第二步:点击箭头 2 所示的 Send File Name Browse 按钮选择需要下载的文件 eboot.nb0 ,第三步:点击 Send File 按钮,如箭头 3 所示。 EBOOT.nb0 文件比 BootRam.nb0 文件要大,稍候片刻,等待下载完成。

下载完 eboot.nb0 文件后我们继续下载 NK.nb0。操作步骤如下图所示:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 11: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第一步:选择 NandFlash,如箭头 1 所示; 第二步:在 Scripts 下拉菜单选择 NandFlash Init ,如箭头 2 所示;然后点击 Execute 按钮,

如箭头 3 所示。

一切正常的话 SAM-BA 会提示找到 NandFlash,如下图所示,我们可以开始下载 NK,

如果 SAM-BA 提示找不到 NandFlash 则需要仔细检查硬件。

第一步:点击 Send File Name Browse 按钮,选择 NK.nb0 ,如箭头 1 所示; 第二步:点击 Send File 按钮下载文件开始下载 NK.nb0,根据 NK 所包含的内容大小不同,

所需时间也不同,若干分钟后,即可下载成功。在下载期间,SAM-BA 可能会表现出无响

应状态,请耐心等待下载完成。 至此 Windows CE 操作系统已经全部下载完成,可以关闭 SAM-BA,重新上电。然后从

DBGU 输出观察 Windows CE 启动情况。如果有条件可以接上 LCD 显示屏。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 12: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第三节:配置串口调试工具及 eboot

在上一章节,我们已经把 Windows CE 的镜像烧到了 AT91SAM9261-EK 上,因为

AT91SAM9261-EK 的调试信息通过 DBGU 串口输出,所以我们通过串口调试工具来查看

DBGU 的输出,下面讲解的是如何配置 Windows 自带的超级终端,其它串口调试工具的配

置和超级终端的配置基本类似。

首先,把 DBGU 串口通过串口线或者其他 USB 转串口设备连接到 PC,打开 Windows自带的超级终端,位置为:开始→程序→附件→通讯→超级终端。按照一下参数配置:

配置好超级终端后,复位 VC9261-EK 板,观察超级终端输出信息:

注意:由于烧的 eboot 版本不尽相同,所以输出信息未必和下文一致,请按照实际输出信息

提示进行操作!

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 13: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

出现“Initiating image launch in x seconds”时按空格键,然后出现以下界面:

第 6 项默认是“Download new image at startup”,表示启动后从以太网下载新的一个 NK镜像。调试阶段可以用这个选项,类似 linux 的 NFS。 选择 6 后出现:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 14: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

现在第 6 项变成了从板载 FLASH 加载 NK 镜像。一般将 NK 烧到 FLASH 里面后就应

该选择成从板载 FLASH 加载 NK 镜像。 注意:每按一次数字键 6,就会在“网络下载 NK”和“FLASH 加载 NK”之间切换,请注

意实际需要的方式。 然后选择第 8 项“Frequency settings”来设置运行频率,如果要让音频能正确运行,我

们还得仔细计算运行频率。 音频计算公式: — The audio frequency is 44100KHz — F = 44100KHz * 256*2^X or F = 44100Khz *384*2^X (refer to audio codec dataheet) — The values allowed are 181 MHz, 135 MHz, 90 MHz, 67MHz, 45 MHz,…

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 15: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

我们把主频设置成 181,总线分频系数为 2,这样既能保证系统运行速度,又能保证音

频正常工作。

接下来设置 Nand Flash,按 N:

出现 Nand Flash Menu,我们选择第 2 项 Enter manually the image parameters:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 16: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Physical Start Address : (0x80059000) : 0x 【NK 的起始地址】 Starting ip : (0x8005a000) : 0x 【NK 的起始 ip】 Total ROM size : (0x75144c) : 0x 【NK 的大小】 注意:不同的 NK 有不同的参数,请按照实际参数进行相应修改,一般可以在 NK 的说明

文档中或者 PB5 的编译结果中找到这三个参数。一般 NK 的起始地址和起始 IP 不会变化,

NK 的大小每个都不一样,建议将 ROM SIZE 直接设置成 0x2000000。

设置完成后选择第 3 项 Quit…退出:

设置完成后按复位键,等待系统启动。在进入系统前,Windows CE 会提示校准屏幕,

按照屏幕箭头校准即可完成,进入 Windows CE 界面。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 17: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 18: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 19: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第四节:安装和配置 Microsoft ActiveSync

为了能方便的在 PC 机和运行了 Windows CE 的 AT91SAM9261-EK 之间传输数据,我

们需要安装 Microsoft ActiveSync 软件,Microsoft ActiveSync 软件是微软为基于 Windows Mobile 的 Pocket PC 和 Smarthphone 所开发的一款软件,该软件可以方便的在 PC 机和移动

设备上进行数据同步。 Microsoft ActiveSync 下载地址: http://www.microsoft.com/windowsmobile/downloads/activesync41.mspx

将下载的 Microsoft ActiveSync 打开,一路 Next 即可:

Microsoft ActiveSync 安装完成后可能需要重启 PC,以后每次开机都会自动运行,同时

在“我的电脑”里面会多出一个“移动设备”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 20: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

如果我们的Windows CE系统包含USB Function驱动和Microsoft ActiveSync支持的话,

那就可以利用Microsoft ActiveSync将AT91SAM9261-EK和PC同步。首先AT91SAM9261-EK应已经进入 Windows CE 系统,然后通过 USB 线连接 AT91SAM9261-EK 上的 USB Device到 PC 上,此事 PC 端 ActiveSync 会出现以下提示(分别是英文版和中文版提示,建议安装

中文版本 Microsoft ActiveSync):

选择 No,然后 Next:

设备管理器里面会出现一个“Windows CE USB Devices”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 21: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

下面我们开始从 PC 上传送文件到 AT91SAM9261-EK,首先双击“移动设备”,很快即

可进入 Windows CE 的根目录:

我们把数据放到 NandFlash 里面,双击 NandFlash 文件夹:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 22: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

在这里我们可以像操作本地文件夹一样对 AT91SAM9261-EK 的文件进行复制、剪切、

新建等操作。 Microsoft ActiveSync 可以通过串口,USB 口等进行连接,这里我们使用了 USB 连接,

虽然是 USB 连接,但是本质上是将 USB 配置成一个串口使用的,所以传输速度还是比较有

限,以 1MB 文件进行传输测试,大约需要耗时 12 秒,实际传输速度为 80KB/S 左右。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 23: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第五节:挂接外部设备 1. 挂接 U 盘 U 盘是最常用,而且单位存储成本极低,VC9261-EK 有两个 USB Host,可以用来方便

的挂接 U 盘设备。这里我们测试的是一个 1GB 的 USB 2.0 接口 U 盘。 如果使用的 Windows CE 中包括 USB Host 和 USB Mass Storage 驱动的话,那当插入 U盘后, Windows CE 的“我的设备”中会多出一个“Hard Disk”(或“硬盘”):

所以当无法使用 Microsoft ActiveSync 时,也可以直接通过 U 盘来传输数据。 2. 挂接 USB 键盘和鼠标

如果使用的 Windows CE 中包括 USB Host 和 USB HID 设备驱动的话,就可以直接使

用 USB 鼠标和键盘,只需要将键盘或鼠标插入到 AT91SAM9261-EK 的 USB Host 上即可。

我们测试了 2.4G 的无线鼠标和 USB 键盘,都可以正常使用。 挂接鼠标后可以方便的使用右键来查看属性和其他信息,与使用触摸笔操作相比,鼠

标要方便不少。如果使用触摸笔,则要长按才能出现右键属性菜单。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 24: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

3. 挂接 SD/MMC 卡 VC9261-EK 带有一个 SD/MMC 卡,如果使用的 Windows CE 系统带有 SD 驱动和

Flashloader 的话就可以使用 SD 卡作为存储器,我们会在第十章详细介绍如何编译支持 SD卡的 Windows CE 系统。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 25: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第三章:搭建 Windows CE 开发平台

Windows CE 在嵌入式领域的应用越来越普及,本章我们简单介绍一下基于

AT91SAM9261 的 Windows CE 5 和 Windows CE 6 编译平台 Platform Builder 的搭建过程,以

及 Windows CE 5 的程序开发软件 Embedded Visual C++ 4 的搭建过程。 第一节:安装 Platform Builder 5

Platform Builder 5 累计 2.5G 容量,建议安装的时候把所有的内容复制到硬盘上一个

文件夹下,则在安装的过程中不会出现要求更换光盘的提示,可以一次性安装完成。

安装 Platform Builder 5 前需要先安装 Microsoft .NET Framwork,将 Microsoft .NET Framwork 安装包打开:

选择“是”:

安装完成:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 26: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Microsoft .NET Framwork 安装完成后开始安装 Platform Builder 5:

选择“Install”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 27: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择“Next”:

接受许可协议,下面开始填写客户信息和 Product key:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 28: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择“Next”后,选择“Custom (Tools and OS)”:

选择安装路径,如果硬盘空间足够的话,强烈建议安装在 C 盘,可以减少编译出错的

概率:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 29: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

接下来是具体的安装选项的选择,因为需要编译适合 AT91SAM9261 的 Windows CE,所以要把“ARMV4I”选上:

点击“Next”后再选择“Install”,进入安装界面:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 30: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 31: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

安装完成:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 32: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第二节:安装 Platform Builder 5 的 AT91SAM9261-EK BSP BSP(板级支持包,Board Support Package),是介于主板硬件和操作系统中驱动层程序

之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱

动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行与硬件主板。在嵌入式体统

软件的组成中,就有 BSP。BSP 是相对于操作系统而言的,不同的操作系统对应于不同定

义形式的 BSP。 目前 ATMEL 已经开放了 Adeneo 提供的 Windows CE 5 和 6 的源码 BSP,Windows CE 5 BSP 目前最新版本是 1.7.0,驱动支持列表如下:( : 已支持 : 尚未支持)

Features SAM9261

Boot from NAND

Boot from SPI Flash

Load image from Ethernet

Load image from NAND

Ethernet/Serial debug

Watchdog

RTT / RTC

Power management

Display driver

Touchscreen

Audio (out only)

Serial

Application level Ethernet

USB Host

USB Device

SPI driver

TWI driver

PWM driver

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 33: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

SDCard driver

NAND driver

HDD driver

2D graphic acceleration

EEPROM

大家可以去微控电子论坛下载,也可以去官方网站下载,官方网站下载地址如下(需注册): http://www.at91.com/windows4sam/bin/view/Windows4SAM/WindowsEmbeddedCEBSP 下载 BSP 压缩包后解压,可以得到下列目录: \Adeneo Adeneo 产品介绍文档 \Bootloader Bootloader 文件,包括 firstboot 和 eboot \BSP BSP 安装文件 \Documentation BSP 说明文档 \PBProject Platform Builder 的 demo 文档

进入 BSP 目录,里面有三个文件: AT91SAM9261EK_BIN_CE5_v170.msi 预览版 BSP,没有源码,只能修改驱动注册表 AT91SAM9261EK_BIN_EVAL_CE5_v170.msi 评估版 BSP,和预览版相同,有 Time Bomb AT91SAM9261EK_SRC_CE5_v170.msi 正式版 BSP,有完整的驱动源码 我们一般安装正式版带有完整驱动源码的 BSP,打开安装文件:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 34: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择“Next”,显示最终许可协议:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 35: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择安装目录:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 36: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择“Next”,开始安装:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 37: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

安装完成后需要在 Platform Builder 5 下导入 BSP 才可以使用,选择“File → Manage Catalog Items….”:

选择“Import..”,导入\WINCE500\PLATFORM\AT91SAM9261EK\AT91SAM9261EK.cec:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 38: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择“OK”,我们就可以在 Platform Builder 5 的 Catalog 窗口中看到导入的 BSP 了:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 39: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第三节:安装 Platform Builder 6

因为 Platform Builder 6 已经成为了 Visual Studio 2005 的一个插件,因此在安装 Platform Builder 6 之前必须安装 Visual Studio 2005。如果未安装 Visual Studio 2005 就直接运行

Platform Builder 6 的安装程序,程序会提示系统中缺少必要的软件。 注意:如果需要在同一系统里面安装 Platform Builder 5 和 Platform Builder 6,必须按照先

Platform Builder 5 再 Platform Builder 6 的顺序安装,否则在使用过程中将会出错!

Smart Device Programmability(智能设备可编程技术)是 Visual Studio 2005 的一类组件,

我们需要安装的是 VC++的 Smart Device Programmability。 运行 Visual Studio 2005 的安装程序,选择“安装 Visual Studio 2005”。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 40: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

复制一些必要的文件到临时文件夹后,程序会出现加载安装组件的窗口:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 41: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

组件加载完成后按“下一步”,是选择要安装的功能的窗口,请选“自定义”,可以在右

侧的地址栏中修改安装路径:

按“下一步”,如果只要求能使用 Platform Builder 6,那只需要安装 Visual C++即可。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 42: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

点击“安装”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 43: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

安装完成后的画面:

这样,我们就完成了 Visual Studio 2005 的安装,选择“开始 → 程序 → Microsoft Visual Studio 2005 → Microsoft Visual Studio 2005”,可以打开 Visual Studio 2005 的主窗口,第一

次使用时程序会自动配置环境。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 44: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Visual Studio 2005 的“关于”窗口:

安装 Platform Builder 6 的过程比较简单,安装完 Visual Studio 2005 后再运行 Platform Builder 6 的安装程序,就不会出现警告窗口了。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 45: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择“Next >”:

输入序列号(可以去微软网站申请)后选择“Next >”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 46: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

如果我们只需要搭建 ARM 下的 Windows CE 系统,那只要按默认选择即可(必须要选

择“ARMV4I”),可以在下方的地址栏中修改安装路径。选择“Next >”后开始复制文件,

等文件复制完毕后即成功安装了 Platform Builder 6。 安装完毕后启动 Visual Studio 2005,可以看到在启动时的“已安装的产品”中有 Platform Builder for CE 6.0。启动后的起始页窗口也多了很多内容,如果使用过 Platform Builder 5 的

话一定不会对这样的布局感到陌生。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 47: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Visual Studio 2005 的“关于”窗口中也增加了相应的内容:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 48: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第四节:安装 Platform Builder 6 的 AT91SAM9261-EK BSP Windows CE 6 BSP 目前最新版本是 1.0.3,文件目录结构与驱动支持和 Windows CE 5 BSP 基本一致,下载 BSP 压缩包后解压缩,然后安装 BSP,安装过程也和安装 Windows CE 5 BSP 基本一致。

安装完毕后我们就可以在 Visual Studio 2005 中使用 AT91SAM9261 的 BSP 了。Platform Builder for CE 6.0 会自动列出所有安装过的 BSP,而不必像 Platform Builder for CE 5.0 那样

在“File->Manage Catalog->Items”里导入 BSP 的.cec 文件。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 49: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第五节:安装 Embedded Visual C++ 4 Embedded Visual C++ 4 是微软专为 Windows CE 开发的一套 Visual C++编译平台,通过

Embedded Visual C++ 4生成的程序适用于Windows CE 5,如果要为Windows CE 6开发程序,

请使用 Visual Studio。 安装 Embedded Visual C++ 4,首先打开安装程序,接受最终许可协议:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 50: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

填入产品和用户 ID:

进入安装选项,选择安装 Embedded Visual C++ 4 和 Windows CE .NET 标准 SDK:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 51: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

接下来选择安装目录:

选择“是”以后就开始安装:

安装完成:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 52: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

然后是安装 Windows CE .NET 标准 SDK:

接受最终用户协议,然后填入用户信息:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 53: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择 Complete 安装:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 54: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择安装目录,

选择“Install”后就开始安装:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 55: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

安装完成:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 56: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

我们也可以从微软网站上获得最新的 SDK: http://www.microsoft.com/DownLoads/details.aspx?familyid=FA1A3D66-3F61-4DDC-9510-AE450E2318C3&displaylang=en 最后我们还需要把 Embedded Visual C++ 4 升级到 SP4:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 57: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

接受最终用户协议后开始安装:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 58: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

安装完成:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 59: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

至此,我们已经成功安装了 Windows CE 编译平台 Platform Builder 5、Platform Builder 6以及相应的 AT91SAM9261-EK 的 BSP,微软的嵌入式开发平台 Embedded Visual C++ 4 SP4和相应的 SDK。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 60: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第四章:定制一个简单的 Windows CE 操作系统

Windows CE 的定制过程采用模块化设计,体现了微软一贯的简单易用的风格,用户可

以通过使用 Platform Builder 轻松地按照自己的需要来定制 Windows CE,本章我们将要介绍

如何定制一个 Windows CE 系统(包括 Windows CE 5 和 Windows CE 6),以及一些工具和

Windows CE 发布版本的介绍。 在开始定制 Windows CE 之前,我们需要安装下列软件:

Platform Builder 5 AT91SAM9261-EK BSP for CE 5(1.7.0 版带源码正式版) Visual Studio 2005 Platform Builder 6 AT91SAM9261-EK BSP for CE 6(1.0.3 版带源码正式版) 第一节:编译并定制一个 Windows CE 5

首先打开 Platform Builder,选择“File → New Platform…”,新建一个工程:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 61: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 1 步:工程向导欢迎界面

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 62: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 2 步:Workspace Name And Location 给工程命名并选择存放路径

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 63: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 3 步:BSPs 选择:AT91SAM9261EK

第 4 步:Design Template 选择:Custom Device

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 64: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 5 步:Applications and Service Development 选择:C Libraries and Runtimes

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 65: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 6 步:Applications – End User 选择:Active Sync → File Sync

第 7 步:Core OS Service 选择:Display Support Serial Port Support USB Host Support

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 66: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 8 步:Communication Services and Networking 选择:Networking – Local Area Network (LAN) → Wired Loacal Area Network

Networking – Wide Area Networking → RAS/PPP → Autodial Networking – Wide Area Networking → TAPI → Unimodem

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 67: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 9 步:Device Management None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 68: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 10 步:File System and Data Store 选择:File System - Internal → RAM and Rom File System

Storage Manager → FAT file system Storage Manager → Storage Manager Control Panel Applet Storage Manager → Partition Driver

第 11 步:Fonts None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 69: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 12 步:International None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 70: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 13 步:Internet Client Service 选择:Broweser Application → Internet Explorer 6.0 for Windows CE – Standard

Components → Internet Explorer 6.0 Sample Browser

第 14 步:Graphics and Multimedia Technologies None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 71: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 15 步:Security None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 72: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 16 步:Shell and User Interface 选择:Shell → Graphical Shell → Standard Shell

Shell → AYGShell API Set

User Interface → Control Panel Applets User Interface → Mouse User Interface → Network user interface User Interface → Software Input Panel → Software-based Input Panel Driver User Interface → Software Input Panel → SIP → SIP for small Screens User Interface → Touch Screen(Stylus)

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 73: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 17 步:Windows CE Error Reporting None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 74: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 18 步:Voice over IP Phone Services None

第 19 步: 为以上设置的一些警告和注意,选择“Next”

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 75: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 20 步: 选择“Finish”,完成向导的设置。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 76: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

然后添加驱动:

Catalog → Core OS → Windows CE devices Core OS Services Display Support Catalog → Core OS → Windows CE devices Core OS Services Serial Port Support Catalog → Core OS → Windows CE devices Core OS Services USB Host Support USB Human Input Device (HID) Class Driver USB HID Keyboard and Mouse Catalog → Core OS → Windows CE devices Core OS Services USB Host Support USB Storage Class Driver Catalog → Core OS → Windows CE devices Core OS Services Graphics and Multimedia Technologies Audio Waveform Audio Catalog → Core OS → Device Drivers USB Function USB Function Clients Mass Storage Catalog → Core OS → Device Drivers USB Function USB Function Clients Serial Catalog → Third Party → BSPs → AT91SAM9261EK → AT91SAM926x Processors → AT91SAM9261 support Catalog → Third Party → BSPs → AT91SAM9261EK Boot Mode Boot from SPI DataFlash Catalog → Third Party → BSPs → AT91SAM9261EK Device Drivers Audio Audio Driver Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → Display → LCDC

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 77: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → Ethernet →Ethernet Driver Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → SPI → SPI Driver Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → TouchScreen → TouchScreen Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → USB Function → USB Function Bus Drivers → USB Function Driver Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → USB Host → USB Host Controllers → USB Host Catalog → Third Party → BSPs → AT91SAM9261EK → Storage Drivers → MSFlash Drivers → Nand Flash 注意:请根据实际需要添加相应的驱动,不然有可能出现部分组件或者部分外设无法正常

工作!

添加驱动完成后开始编译,选择“Build OS → Sysgen”开始编译:

注意:请选择“Clean Before Building”,可以减少再次编译出错的概率。

等待一段时间后编译完成,编译消耗时间视 wince 功能部件多少和 PC 主机性能,少则

几分钟,多则几十分钟。 第二节:编译并定制一个 Windows CE 6 接下来我们来编译一个简单的 Windows CE 6 系统,相信有了编译 Windows CE 5 的经

验后,一切都会变得比较简单。打开 Visual Studio 2005,选择“文件->新建->项目”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 78: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择“Platform Builder for CE 6.0”,然后输入工程名称(例如 sample9261)和路径后按

确定:

进入 Platform Builder 的设计向导:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 79: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 1 步:BSPs 选择:AT91SAM9261EK_BIN

第 2 步:Design Templates 选择:Custom Device

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 80: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 3 步:Applications – End User 选择:ActiveSync → File Sync,

CAB File Installer/Uninstaller

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 81: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 4 步:Applications and Sevices Development 选择:C libraries and Runtimes

第 5 步:Communications Services and Networking 选择:Networking – Local Area Network (LAN) → Wired Local Area Network

Networking – Wide Area Networking → RAS/PPP → Autodial Networking – Wide Area Networking → TAPI → Unimodem

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 82: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 6 步:Core OS Services 选择:Display Support

USB Host support → USB Function Driver USB Host support → USB Host support USB Host support → USB Human Input Device

Serial Support

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 83: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 7 步:Device Management None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 84: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 8 步:File Systems and Data Store 选择:Storage Manager → FAT file system

Storage Manager Control Panel Applet Partition Driver

第 9 步:Fonts None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 85: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 10 步:Graphics and Multimedia Technologies None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 86: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 11 步:International None

第 12 步:Internet Client Services None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 87: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 13 步:Security None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 88: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 14 步:Voice over IP Phone Services None

第 15 步:Windows Embedded CE Error Reporting None

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 89: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 16 步:完成.

稍等片刻我们就完成了通过设计向导进行的配置。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 90: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

然后我们需要在左侧窗格“Catalog Items View”中做进一步的选择:

※ Drivers from the catalog : Catalog → Device Drivers → USB Function → USB Function Clients → Serial Catalog → Core Os → CEBASE → Shell and User Interface → Shell → Graphical Shell (Choose 1)→ Standard Shell Catalog → Core Os → CEBASE → Shell and User Interface → User Interface → Quarter VGA Resources – Portrait Mode Catalog → Core Os → CEBASE → Shell and User Interface → User Interface → Touch Screen (Stylus). ※ Drivers from the AT91SAM9261EK_BIN catalog : Catalog → Third Party → BSPs → AT91SAM9261EK_BIN > Storage Drivers → NandFlash → NandFlash Driver Catalog → Third Party → BSPs → AT91SAM9261EK_BIN → Device Drivers > USB Function → USB Function Bus Driver → USB Function Driver > Touchscreen 添加完毕后选择“项目->属性”,进入属性设置页面:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 91: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

点击“配置属性”,然后进入“配置管理器”。在“活动解决方案”中选择 “AT91SAM9261EK_BIN Release”:

关闭“配置管理器”,在左侧窗格中点击“Build Options”,选择“Enable eboot space in memory”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 92: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

然后在左侧窗格中点击“Enviroment”,加入以下两个变量: fake_strongarm=1、fake_idle=1。按确定:

选择“生成->生成解决方案”,开始编译镜像,可以在下方的输出窗口中查看输出信息:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 93: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

依 PC 硬件配置高低不同,这个过程需要约十几分钟到几十分钟不等。编译成功后的输

出:

我们可以在 \WINCE600\OSDesigns\sample\sample9261\RelDir\AT91SAM9261EK_BIN_ARMV4I_Release 目录下找到生成的镜像 NK.bin 和 NK.nb0。用 SAM-BA 等烧录软件将 NK.nb0 烧进目标板即

可。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 94: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第三节:镜像转换工具 Platform Builder 可以输出两种格式的 Windows CE 镜像:bin 文件和 nb0 文件,其中 bin文件是一种二进制 ROM 映像文件格式,同 NB0 文件相比,它压缩了无效的数据。BIN 文

件中包含了文件头和许多的段,每个段都给出了在实际映像中的首地址、长度、校验码和数

据。nb0 文件是地址空间的一个完整的映像文件,相当于地址空间的硬拷贝。可以通过设置

config.bib文件来生成打包后的 nb0文件(详见第七章),此外我们还可以通过 Platform Builder的两个自带工具:cvrtbin.exe 和 viewbin.exe 来进行转换。 在 Platform Builder的安装根目录下的\PUBLIC\COMMON\OAK\BIN\I386目录下有两个

文件:viewbin.exe 和 cvrtbin.exe,将这两个文件拷贝到 NK.bin 的目录下。

viewbin.exe 的作用是查看 NK.bin 文件的相关参数,命令行格式为:viewbin nk.bin。 cvrtbin.exe 的作用为将 NK.bin 转换为 NK.nb0,命令行格式为:

cvrtbin -r -a <Image Start> -l <length> -w 32 nk.bin。 例如要查看一个 NK.bin 的信息,执行 viewbin nk.bin,输出如下:

可以看到 Image Start、Start address 和 length。 然后执行 cvrtbin.exe: cvrtbin -r -a 80059000 -l 00831020 -w 32 nk.bin 稍等片刻即可在同一目录下看到打包生产的 NK.nb0

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 95: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第四节:Release 版和 Debug 版 Platform Builder 可以生成两种版本的镜像,分别是 Release 版和 Debug 版。Release 版

是发布版本,Debug 版是调试版本,Debug 版和 Release 版相比,可以通过 DBGU 串口或者

USB 口输出更加详细的调试信息(需要 eboot 支持)。 在 Platform Builder 5 中,可以通过 setting 窗口(Platform → Settings…)切换两个版

本:

而在 Platform Builder 6 中添加完毕后选择“项目 → 属性配置 → 属性配置管理器 →活动解决方案”中选择版本:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 96: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 97: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第五章:Windows CE 下编写应用程序举例

在第三章中我们已经安装 Embedded Visual C++ 4,下面就用一个简单的例子来演示一

下 Windows CE 应用程序的开发流程。 首先,打开 EVC,新建工程:

新建一个 Projects,选择 WCE MFC AppWizard(exe)并设置好工程目录和工程名称,

然后选择支持的 CPU,在这里我们只需选择 ARM,如果希望你的程序还能运行在别的 CPU平台,请可以添加相应 CPU 的支持。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 98: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

点击“OK”后进入设置向导。 第 1 步:在程序类型中选择“Dialog based”,即基于对话框的应用程序,同时选择语言为:

“英语[美国]ceappwzenu.dll”。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 99: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 2 步:直接“Next”。

第 3 步:在是否生成源文件注释选项中选择“Yes, please”,并选择使用 MFC 动态链接库“As a shared DLL”。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 100: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 4 步:直接点击“Finish”,完成设置。

接下来会让你最后确认一下你的设置,如果没问题的话选择“OK”。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 101: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

工程树形结构:

双 击 “ ResourceView → helloworld resources → Dialog →

IDD_HELLOWORLD_DIALOG”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 102: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

在 IDD_HELLOWORLD_DIALOG 上点击右键,选择“Properties”,可以通过 Language

下拉菜单来选择语言,选择“Chinese [P.R.C.]”以支持中文字符:

在“Project Settings…→ Resources”里面同样设置语言为“中文[中国]”:

不同的版本需要分别进行设置。这里设置了 ARMV4I 的 Debug 和 Release 两个版本为

支持中文:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 103: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

同时请在“C/C++”里面的“Category → Precomplied Headers”中选择“Not using precompiled headers”:

为了让我们的程序可以运行于更多的平台,在“General →Microsoft Foundation Clasees”中选择“Use MFC in a Static Library”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 104: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择 Helloworld 对话框,然后右键选择“Properties”,在出现的属性对话框里面可以输

入对话框的标题。可以按照你的喜好输入标题名称:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 105: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

从右边悬浮的 controls 框放一个按钮到对话框上,然后同样点右键选择“Properties”,

可以修改按钮的标题名称:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 106: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

然后双击按钮,出现 cpp 文件,添加如下代码: MessageBox(TEXT("HelloWorld"), TEXT("Sample"), MB_OK);

代码添加完成后选择“Build → Compile helloworldDlg.cpp”进行编译:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 107: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

编译 cpp 完成后,选择“Build → Build helloworld.exe”生成 exe 文件,由于我们并没

有安装针对目标的 SDK,所以 EVC 会有提示不能用 Emulator 进行模拟,但是这并不影响正

常生成 exe 文件:

编译和生成完成后,依编译的版本不同,我们可以在 ARMV4IDbg 或 ARMV4IRel 文件

夹下找到相应版本的 helloworld.exe,将 helloworld.exe 传输到开发板上,双击打开运行即可:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 108: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第六章:Windows CE 的注册表、REG 文件和 BIB 文件

REG 文件和 BIB 文件是 Windows CE 系统在编译过程中最常用和最广泛的两种配置文

件,本章主要介绍这两种文件在 Windows CE 系统中的结构和作用。 第一节:Windows CE 的注册表 Windows CE 的注册表支持 4 个根键,与 Windows NT 家族的操作系统相比,Windows CE的注册表把根键 HKEY_CURRENT_CONFIG 的内容合并到了根键 HKEY_USERS 中去。

Windows CE 的注册表支持 4 个根键如下:

键名 描述 HKEY_LOCAL_MACHINE 硬件和驱动配置数据 HKEY_CURRENT_USER 用户配置数据 HKEY_CLASSES_ROOT OLE 和文件类型匹配配置数据 HKEY_USERS 适用于所有用户的数据 这个分支包含计算机当前的硬件

配置信息 Windows CE 本质上是一个完全运行于内存的操作系统,也就是说在断电后系统无法直

接保存内存中的数据,由此 Windows CE 提供了两种注册表实现方法: 基于 RAM 的注册表

基于 RAM 的注册表(RAM-Based Registry)是把整个注册表作为一个对象存储堆存放

在系统的内存中。这意味着如果对系统进行冷启动或者系统断电,对注册表的所有改动都会

丢失。

如果使用基于 RAM 的注册表,对注册表的读写访问操作完全都是在内存中进行,因此

会变得非常高效。基于 RAM 的注册表比较适用于没有外部存储,而且有电池保存内存数据

(battery-backed RAM)的设备。如果有外存且经常冷启动的设备采用基于 RAM 的注册表,

则需要在系统断电的时候对注册表进行保存,等系统再次启动时对保存的注册表进行还原。 基于 Hive 的注册表

自从 Windows CE 4.0 之后,Windows CE 提供了基于 Hive 的注册表(Hive-Based Registry)。基于 Hive 的注册表把注册表数据存放在文件系统的文件上,这种文件被称作蜂

箱(Hive)。这就意味着不再需要在系统断电和启动时进行保存恢复注册表操作。

Hive 是注册表中的一组键、子键和值。Hive 在文件系统上表现为单个文件。Windows CE中有三种 Hive:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 109: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

类型 文件 描述

Boot Hive boot.hv HKEY_LOCAL_MACHINE 、 HKEY_CLASSES_ROOT 、

HKEY_USERS 中的所有数据,只在启动时使用。 System Hive system.hv HKEY_LOCAL_MACHINE 、 HKEY_CLASSES_ROOT 、

HKEY_USERS 中的所有数据,包含设备范围内不随着用户改

变而改变的数据。 User Hive user.hv HKEY_CURRENT_USER 下的所有数据,包含用户特有的设

置,每个用户都有一个单独的 User.hv。 基于 Hive 的注册表适用于对于有永久存储并且需要经常冷启动的设备。同时基于 Hive的注册表把系统数据和用户数据分开存放,这就意味着基于 Hive 的注册表还提供多用户支

持。对于每一个用户,可以提供不同的 user.hv,不同用户登录时加载相应的 user.hv,从而

达到多用户目的。 第二节:REG 文件 Windows CE 的 REG 文件和其它 Windows 操作系统的注册表文件基本类似,作为操作

系统的一个重要数据库,用于存储系统和应用程序的设置信息。主要是通用注册表文件

common.reg、硬件平台注册表文件 platform.reg、工程配置注册表文件 project.reg、各个组件

的 REG 文件、各个驱动的 REG 文件。 注册表的格式如下: [KEY1] "ValueName1"={Value Type}:{data} "ValueName2"={Value Type}:{data} [KEY2] "ValueName1"={Value Type}:{data}

其中 Value Type 和 data 相互对应,不同的 Value type 对应不同的 data,具体如下:

Value Type data 类型描述 REG_SZ " my string" 字符串类型 REG_DWORD dword:NNNN(hex number) DWORD 类型 REG_MULTI_SZ multi_sz: " my_string_1"," my_string_2" 多字符串类型 REG_BINARY hex:xx,xx,xx 二进制类型 HEX hex(xxxxxxxx):xx,xx,xx,xx 十六进制类型

与其它 Windows 操作系统类似,在注册表中,同样可以使用 IF/ENDIF 来进行条件包含,

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 110: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

其中条件可以是一个 WinCE 中的环境变量,还可以在该环境变量后加一个空格再加一个惊

叹号(“!”),表示没有设置或者不等于的情况,例如: IF environment variable [= value] [!] [KEY1] "ValueName1"={Value Type}:{data} "ValueName2"={Value Type}:{data} [KEY2] "ValueName1"={Value Type}:{data} ENDIF

如果注册表某一行是以分号(“;”)开始,表示这行是被注释掉的,例如: ; HIVE BOOT SECTION ... reg data... ; END HIVE BOOT SECTION 我们也可以对注册表进行添加删除的操作: 创建一个键: [Key1] "ValueName"="Value Type" 删除一个键: [-KEY1] 删除一个键值: "ValueName1"=-

在 Windows CE 的编译过程中,Platform Builder 会利用 fmerge -reg 命令,将 Platform Builder 自带的非 BSP 的 REG 文件,例如 common.reg、project.reg、platform.reg 等文件合成

reginit.ini,并进一步压缩成为 default.ftf。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 111: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

fmerge -reg 会依次提取下列文件中的项到 reginit.ini 中: common.reg dcom.reg gdiex.reg ie.reg script.reg servers.reg shell.reg wceshellfe.reg wceappsfe.reg viewers.reg directx.reg datasync.reg netcf.reg SQLCE.reg project.reg platform.reg

若是在提取过程中遇到相同的项,后面的有效,前面的忽略。即:后面的覆盖前面的。

假设某个项在 project.reg 和 platform.reg 中同时出现,合成过程以在 platform.reg 中的项有效,

而忽略 project.reg 中相同的那项。 第三节:BIB 文件

BIB 文件(Binary Image Builder File)是 Windows CE 的重要的一类配置文件,在系统

编译的 makeimg 阶段中会用到 BIB 文件。所有的 BIB 文件会被合并成 CE.bib 文件,然后

romimage.exe会根据BIB文件中的描述来决定哪些文件最终被包含到Windows CE image中。

BIB 文件还决定了 Windows CE 设备内存的分配,它定义了 eboot、操作系统镜像、显存等

部分各占用了哪部分内存。 在 BIB 文件中分为 4 大项:MEMORY 项,CONFIG 项,MODULES 项和 FILES 项。

各项的解释如下: MEMORY 项:定义了内存分配的相关设置,一般在 BSP 中的 config.bib 文件中。 CONFIG 项:在最后的 makeimg 阶段,为 romimage.exe 提供一些生成 Windows CE image的配置属性。该项是可选的,一般也在 BSP 中的 config.bib 文件中定义。 MODULES 项:定义了一些会被打包到 WinCE image 中的模块或者文件,比如 dll,exe 等。

这些文件会被 romimage.exe 标记为加载到 RAM 中或者 XIP。我们可以在这里添加自己的

WinCE 应用程序或者模块,但是不要添加 Managed Binaries,一般指.NET 的程序。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 112: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

FILES 项:定义了一些操作系统会用到的其他的文件,比如字体文件,图片等。这些文件也

会在 Windows CE 运行的时候被加载到 RAM 中。 以下是这 4 项的详细解释: 1. MEMORY 项

MEMORY 项一般都在 config.bib 文件中定义,开头会有 MEMORY 的字样。这里定义

了为Windows CE image以及其他模块预留的RAM,同时也定义了WinCE可以使用的RAM。

具体格式如下: MEMORY ;NAME Start Address Memory Size Type NAME:该内存区域的名字,必须是唯一的。 Start Address:该内存区域的起始地址,用十六进制表示。 Memory Size:该内存区域的大小,用十六进制表示。 Type:内存区域的类型。包涵的多种类型如下。

类型值 描述 FIXUPVAR 用于在 Windows CE 编译的 makeimg 阶段,初始化一个内核中的全局

变量。 NANDIMAGE 当创建了一个使用BinFS的 image的时候,NAND设备上的Windows CE

kernel 会重定向到 RAM 中的区域,当系统访问该区域的时候,BinFS会负责访问 NAND 设备上相应的位置,并返回数据给系统,实际上就

是在 NAND 设备上面实现了 XIP 的功能。 RAM 定义了被 Windows CE 系统使用的 RAM 区域,这块内存必须是连续的。

注意:从硬件的角度来说,这块内存不能跨越两片 SDRAM,也就是说

整个区域空间必须在一片硬件 SDRAM 上。 RAMIMAGE 定义了一块内存区域用于加载 Windows CE image,实际上 Windows CE

启动以后,image 会被拷贝到这块内存区域上面运行。一个 image 只能

有一个连续的 RAMIMAGE 区域。 RESERVED 这块内存区域会被预留出来,一般用于 Frambuffer 或者是 DMA Buffer,

或者是一块共享内存用于 eboot 传递参数给 Windows CE 系统 EXTENSION 定义了一块 Windows CE image 中的区域作为 ROMHDR extension 的数

据区域。 2. CONFIG 项

CONFIG 项一般在 config.bib 文件中定义,定义了一些额外的配置参数,具体格式如下;

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 113: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

CONFIG ITEM=Parameter ITEM 的类型如下:

类型值 描述 AUTOSIZE 允许未被使用的 Windows CE image 的 RAM 被用作 Windows CE 系统

的 RAM,默认值为 ON。 COMPRESSION 允许 romimage.exe 压缩 Windows CE image 中的可写入部分,默认值为

ON。 BOOTJUMP 定义了跳转页在 RAMIMAGE 空间中的地址,而不是默认情况下的

RAMIMAGE 的首地址,默认值为 NONE。 FSRAMPERCENT 定义了文件系统使用的内存的百分比,默认值为 0x40404040。

Byte 0:第一个 2MB 中,每 1MB 所包含的 4KB 的倍数。 Byte 1:第二个 2MB 中,每 1MB 所包含的 4KB 的倍数。 Byte 2:第三个 2MB 中,每 1MB 所包含的 4KB 的倍数。 Byte 3:剩下的内存中,每 1MB 所包含的 4KB 的倍数。

KERNELFIXUPS 定义了 romimage.exe 是否重新定向内核的可写入区域,默认值为 ON,

内核的可写入区域被重新定向到 RAMIMAGE 的起始位置。 OUTPUT 定义了最终生成的 image存放的路径,默认为%_FLATRELEASEDIR%。

PROFILE 定义了是否在 Windows CE image 中包含 profiler 的结构和符号,默认

值为 OFF。 RESETVECTOR 重新指定跳转页的位置,一般针对 MIPS 芯片从 0x9FC00000 开始引导

的问题。 ROMFLAGS 内核标记位,可以进行如下组合:

0x01 表示禁用按需分页。 0x02 表示禁用完全内核模式,完全内核模式表示所有的线程都运行在

内核模式。 0x10 表示只信任 ROM MODULES 中的模块。 0x20 表示停止刷新 TLB。 0x40 表示按照/base 链接选项中的地址加载 DLL。

ROMSTART Windows CE image 在内存中的起始地址。 ROMSIZE Windows CE image 的大小。 ROMWIDTH 数据总线的宽度。 ROMOFFSET 指定一个偏移量来修改.bin 文件中的每一个记录的地址,一般用于

ROM 中的.bin 文件加载到 RAM 来运行的情况,主要是表示存储.bin的位置和运行.bin 的位置不一样。

SRE 使 romimage.exe 产生一个.sre 文件,默认值为 OFF。 X86BOOT 定义在 x86 复位向量地址的时候是否插入一条跳转指令。 3. MODULES 项和 FILES 项

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 114: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

MODULES 项和 FILES 项列出了所有被包含在 Windows CE image 中的模块以及文件,

以及这些模块和文件以什么方式被加载到内存中,具体格式如下: ;MODULES Name Path Memory Type ;FILES Name Path Memory Type Name:模块的名字,比如一个 dll 或者 exe 文件的文件名。 Path:路径,一般都是 Windows CE 工程的 Release 或 Debug 目录。 Memory:指定该模块被放在哪个区域,一般都是在 NK 区域。 Type:定义了文件的类型。具体类型如下: 类型值 描述

S 系统文件。 H 隐藏文件。 R 只压缩模块的资源部分。 C 压缩模块的所有部分。 D 禁止调试。 N 模块是不可信任的。 P 让 romimage.exe 不检查 CPU 的类型。 K romimage.exe 必须固定该模块的内核地址,有该标记的模块只能被

LoadKernelLibrary 函数加载。 X 让 romimage.exe 对该模块签名。 M 运行时加载整个模块,不要按需分页。 L 让 omimage.exe 不分离 ROM DLL。

一般来说,FILES 项的 Type 只支持 S,H,N,D 等几个类型,而 MODULES 项的 Type支持所有类型。 4. BIB 文件的编译 对于 BIB 文件来说同样支持“条件编译”,我们可以通过设置环境变量来选择性地将某

些模块打包到 Windows CE image 中。一般在 BSP 中,对于一些驱动模块的环境变量我们 IF来进行条件判断。而对于 Windows CE 的系统模块来说,一般都是 SYSGEN 变量,使用

@CESYSGEN IF 来判断。

和 REG 文件一样,在 Windows CE 的编译过程中,Platform Builder 会利用 fmerge –bib命令,将Platform Builder自带的非BSP的REG文件,例如 common.bib、config.bib、project.bib、platform.bib 等文件会合成为 ce.bib。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 115: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

fmerge -reg 会依次提取下列文件中的项到到 ce.bib 文件中: config.bib common.bib dcom.bib gdiex.bib ie.bib script.bib servers.bib shellsdk.bib shell.bib wceshellfe.bib wceappsfe.bib viewers.bib directx.bib datasync.bib netcf.bib SQLCE.bib project.bib platform.bib

若是在提取过程中遇到相同的项,前面的有效,后面的忽略。比如说有个项在 project.bib和 platform.bib 中同时出现,合成过程以 project.bib 中的项有效,而忽略 platform.bib 中相同

的那项。 5. BIB 文件的种类

在 BSP 的开发过程中最常见的 BIB 文件主要是 eboot.bib,config.bib,platform.bib 和

project.bib,下面就简单介绍一下: project.bib:该文件主要包含了自创建的 Windows CE 工程中所需的一些文件。 platform.bib:该文件包含了和硬件平台相关的文件,主要以驱动程序为主。 config.bib:该文件描述了 Windows CE 系统的内存配置。 eboot.bib:该文件描述了 eboot 的内存配置。

还有一些其它的 BIB 文件,在 Windows CE 系统编译后都会被复制到工程的 Release 或

Debug 目录下。比如 common.bib,ie.bib 等。这些文件列出了 Windows CE 的组件相关的文

件,根据用户所订制的系统的不同,它们会被选择性地打包到 Windows CE image 中去。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 116: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第四节:config.bib 文件

在上一节中我们已经讲到,config.bib 文件分两个部分:MEMORY 项和 CONFIG 项。

MEMORY 项定义内存的分片方法,CONFIG 项定义系统其它的一些属性。以下是一个

config.bib 文件 MEMORY 段的例子: MEMORY ; Name Start Size Type ; ------- -------- -------- ---- BLDR 80000000 00068000 RESERVED DRVGLOB 80068000 00001000 RESERVED NK 80069000 02000000 RAMIMAGE RAM 82069000 01F97000 RAM

Name 在原则上可以取任意字符串,在上一节已经提到,ROMIMAGE 通过一个内存片

的属性来判断它的用途。RESERVE 属性表明该片内存是 BSP 自己使用的,系统不必关心其

用途;RAMIMAGE 说明它是一片存放 OS IMAGE 的内存;而 RAM 则表示些片内存为 RAM,

系统可以在其中分配空间,运行程序。

要注意的是,虽然 Name 可以取任意字符串,但存放 ROM 的这片内存的名称,即 NK一般不要改动。因为 BIB 文件中定义将一个文件加入到哪个 ROM 片(Windows CE 支持将

ROMIMAGE 存放在不连续的几个内存片中)中时会用到这个名称,例如下面这条语句就定

义将 touch.dll 放在名称为 NK 这片 ROM 中: touch.dll $(_FLATRELEASEDIR)\touch.dll NK SH 因此如果将 NK 改为其它名称,则系统中所有的 BIB 文件中的这个 NK 串都需要改动,这

将带来很大的麻烦。

RAM 片必须在物理上是连续的,如果系统的物理内存被分成了几片,则在 RAM 片只

能声明一片,其它的内存在启动阶段由 OEMGetExtensionDRAM 报告给系统,如果有多于

一个的内存片,应该用 OEMEnumExtensionDRAM 报告。NK 片则没有此限制,只是 NK 跨

越两个以上物理内存片时,系统启动时会显示这个 OS 包跨越了多个物理内存片,认为是个

错误,但并不影响系统的执行与稳定性,因为系统启动之时便会打开 MMU 而使用虚拟地址,

从而看到连续的内存空间。当然,如果内核自己都被放在了两个内存片上,那系统应该就无

法启动了。而其它保留起来的内存片是一般是给驱动程序 DMA 用,应该保证它们在物理上

的连续性,因为 DMA 是直接用物理地址的。

CONFIG 项中以下几个需要格外注意: ROMSTART:它定义 ROM 的起始位置,应该和 NK 片的起始位置相同。 ROMSIZE:定义 ROM 的大小,应该和 NK 片的大小相同。 ROMWIDTH:它只是定义 ROMIMAGE 生成 ROM 包时如何组织文件,而非真正 ROM 的

宽度,所以一般都应该为 32。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 117: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

如果只需要生成 NK.bin 而不需要 NK.nb0,则以上三项可以注释掉。 COMPRESSION:一般定义为 ON,以打开压缩功能,从而减小 BIN 文件的尺寸。 AUTOSIZE:一般应该设为 ON,以使系统将定义给 ROM 但没有用掉的内存当做 RAM 使

用,而提高 RAM 的使用率。注意,如果 ROM 是 FLASH,则不能设为 ON,因为 FLASH不能当作 RAM 使用。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 118: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第七章:AT91SAM9261EK BSP 简介 在第三章中我们已经提到,ATMEL 的 AT91SAM9261EK 的官方 BSP 是由 Adeneo 公司

提供的,目前已经开放源码,最新版本是 1.7.0。 第一节:BSP 的组件介绍 Platform Builder 的组件是由一些 CEC 文件来管理的,BSP 中的组件也不例外。安装完

BSP 后,我们可以在 BSP 的安装根目录下找到 AT91SAM9261EK.cec 这个文件。 如果已经在 Platform Builder 5 中导入了 AT91SAM9261EK.cec,我们就会在 Catalog 窗

口中看到所有组件,如下图:

如果只要查看这个 BSP 中包含的组件,那我们只要双击 CEC 文件,Platform Builder CEC Editor 这个软件就会打开 CEC 文件,如下图:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 119: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

以下我们就来介绍一下 AT91SAM9261EK BSP 中所包含的组件。 AT91SAM926x Processors - AT91SAM9261 support:AT91SAM9261 CPU 的支持组件。 Boot Mode - Boot from SPI DataFlash:启动方式,AT91SAM9261 支持从 SPI DataFlash 启动。 Device Drivers 目录:AT91SAM9261 支持的设备驱动,驱动列表如下: Audio:声卡驱动 Display:液晶屏显示驱动 Ethernet:DM9000 网卡驱动 GPIO:通用输入输出(General Purpose I/O)驱动 I2C:I2C 总线驱动 Keypad:按键驱动 PWM:脉宽调制(Pulse Width Modulation)控制器驱动 Serial Driver:串口驱动 SPI:串行外围设备接口(Serial Peripheral Interface)驱动 USB Function:USB Function 驱动 USB Host:USB Host 驱动 Ethernet Bootloader (eboot):Ethernet Bootloader 驱动

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 120: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

KITL - KITL on Serial:基于串口的 KITL(Kernel Independent Transport Layer)调试功能 Saved registry - Registry saved in NAND Flash (Hive):Hive 驱动 Storage Drivers 目录:Storage Driver 设备驱动,驱动列表如下: AtapiEbi:ATAPI 外部总线接口驱动 MSFlash Drivers - Nand Flash:Nand Flash 驱动 SD Memory Card Drivers:SD 卡驱动 第二节:BSP 目录结构 BSP 安装完毕后,就会在\WINCE500\PLATFORM 文件夹下生成 AT91SAM9261EK 文

件夹,这是 BSP 文件的主文件夹,同时还会在\WINCE500\PLATFORM\COMMON\SRC\ARM文件夹下生成 ATMEL 文件夹,里面包括两个文件夹:AT91SAM926x 和 AT91SAM9261。 在 AT91SAM9261EK 文件夹下,主要有下列文件夹: CESYSGEN:调用 CeSysgenPlatform.mak,处理编译过程中的@ CESYSGEN 预处理符号。 FILES:包括 config.bib、platform.bib、platform.dat、platform.db、platform.reg,主要处理内

存分配、驱动文件的定位等。 SRC:包括 BOOTLOADER、内核和所有支持的设备的驱动源码。 Tools_ARMV4I:FlashLoader 组件的源码,FlashLoader 用于打开和关闭 CF 卡和 SD 卡。 在 ATMEL 文件夹下的 AT91SAM926x 文件夹和 AT91SAM9261 文件夹,主要是一些驱

动文件,以及驱动文件的公用头文件和库。 在编译过程中,以下的几类文件是应该特别注意的: AT91SAM9261EK.cec:包括了 BSP 支持的所有组件的导入信息。 config.bib:内存分配文件。 platform.bib:根据 AT91SAM9261EK.cec 导入的编译信息,指定相应驱动的 DLL 文件的复

制目录。 platform.reg:根据 AT91SAM9261EK.cec 导入的编译信息,指定相应驱动的 REG 文件的复

制目录。 makefile 文件:编译规则文件。 dirs 文件:编译目录列表文件,只有 dirs 文件内列出的文件夹才会被编译。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 121: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第三节:向 BSP 中添加驱动的流程 有时候 BSP 中的内置驱动无法满足我们的实际要求,这就需要往 BSP 中添加驱动,添

加驱动的一般流程如下: 1. 将获得的驱动文件复制到相应文件夹中,如果添加了文件夹,请在相应的 dirs 文件中加

入所添加的文件夹。 2. 修改 AT91SAM9261EK.cec,把添加的驱动的编译信息加入 AT91SAM9261EK.cec 文件

中去。AT91SAM9261EK.cec 是一个文本文件,因此可以参照其它已添加驱动的编译信

息来编写新驱动的编译信息,也可以用 Platform Builder 自带的 Platform Builder CEC Editor 添加新驱动的编译信息。

3. 修改 platform.reg,加入新驱动的 REG 文件的复制命令,新驱动的 REG 文件可以在驱动

目录下找到。 4. 修改 platform.bib,加入新驱动的 DLL 文件的复制命令,新驱动的 DLL 文件名可以在新

驱动的 REG 文件内找到。 5. 在 Platform Builder 中重新导入 AT91SAM9261EK.cec,向工程中添加新加入的驱动并重

新编译工程。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 122: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第八章:定制 Windows CE 操作系统进阶 在第四章中我们定制了一个简单的 Windows CE 操作系统,本章我们进一步讲解

Windows CE 中各种组件和功能的应用,以及定制时的一些设置和技巧。 第一节:Build Options 选择“Platform → Settings…→ Build Options”可以调出 Build Options 设置,其中是

一些编译参数的选择,如图所示:

以下我们来详细解释一下各个参数的含义: Buffer tracked events in RAM: 启用 RAM 缓冲事件跟踪,在系统中添加 OSCapture.exe, 可以记录系统日志到文件。 Enable CE Target Control Support:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 123: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

为系统设计启用 Windows CE 目标控制支持,并且启用 KITL(内核独立传输层)。 Enable Eboot Space In Memory: 配置 config.bib 文件中预留内存空间,允许操作系统在启动过程中读取 bootloader 存储的数

据。 Enable Event Tracking During Boot: 开启事件跟踪子系统,系统日志跟踪启动早于内核和文件系统初始化。 Enable Full Kernel Mode: 可使线程运行在内核模式,选择该模式会使系统比较脆弱,但是性能会有所提高。 Enable Kernel Debugger: 启用内核调试器,需要有 KITL 的支持。 Enable KITL: 启用 KITL(Kernel Independent Transport Layer,内核独立传输层),开启完全内核模式,可

以提高运行库映像中的系统性能,要建立主机和目标机间的通讯就必须选择该选项。取消该

项也会同时取消被选定的“Enable CE Target Control Support ”选项。 Enable Profiling: 将 Windows CE 有关内核的信息以日志的形式写入系统中。 Enable Ship Build: 这是一个有条件编译的标志,设置它表示系统会提供详细的调试信息来帮助调试(这 个选项只有设置为 Release 版本时才显示,而 Debug 版本中是没有这个选项的)。 Flush tracked events to Release Directory: 在系统中添加 CeLogFlush.exe, 把 OSCapture.exe 涉及到的日志写入 Celog.clg 文件中,并存

入工程目录下的 Release 目录中,同时开启事件跟踪功能。 Run-Time Image Can be Larger than 32MB: 使生成的镜像能够大于 32 MB,注意需要同时修改 config.bib 文件。 Use Xcopy instead of links to populate release directory: 用 Xcopy 将所需的文件复制到 Release 目录。 Write Run-time Image to Flash Memory: 允许在下载结束后将 Run-time Image 直接烧入 flash。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 124: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第二节:Hive-based Registry

Windows CE 实质上是一个“基于内存”的操作系统,操作系统的文件存在 NandFlash中,默认状态下每次启动后将系统从 NandFlash 中读入内存,所有的操作都是在内存中进行

的,这样就导致了系统掉电后一切设置均不可保存。而 Hive-based Registry(基于 Hive 的注

册表)就是为了解决这个问题而产生的。 如第六章所述,基于 Hive 的注册表把注册表数据存放在文件系统的文件上,这种文件

被称作蜂箱(Hive)。这就意味着不再需要在系统断电和启动时进行保存恢复注册表操作。 要在 Wince 中开启 Hive,需要做如下选择: Catalog → Core OS → Windows CE devices → File Systems and Data Store → File System → Internal (Choose 1) → RAM and ROM File System Catalog → Core OS → Windows CE devices → File Systems and Data Store → Registry Storage (Choose 1) → Hive-based Registry Catalog → Core OS → Windows CE devices → File Systems and Data Store → Registry Storage (Choose 1)-> Storage Manager

Storage Manager 下的项目是对 NandFlash 的支持,NandFlash 的驱动放在: \WINCE500\PLATFORM\At91sam9261ek\Src\Drivers\Nandflash 下面,在编译之前先确认一下

所用的目标板上的 NandFlash 型号的驱动是否包括在内。 编译完镜像并烧录到目标板上后,启动后第一次进入系统时需要校准触摸屏,以后每次

关机前都选择“开始->挂起(Start->Suspend)”就可以将当前注册表保存在 NandFlash 下面

的 Documents and Settings 里面,可以保存一切与注册表有关的项目的修改,比如触摸屏的

校准、桌面图片、扩展名和隐藏文件显示等等。 第三节:Microsoft ActiveSync 与 CAB File 支持

Microsoft ActiveSync 是微软的同步工具,首先我们要在 PC 端安装 Microsoft ActiveSync软件,并用 USB 线将 PC 与目标板的 USB Device 口相连(详见第二章)。 Platform Builder 中的 Microsoft ActiveSync 支持位于: Catalog → Core OS → Windows CE devices → Applications - End User → ActiveSync

将相应组件加入系统后编译(当然首先应加入 USB 驱动与组件),启动系统后,目标板

会自动与 PC 的 Microsoft ActiveSync 相连接:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 125: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

连接上以后我们可以通过 PC 端的“我的电脑->移动设备”来管理目标板上的文件:

还可以通过 Microsoft ActiveSync 来安装某些软件:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 126: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Windows CE 下的标准安装文件为 CAB File,CAB File 支持位于: Catalog → Core OS → Windows CE devices → Applications - End User → CAB File Installer/Uninstaller

将此组件添加进系统后,我们可以直接在 Windows CE 系统中安装使用 CAB 打包的软

件。 第四节:多语言支持

Windows CE 支持多种语言,可通过“Platform → Settings → Local”进行设置。如要

选择简体中文,可以先在 Locales 里面选择中文(中国),然后在 Default Language 下拉菜

单中也选择中文(中国),编译后就可以发现系统的默认语言变成了简体中文,其它语言也

可以照此方法选择。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 127: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

注意:因为中文界面需要中文字库的支持,所以中文界面的系统会比西文界面的系统大得

多。 Windows CE 也支持多种语言输入,各种语言的输入法位于: Catalog → Core OS → Windows CE devices → International → Locale Specific Support

以简体中文为例,打开 Chinese (Simplified) → Input Method Editor (Choose 1)

可以看到有两种输入法:MSPY 3.0 for Windows CE 和 Pocket IME,任选一种即可。如

果选择了 MSPY 3.0,还要加入输入法的数据库(MSPY 3.0 for Windows CE Database)才能

正常使用。输入界面如下所示:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 128: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Windows CE 有内置的手写输入,称为 Handwriting Recognizer Engine (HWX),HWX 支

持繁体中文、日文、韩文和大部分的西欧字符,但不支持简体中文,这点是比较遗憾的,当

然我们可以通过安装第三方手写输入软件来弥补这个缺陷。在选择输入法的时候要注意与所

选的语言相对应,否则可能会出错。 第五节:使用串口 VC9261-EK 自带两个串口,以及一个调试用串口 DBGU。在 Platform Builder 中,串口

组件和驱动位于: Catalog → Core OS → Windows CE devices → Core OS Services → Serial Port Support Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → Serial Driver Serial Driver 下有“Serial Driver (USART0)”、“Serial Driver (USART1)”、“Serial Driver (USART2)”,分别代表 BSP 支持的三个串口,请按需要添加。 串口注册表格式如下: [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial1] "Index"=dword:4 ; "Prefix"="COM" ; COM "Dll"="at91sam9261ek_serial.dll" ; in at91sam9261ek_serial.dll "SerialPortIndex"=dword:0 ; USART0 "TxBufferSize"=dword:400 ; "RxBufferSize"=dword:2800 ; 其中"Index"的值为系统中的串口号,"SerialPortIndex"的值为显示的串口名称的序号,

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 129: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

请注意区别。 此外,USB Fuction 是采用虚拟串口通讯,因此要占用一个串口号,Platform Builder 默认状态下是自动为 USB Fuction 分配串口号,为了避免和其它串口冲突,我们需要为 USB Fuction 指定一个串口号,需要做如下修改: 修改 WINCE500\PUBLIC\COMMON\OAK\FILES\common.reg,在 [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class] 中加入"Index"=dword:n,n 代表指定的串口号,是一个 16 进制的数字。 添加完组件和驱动后重新编译,将所得的镜像烧入 VC9261-EK。在这里,我们使用一

个名为“WinCE 串口调试助手”的小工具来测试串口功能。 打开“WinCE 串口调试助手”,做好串口设置:

把 PC 端的串口调试工具也做相应的设置,即可利用 VC9261-EK 的串口与 PC 进行数据

传递:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 130: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 131: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第六节:保存桌面、开始菜单等文件夹

在开始本节话题之前,首先我们来看一下 Windows CE 在启动的时候系统到底都做了些

什么事情。

Windows CE 自 bootloader 启动之后,原先存放在 NandFlash 中的系统镜像(NK.nb0)被复制到 RAM 中,然后 RAM 中的系统再根据配置文件内的定义,将指定的一些文件拷贝

到相应的文件夹里面去。

在\WINCE500\PUBLIC\COMMON\OAK\FILES\INTLTRNS 这个文件夹下面可以看到许

多以 4 位数字命名的文件夹,这些都是语言配置文件所在的文件夹,举例说,简体中文就是

0804,在每个文件夹下面都有这个语言的 common.str 文件。 在上一节里面,我们已经成功地实现了关机后保存注册表,但是重新开机后却发现桌面

和开始菜单内的快捷方式仍然消失了,造成这个现象是因为这些东西都是保存在RAM里面,

关机断电后自然会消失。若要实现断电后仍然能保存桌面和开始菜单里面的内容,就需我们

把这些文件夹统统转移到 NandFlash 里面去。 既然要对 NandFlash 进行操作,首先是加入支持 NandFlash 的驱动和组件: Catalog → Core OS → Windows CE devices → Storage Manager Catalog → Core OS → Device Drivers-> Storage Devices → Storage Devices Catalog → Third Party → BSPs → AT91SAM9261EK → Storage Devices → MSFlash Drivers →Nand Flash

然后修改配置文件 common.str,以简体中文为例,将: // Paths for SHGetSpecialFolderPath #define LOC_PATH_WINDOWS "\\Windows" #define LOC_PATH_DESKTOP "\\Windows\\桌面" #define LOC_PATH_STARTUP "\\Windows\\StartUp" #define LOC_PATH_RECENT "\\Windows\\Recent" #define LOC_PATH_PROGRAMS "\\Windows\\程序" #define LOC_PATH_FAVORITES "\\Windows\\Favorites" #define LOC_PATH_FONTS "\\Windows\\Fonts" #define LOC_PATH_MYDOCUMENTS "\\My Documents" #define LOC_PATH_PROGRAMFILES "\\Program Files" #define LOC_PATH_APPDATA \\Application Data 修改为: // Paths for SHGetSpecialFolderPath #define LOC_PATH_WINDOWS "\\Windows" #define LOC_PATH_DESKTOP "\\NandFlash\\Windows\\桌面"

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 132: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

#define LOC_PATH_STARTUP "\\NandFlash\\Windows\\StartUp" #define LOC_PATH_RECENT "\\Windows\\Recent" #define LOC_PATH_PROGRAMS "\\NandFlash\\Windows\\程序" #define LOC_PATH_FAVORITES "\\NandFlash\\Windows\\Favorites" #define LOC_PATH_FONTS "\\Windows\\Fonts" #define LOC_PATH_MYDOCUMENTS "\\My Documents" #define LOC_PATH_PROGRAMFILES "\\Program Files" #define LOC_PATH_APPDATA "\\Application Data"

简单的说,就是将要转移到 NandFlash 的文件夹的路径前加上“\\NandFlash”。 修改完 common.str 后,再对涉及到的组件的 dat 文件进行修改,把相关路径前都加上

“\NandFlash”即可。组件所在的目录为:\WINCE500\PUBLIC,而相应的 dat 文件位于每

个组件目录下的\OAK\FILES 文件夹。以下是一些常用的需要修改的组件文件夹和对应组件

的列表: \COMMON 通用配置 \DATASYNC 数据同步组件 \DIRECTX DIRECTX 组件 \IE IE 浏览器组件 \SERVERS 服务组件(如 Web Server、File Server、FTP Server 等) \SHELL Explorer 外壳 \VIEWERS 文件查看器组件 \VOIP IP 网络聊天组件 \WCEAPPSFE Outlook 等同步软件组件 \WCESHELLFE 各种 Windows Shell 的组件

比如说,

root:-Directory("\LOC_PROGRAMFILES_DIR")

这句语句的意思就是在根目录下建立 LOC_PROGRAMFILES_DIR 这个文件夹,如果我们要

把这个文件夹转移到 NandFlash 下面的话,只要把语句改为:

root:-Directory("\NandFlash\LOC_PROGRAMFILES_DIR") 即可。

Directory("\Windows\LOC_DESKTOP_DIR"):-File("LOC_INTERNETEXPLORER_LNK", "\Windows\iesample.lnk") 这 句 语 句 的 意 思 就 是 说 , 把 Windows 下 的 iesample.lnk 这 个 文 件 拷 贝 到

\Windows\LOC_DESKTOP_DIR 这个文件夹下,如果\LOC_DESKTOP_DIR 在 NandFlash 里

面,只要把语句改为:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 133: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Directory("\NandFlash\Windows\LOC_DESKTOP_DIR"):-File("LOC_INTERNETEXPLORER_LNK", "\Windows\iesample.lnk") 即可 注意:“File()”里面的路径是源文件路径,就是从 NandFlash 里面烧录的镜像拷贝到 RAM里面的文件,这个路径一般不做修改,而“Directory()”是需要修改的目标路径。

修改完成后重新生成 NK.bin,烧录到目标板后重启,如果成功的话,我们就会发现桌

面等作了修改的文件夹就能实现断电保存了。

有一点需要指出,桌面等目录中由 dat 或 bib 配置文件指定拷贝的文件即使被删除,下

一次重启以后仍然会再次出现,我们只能通过修改 dat 或 bib 配置文件来指定这些文件是否

要拷贝到相应文件夹里面,而不能通过简单的删除来使其“消失”。 第七节:Windows CE 的编译和快速编译技巧 Platform Builder 中的 Build OS 菜单下有许多编译命令,常用的命令介绍如下: Sysgen:添加或删除了新的组件时的时候,重新编译工程。 Build and Sysgen:当你更新了 PUBILC 文件夹下的源代码的时候,需要执行一下这个命令。

如果打了补丁,一般也需要执行一下。 Build and Sysgen current BSP:如果改变了 BSP 部分的代码,就需要执行这个命令。 Clean Before Building:每次在编译工程前执行命令 "blddemo clean -q",当修改了 \WINCE500\Public\CEBASE\OAK\Misc\Cesysgen.bat 的时候,或者改变了以 SYSGEN,BSP为前缀的环境变量的时候,需要使用这个来编译。强烈建议每次编译工程之前都把这个选项

选上。 Make Run-time Image:不重新编译整个工程,只把 Release 或 Debug 目录下的文件重新打包,

一般如果只修改 Release 或 Debug 目录下的 REG 或 BIB 文件,而不改变驱动时就可以执行

这个命令重新生成镜像。 Windows CE 的编译过程如下图:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 134: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

从图中可以看出,整个编译过程都是通过调用 Blddemo.bat 来实现的,Blddemo.bat(即

blddemo 命令)后面可以跟不同的参数,完成不同的功能。编译阶段和系统产生阶段由

Cebuild.bat 完成,文件拷贝阶段由 Buildrel.bat 完成,最后的生成映像阶段由 Makeimg.exe完成。下面介绍一下各个阶段: 1. 编译阶段(Compile phase)

这个过程指对 Windows CE 根目录下的 Private 和 Public 文件夹进行编译,将里面的源

代码编译成库文件等,这个过程可能会花费非常长的时间。除非改动了 Private 或 Public 目

录下的源码,否则是不需要编译的。一般我们编译自己的工程的时候,不需要这个步骤。 2. 系统产生阶段(Sysgen phase)

在这个过程中,系统会根据你在 Platform Builder 中 Catalog 的选项,删除和设置相应的

SYSGEN 环境变量,链接相应的静态库,过滤头文件,为 SDK 创建所需的导入库,同时还

会为 Windows CE 系统创建一些配置文件,最后会编译当前的 BSP 和应用程序。 3. 文件拷贝阶段(Release Copy phase)

拷贝所有所需的文件到工程的 Release 或 Debug 文件夹下面,主要是前面系统产生阶段

所产生的所有文件。 4. 生成镜像阶段(Make run-time image phase)

该过程首先调用 cenlscmp.exe,根据语言和地区设置生成 wince.nls 文件。然后调用

fmerge.exe 合并一些配置文件,合并所有 bib 文件为 ce.bib,合并所有的 reg 文件为 reginit.ini,

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 135: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

合并所有的 dat 文件为 initobj.dat,合并所有的 db 文件为 initdb.ini。之后调用 regcomp.exe压缩 reginit.ini 为 default.fdf。根据 LOCAL 环境变量的设置调用 res2exe.exe 更新所有的 dll、exe 和 cpl 文件中的资源文件,主要是更新其中的语言部分。再调用 txt2ucde.exe 转换所有

ASCII 码字符串为 UNICODE。最后调用 romimage.exe 合并所有文件为 NK.bin 文件,并按

照 config.bib 的设置决定是否要生成 NK.nb0 文件。

在编译过程中有时会遇到编译错误,除了通过查看输出窗口信息外,也可以通过察看

Build.log,Build.err 和 Build.wrn 文件来分析问题,这三个文件位于”\WINCE500”根目录

下面。编译错误可能在不同的编译阶段产生,我们也可以根据这一点来分析问题。

一般在系统产生阶段(Sysgen phase)出现错误很可能是由于丢失组件或文件造成的,

这时候 Build.log 会提供更多信息帮助分析问题。在这个阶段产生错误,很可能是由于在当

前工程中添加或者删除 Windows CE 组件造成的,其中有些组件的更改是需要进行“Clean Before Building”的,而不能只使用“Sysgen”命令。所以强烈建议每次在添加或删除组件

前都做“Clean Before Building”。

系统产生阶段(Sysgen phase)也会编译 BSP 和部分应用。所以如果错误出现在系统产

生阶段的编译过程中,也可能就是你的代码有语法错误,当然这种错误很好查。还有一种可

能出现的错误是连接错误,有可能是丢失了 lib 库文件或者链接错了库文件,也有可能是调

用了错误的 API 函数,还有就是设置了错误的环境变量,这些查起来相对困难一点。

如果错误产生在文件拷贝阶段(Release copy phase),一般是和硬盘有关,检查一下

Release 或 Debug 文件夹所在磁盘的磁盘空间。

如果问题出现在生成镜像阶段(Make run-time image phase),根据编译的输出窗口的输

出信息判断问题出在哪个子阶段。有可能是你的 bib 文件或者 reg 文件中存在语法错误导致

合并文件时出错,也有就是可能丢失了某个或者某些文件,这些丢失的文件很可能是由于在

前面的编译过程中出现错误导致的。

当然,也有时候会遇到一些奇怪的问题,这些问题可能是由于没有正确的安装 Platform Builder 造成的,比如在安装 Platform Builder 的时候,路径中不要有中文或者空格或者其他

比较奇怪的字符。补丁要按照顺序来打,如果需要 Platform Builder 5 和 Platform Builder 6共存,请按照 Platform Builder 5、Visual Studio 2005、Platform Builder 6 这样的顺序来安装。

在 Platform Builder 下,重新编译一个工程是需要花很长时间的。当第一次编译完工程

以后,如果修改了驱动或 BSP,一般来说是不需要重新编译整个工程的。 1. 如果更改了驱动,我们可以在菜单里面选择“Build OS → Open Release Directory” ,

然后在弹出的命令行窗口中,通过 DOS 命令切换到你要编译的驱动目录,然后运行

“build”就可以了。也可以运行“build -c”会强制把所有的文件都编译一遍。被编译

后的驱动的 DLL 会被自动复制到 Release 或 Debug 文件夹下,然后再运行一下“Make Run-time Image”即可。

2. 如果改变了 OAL 部分的代码,同样用上面介绍的方法,需要注意的是,OAL 部分可能

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 136: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

包含多个文件夹,如果改变了 OAL 里面的代码,不要进入 OAL 里面的文件夹去编译,

一定要在OAL这层进行编译,这样OAL部分的 lib,dll才会被重新编译并复制到Release或 Debug 文件夹下。

3. 如果改变了配置文件,比如 config.bib,platform.reg 文件,那么直接将这些文件拷贝到

你的工程目录下面,然后运行一下“Make Run-time Image”就可以了。 4. 如果改变了 eboot 部分的代码,那按照步骤 1 的方法就可以了,可能你都不需要运行

“Make Run-time Image”命令,因为可能你只需要 eboot.bin 或者 eboot.nb0。 第八节:导出 SDK

SDK 是 Software Development Kit 的缩写,中文意思是“软件开发工具包”。一般我们所

说的 SDK 为广义 SDK 的一个子集——即开发 Windows 系统下的应用程序所使用的 SDK。SDK 包含了开发该 Windows 版本所需的 Windows 函数和常数定义、API 函数说明文

档、相关工具和示例。 在 Platform Builder 中,在对工程进行一次编译后,我们可以为当前使用的 BSP 导出一

份 SDK,以方便开发相应的程序。 我们可以在“Platform → SDK”菜单下看到导出 SDK 的命令:

第 1 步:选择“New SDK…”,然后选择“下一步”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 137: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 2 步:填上 SDK 安装文件的名称和生产者:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 138: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 3 步:选择开发语言:

第 4 步:选择“Finish”,结束向导设置:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 139: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 5 步:选择“Platform → SDK → Build SDK…”,开始导出 SDK:

导出完毕后,我们可以在工程目录的 SDK 文件夹下找到导出的 SDK 安装文件。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 140: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第九章:网络服务组件及 Telnet 应用

Windows CE 内置有比较全面的网络服务组件,在 Platform Builder 中,网络组件位于 Catalog → Core OS → Windows CE devices → Communication Services and Networking → Servers

一些约定:在本节中,我们假设 Wince 已经配置好网络,开启了 DHCP,本机地址为

192.168.1.102,网关为 192.168.1.1。 第一节:Command Shell Command Shell 本身不是 Windows CE 的网络服务组件,而是 Windows CE 的命令行模

式,因为某些服务(如 Telnet)需要有命令行模式的支持,所以也在这里介绍一下。 要想加入 Command Shell 组件,请在工程中加入: Catalog → Core OS → Windows CE devices → Shell and User Interface → Shell → Command Shell → Command Processor Catalog → Core OS → Windows CE devices → Shell and User Interface → Shell → Command Shell → Console Window

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 141: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

重新编译后,启动系统后我们可以在开始菜单的程序中找到“命令提示符”这个快捷方

式,启动后就出现 Wince 的命令行窗口,支持大部分的 DOS 命令,如图所示:

第二节:Web Server (HTTPD) Web Server 组件可以把 WindowsCE 系统变成一个简单的 http 服务器,可以把它看成是

Windows 下的 IIS。 将此服务组件加入系统,编译后启动,系统会在\Windows下生成\www\wwwpub目录,

访问http://192.168.1.102,如果浏览器内出现如下图所示,就表示Web Server已经成功启动:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 142: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

修改 servers.dat,将: ; @CESYSGEN IF SERVERS_MODULES_HTTPD root:-Directory("\Windows"):-Directory("www") ;root:-Directory("\Windows"):-Directory("www") Directory("\Windows\www"):-Directory("wwwpub") Directory("\windows\www\wwwpub"):-File("default.htm","\windows\httpd_default.htm") 改为: ; @CESYSGEN IF SERVERS_MODULES_HTTPD root:-Directory("\NandFlash\Windows"):-Directory("www") ;root:-Directory("\NandFlash\Windows"):-Directory("www") Directory("\NandFlash\Windows\www"):-Directory("wwwpub") Directory("\NandFlash\windows\www\wwwpub"):-File("default.htm","\windows\httpd_default.htm")

修改 servers.reg,将: ; Default HTTP server settings [HKEY_LOCAL_MACHINE\COMM\HTTPD\] "MaxLogSize"=dword:8000 "LogFileDirectory"="\\windows\\www" "NTLM"=dword:1 "Basic"=dword:0 ; Many configuration web pages (and telnet/ftp servers) by convention use a ; user named ADMIN to have admin level priveleges. Make sure this special ADMIN user ; has admin-level access to all Virtual Roots in web server as well, for convenience. "AdminUsers"="ADMIN" [HKEY_LOCAL_MACHINE\COMM\HTTPD\VROOTS\/] @="\\windows\\www\\wwwpub\\" "a"=dword:0 改为: ; Default HTTP server settings [HKEY_LOCAL_MACHINE\COMM\HTTPD\] "MaxLogSize"=dword:8000 "LogFileDirectory"="\\NandFlash\\windows\\www" "NTLM"=dword:1

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 143: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

"Basic"=dword:0 ; Many configuration web pages (and telnet/ftp servers) by convention use a ; user named ADMIN to have admin level priveleges. Make sure this special ADMIN user ; has admin-level access to all Virtual Roots in web server as well, for convenience. "AdminUsers"="ADMIN" [HKEY_LOCAL_MACHINE\COMM\HTTPD\VROOTS\/] @="\\NandFlash\\windows\\www\\wwwpub\\" "a"=dword:0 执行 Make Run-time Image 命令,即可将 Web Server 的根目录转移到 NandFlash 中,实

现断电保存。但由于 Web Server 服务与以下将要讲到的 File Server 服务密切相关,因此如

果只做以上修改,将会与 File Server 服务的 NAS 配置页面起严重的冲突。 Web Server 也支持 ASP 等,在 Web Server (HTTPD)下有不少支持,大家可以选择添加。 第三节:File Server File Server 组件支持将 Windows CE 下的目录与局域网内的其它终端进行共享,是一个

基于 NAS(Network Attached Storage,网络附加存储)的服务。 将此服务组件加入系统,并在 servers.reg 做如下修改:将 [HKEY_LOCAL_MACHINE\COMM\HTTPD\VROOTS\/] @="$REDIRECT" "Redirect"="/remoteadmin/" 这一段注释掉,否则将会与 Web Server 的根目录发生冲突。

编 译 后 启 动 系 统 , 在 同 一 网 关 的 其 它 终 端 中 ( 比 如 PC ) 访 问 :

http://192.168.1.102/remoteadmin/

在第一次进入该页面时,会要求用户设置密码:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 144: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

输入密码后按“应用更改”,片刻后会出现“正在重置网关”:

在这个过程中可能要求输入帐户和密码,帐户为“admin”,密码就是刚才设置的密码。 然后会要求用户对系统设置一个网络名称:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 145: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

按“应用更改”后进入设置主页面:

进入“添加/删除网络适配器”,在里面选择“DM9CE1”(即目标板的 DM9000 网络适

配器)后按“Submit Query”

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 146: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

再进入“添加/删除共享”,进入共享设置页面:

在需要共享的文件夹后面填上共享名称后按“Add”,再按随即出现的“Permissions”,设置目录权限:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 147: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

默认的权限是 Deny,将其改为 Allow 后,先按“Update”,再按“Done”,这样我们就

完成了共享设置。 在其它终端的浏览器中输入\\192.168.1.102,稍等片刻就会出现共享文件夹页面:

之后我们就可以像使用局域网共享文件夹那样使用 File Server 共享文件夹了。 第一次设置完毕后,以后进入 NAS 设置页面时会跳过前面的设置直接进入设置主页面。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 148: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第四节:FTP Server 顾名思义,FTP Server 的作用是把 Windows CE 系统变成一个 FTP 服务器,我们可以非

常方便地通过 FTP 软件来管理目标板上的文件。 加入组件后,修改 servers.reg,将: [HKEY_LOCAL_MACHINE\COMM\FTPD] "IsEnabled"=dword:0 "UseAuthentication"=dword:1 ; "UserList"="add;semicolon;separated;list;of;users;here" "AllowAnonymous"=dword:0 "AllowAnonymousUpload"=dword:0 "AllowAnonymousVroots"=dword:0 "DefaultDir"="\Temp\\" 改为: [HKEY_LOCAL_MACHINE\COMM\FTPD] "IsEnabled"=dword:1 "UseAuthentication"=dword:1 ; "UserList"="add;semicolon;separated;list;of;users;here" "AllowAnonymous"=dword:1 "AllowAnonymousUpload"=dword:1 "AllowAnonymousVroots"=dword:1 "DefaultDir"="\\NandFlash\\" 即可实现匿名登录 FTP 服务器。注意默认状态下"IsEnabled"的值为 0,即关闭 FTP Server,需要手动将其改为 1 开启服务。"DefaultDir"是默认目录,将其改为 NandFlash 下

的目录即可,当然这个目录是要真实存在的,否则需要在 servers.dat 里面使用 root 命令建立

目录或手动建立目录。 编译后启动系统,在其它终端的浏览器中输入ftp://192.168.1.102/,即可访问FTP服务器:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 149: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第五节:Telnet Server Telnet Server 组件可使其它终端通过 Telnet 访问目标板,从而达到管理文件的目的。 将 Telnet Server 组件加入系统后编译,启动系统,就可以使用其它终端通过 Telnet 访问

目标板了。如果需要匿名访问 Telnet,需要将 servers.reg 中的: ; @CESYSGEN IF SERVERS_MODULES_TELNETD [HKEY_LOCAL_MACHINE\COMM\TELNETD] "UserList"="ADMIN" 后面加上: "UseAuthentication"=dword:0 "IsEnabled"=dword:1 在 PC 端的 CMD 窗口输入“telnet 192.168.1.102”,就可以访问目标板了:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 150: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第六节:FTP Client Platform Builder 本身没有 FTP Client 组件,但我们可以通过第三方软件来实现 FTP Client。比如我们可以通过下面这个软件(FTPClient)来访问其它 FTP 服务器:

第七节:Telnet 应用

对于一个移动设备来说,能否支持远程控制是评判其实用价值的一个重要指标。以基于

Windows CE 平台的移动设备来说,有很多方法实现对它的远程控制,比如我们可以安装一

些基于 USB 或网络的第三方远程桌面软件,但最简单最方便消耗最少系统资源的远程控制,

还是利用 Windows CE 自带的 Telnet 服务。本节的主要内容就是介绍如何利用 Windows CE自带的 Telnet 服务来对 AT91SAM9261EK 进行远程控制。 我们首先需要编译一个带有 Telnet 服务的 Windows CE 镜像,关于如何编译和配置一个

带有 Telnet 服务的镜像,请参考本章的第五节。当然为了能够在 Telnet 下使用 DOS 命令行,

我们还需要把 Command Shell 编译进去,请参考本章的第一节。 Windows CE 自带的 Pocket CMD 功能比较简单,不支持类似于 Windows XP 下的 CMD的结束进程命令 taskkill,所以为了能够结束已经启动的进程,我们必须找到一个能够在

Windows CE 下运行的结束进程的命令行工具,我们可以使用 Windows Mobile Developer Power Toys 中的 killproc.exe。首先需要去下载一个 Windows Mobile Developer Power Toys 的安 装 文 件 , 安 装 完 毕 后 可 以 在 \Windows Mobile Developer Power Toys\ActiveSync_Remote_Display\devices\wce400\目录下找到相应版本的 killproc.exe:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 151: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

把这个文件拷贝到设备中便可使用。为了能把 killproc.exe 当成外部命令使用,我们可

以修改 project.bib,把 killproc.exe 编译到 windows 文件夹的根目录,这样在使用的时候就不

用每次都要输入完整的路径了。 把编译好的镜像烧录进目标板,连接好网线,启动设备:

如果在同一网络中存在一台以上的设备并采用 DHCP 分配地址的话,我们还需要在

Windows CE 中修改它们的网络标识,以避免混淆。修改网络标识是在“控制面板 → 系统 → 设备名”中进行,修改完毕挂起保存注册表,然后重启系统我们就可以在路由器的相关

设置中看到这台设备的名称了(需要 Hive 支持):

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 152: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

在 PC 上打开 CMD 窗口,输入“telnet 设备的 IP”就可以通过 Telnet 登录到目标板:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 153: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

然后我们就可以在 PC 端利用 DOS 命令行来控制目标设备了。“help”命令可以查看

Pocket CMD 支持的命令行: \> help 以下命令可用: ATTRIB 设置/显示文件属性。 CALL 调用批处理脚本。 CD 更改目录。 CHDIR 与 CD 相同。 CLS 清屏。 COPY 复制文件。 DATE 显示/设置系统日期。 DEL 删除文件。 DIR 打印目录内容。 ECHO 在屏幕上回显输出或更改回显参数。 ERASE 与 DEL 相同。 EXIT “退出”命令解释器。 HELP 命令解释器或单个命令的打印帮助。 GOTO 在批处理过程中将控制权转至标签。 IF 按条件执行命令。 MD 创建目录。 MKDIR 与 MD 相同。 MOVE 移动/重命名文件。 PATH SET PATH 的别名。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 154: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

PAUSE 挂起批处理文件的执行过程。 PROMPT 重新配置系统提示符。 PWD 打印当前工作目录。 RD 删除目录。 REM 记录批处理文件中的注释。 REN 更改文件名。 RENAME 与 REN 相同。 RMDIR 与 RD 相同。 SET 设置或列出环境变量。 SHIFT 批处理文件的 Shift 参数。 START 启动分离进程。 TIME 显示/更改系统时间。 TITLE 设置 CMD.EXE 会话的窗口标题。 TYPE 将文件内容输出到屏幕。 启动和关闭进程举例: 例 1:启动 WordPad WordPad 是 Windows CE 自带的 Office 中的组件之一,位于 windows 文件夹的根目录下,

因此我们可以直接输入程序文件名称来打开它。 WordPad 的程序名为 pword.exe,但如果直接输入: \> pword 我们会发现此时的 CMD 窗口无法进一步做任何操作,除非在目标设备上关闭 pword.exe 这

个进程,也就是说 CMD 窗口被 pword.exe 这个进程独占了。为了避免出现这种情况,需要

使用 start 命令来启动进程: \> start pword

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 155: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

关闭进程使用上面提到的 killproc.exe,因为我们已经将 killproc.exe 编译进 windows 文件夹的根目录,所以可以像使用外部命令那样操作这个程序: \> killproc pword.exe 注意,使用 killproc.exe 时需要把结束的进程的完整名称写上,否则是结束不了该进程的。 例 2:利用 TCPMP 播放多媒体文件 首先进入 TCPMP 目录: \> cd nandflash\tcpmp 0.81 \nandflash\tcpmp 0.81> 我们要播放这个目录下的 test.avi: \nandflash\tcpmp 0.81> start player \nandflash\tcpmp 0.81\test.avi 注意,需要输入媒体文件的完整路径。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 156: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

在 TCPMP 的“播放设置”中设置好相关选项,即可实现打开文件即全屏播放的功能:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 157: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第十章:SD 卡、双网卡、类 NAS 及 GPS 应用 第一节:SD 卡应用

AT91SAM9261 自带一个 SD卡控制器,AT91SAM9261EK套件的核心板上带有一个 SPI模式、无容量限制的 SD 卡接口。如图所示,将 SD 卡插入核心板背部的卡槽:

要在 Windows CE 下加入 SD 卡支持,需要加入下列驱动: Catalog → Device Drivers → SDIO → SD Memory Catalog → Device Drivers → SDIO → SDIO Host → SDIO Standard Host Controller Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → SD Memory Card Driver 加入驱动后编译工程,烧录镜像并启动系统后可以在“开始 → 程序”中看到一个名为

“FlashLoader”的程序,我们可以通过这个程序来管理 SD 卡。 启动系统,插入 SD 卡,打开“开始 → 程序 → FlashLoader”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 158: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

在“SD/MMC Card”上点击“Unplugged”:

然后在“我的设备”里面就可以看到 SD 卡的盘符“SD Memory Card”了:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 159: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

SD 卡内文件浏览:

如果要卸去 SD 卡,请打开 FlashLoader,在“SD/MMC Card”上点击“Plugged”:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 160: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

即可卸除 SD 卡:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 161: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第二节:双网卡共存

本节采用的网络硬件如下: VC9261-EK 开发板板载 DM9000 以太网适配器; VIA USB 无线网卡一块; TL-WR 541G 无线路由器一台。

本节采用的有线网络为 DM9000 板载以太网适配器。DM9000 是 DAVICOM 公司生产

的 10/100Mb/s 自适应以太网芯片,支持 8 位、16 位、32 位数据总线宽度;寄存器操作简单

有效;有成熟的 Windows CE 驱动程序支持;3.3V 接口电平;成本相当低廉。 DM9000 驱动位于: Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → Ethernet →Ethernet Driver

有线局域网协议位于:

Catalog → Core OS → Windows CE devices → Communication Services and Networking → Networking - Local Area Network (LAN) → Wired Local Area Network (802.3, 802.5)

本节所采用的无线网络模块是一块VIA USB无线网卡, 高速度为 54Mbps,支持 802.11协议。网卡外形如图:

VIA USB 无线网卡的安装:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 162: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第 1 步:打开安装文件

第 2 步:选“Next”

第 3 步:选“Install”

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 163: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

安装结束后选“Finish”即可。 驱动程序位于\WINCE500\3rdparty\Vnt\Vnuwlc5 文件夹下,确定 obj 和 Target 两个文件

夹里面都有 ARMV4I 文件夹,如果有其它名字的文件夹(如 X86),就表示这个驱动不是 for ARM 的,编译时会出错。 启动 Platform Builder,在 Catalog 窗口中可以看到相应的驱动:

在添加 VT6656 的驱动之前,首先需要添加 USB Host 驱动: Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → USB Host →USB Host Controllers → USB Host

Catalog → Third Party → BSPs → AT91SAM9261EK → Device Drivers → USB Function → USB Function Bus Drivers → USB Function Driver

VT6656 的驱动位于:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 164: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

Catalog → Third Party → Device Drivers → NetworkingLocal Area Networking (LAN) devices → VNT VNUWLC5 USB Wireless LAN Adapter

无线局域网协议及无线组件位于: Catalog → Core OS → Windows CE devices → Communication Services and Networking → Networking - Local Area Network (LAN) → Native Wi-Fi WLAN Access Point Components Catalog → Core OS → Windows CE devices → Communication Services and Networking → Networking - Local Area Network (LAN) → Native Wi-Fi WLAN STA Catalog → Core OS → Windows CE devices → Communication Services and Networking → Networking - Local Area Network (LAN) → Wireless LAN (802.11) STA - Automatic Configuration and 802.1x

此外还需要添加用于自动搜索无线 AP 的组件 Windows Zero Configuration,位于: Catalog → Device Drivers → Networking Local Area Networking (LAN) devices → CISCO Aironet 340/350 PCMCIA WLAN Card

加载完驱动后编译工程,将编译所得的 NK.nb0 用 SAM-BA 烧录到目标板中,启动系

统:

点击下方网络图标:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 165: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

插上无线网卡后,连接上后点击无线连接图标,会出现无线信息,第一次连接时需要指

定首选连接,以后会自动连接首选连接:

如果所连接的网络需要验证密钥,则双击所选网络,在“网络密钥”中填上正确的密钥

后选择“OK”即可:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 166: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

点击“IP 信息”,查看无线网络连接信息:

在“控制面板 → 网络和拨号连接”中,可以看到有两个网络连接:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 167: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

打开 IE,连接网页:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 168: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第三节:类 NAS 存储应用

NAS 是英文“Network Attached Storage”的缩写, 意为“网络附加存储器”。简单的说

就是一套连接在网络上, 具备资料存储功能的装置,因此也称为“网络存储器”、“网络硬盘”。

NAS 服务器是一种以网络为基础的文件存储及文件备份设备,它是基于 LAN(局域网)的,

按照 TCP/IP 协议进行通信,以文件的 I/O(输入/输出)方式进行数据传输。在 LAN 环境下,

NAS 已经完全可以实现异构平台之间的数据级共享。

目前利用现有的 VC9261-EK 平台,配合 Windows CE 操作系统,以及一些必要的软件,

基本上已经能够实现 NAS 存储应用。一个良好而实用的 NAS 存储服务器,应该具备以下软

硬件条件: 1. 具有无线网络连接功能 2. 具有网络存/取功能 3. 能够在 PC 上远程控制 NAS 服务器

NAS 存储应用的大部分功能实现都已经在以上章节中有所涉及,下面就对这些功能的

实现做个总结,并且做一些补充。 无线网络连接是方便使用 NAS 服务器的必要条件,与有线网络连接相比,无线网络连

接更能突出 NAS 服务器的“随时随地”的功能,摆脱网线和空间的束缚。关于使用无线网

络连接,可参照本章的第二节来进行设置。 网络存/取功能可分为局域网(LAN)和广域网(WAN)两部分,其中有关 LAN 部分

可以用 File Server 来实现,File Server 本身就带有一个基本的 NAS 管理器。而广域网部分

可以用 FTP 服务实现,包括 FTP 的 host 和 client。File Server 和 FTP 的详细实现步骤可参照

第九章相关章节。 PC 端远程控制 Windows CE 可以采用命令行方式或远程桌面方式,其中命令行方式可

以采用 Telnet 方式控制,详细实现步骤可参照本手册的第九章第七节。下面就来介绍一下远

程桌面方式控制 Windows CE。 本文选用的远程桌面控制软件为微软出品的 CE Remote Display,CE Remote Display 分

两个文件:CERHost.exe 为 PC 控制端软件,CeRDisp.exe 为受控端软件。下图为 CERHost.exe启动后的界面:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 169: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

先启动 CERHost.exe,然后将 CeRDisp.exe 拷贝到目标板并运行:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 170: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择“OK”:

点击“Connect”,在弹出的输入框中填好控制端的 IP(TCP/IP 连接时)或控制端的名

称(Microsoft ActiveSync 连接时):

选择“OK”,即可在 PC 上的 CERHost.exe 中看到受控端的图形界面:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 171: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

可以用鼠标代替触笔在控制端进行操作(前提是系统支持触摸屏),但控制端不支持键

盘输入。 Windows CE 下的远程控制的原理基本上和 Windows 下的远程控制类软件是一样的,受

控端实时截屏并发送给控制端,然后将控制端发过来的命令(包括鼠标和键盘的消息命令,

如果支持的话)并模拟鼠标和键盘事件。而控制端也只要做对应的两个事情,首先是接收受

控端发来的屏幕内容的 BUF 并将其显示,然后是捕获鼠标和键盘的消息并给受控端发送过

去。至于通信方式,则可以采用 Ethernet 或 Microsoft ActiveSync 连接。有兴趣的用户可以

试着做一下这方面的开发。

利用第九章相关章节提到的 File Server、FTP Server、Telnet Server 等组件,可以实现远

程文件存储。 1. 利用 File Server 与 PC 端共享文件

配置好 File Server,本文中将 NandFlash 根目录共享名设为 NFDisk,IP 为 192.168.1.102,在浏览器中登录\\192.168.1.102 后如下:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 172: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

浏览 NandFlash 内的文件:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 173: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

可以像操作本地文件一样对共享文件进行复制和传输:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 174: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

2. 利用 FTP Server,与 PC 端之间互相传输文件

配置好 FTP Server,在浏览器中输入 ftp://192.168.1.102/ ,登录目标板的 FTP 服务器:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 175: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

我们可以像操作普通的 FTP 服务器一样对目标板的 FTP 服务器进行文件传输、改名、

新建或删除目录等一系列操作。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 176: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

3. 远程控制 Windows CE,下载公网 FTP 服务器的文件

远程控制软件使用上文提到的 CE Remote Display,FTP 下载软件使用第九章第六节提

到的 FTP Client。 首先打开 CE Remote Display,连上 Windows CE:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 177: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

然后利用 CE Remote Display 打开 FTP Client:

填好正确的地址和帐号、密码,登录远程 FTP 服务器:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 178: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

选择“C 陷阱与缺陷”,点击下载,下载文件放置的默认文件夹是“我的设备”的根目

录,下载完毕后可以在默认文件夹中找到下载的文件:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 179: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

将下载的文件通过 CE Remote Display 转移到相应的共享目录,即可通过上面介绍的共

享方法下载到 PC 端。 4. 挂载多种存储设备

基于 9261EK 的 Windows CE 支持挂载多种存储设备,如图所示,本系统挂载了一个 U盘(硬盘)和一块 SD 卡(SD Memory Card):

可以通过 USB HUB 挂接更多设备,将我们手头闲置的数码产品上的存储器都得到有效

利用。

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 180: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

第四节:GPS 应用 Mcuzone 已经实现板载 GPS 模块的应用,需要占用一个串口,详细情况请联系 Mcuozne客服。 手持 GPS 外观,带无线网卡:

下面是利用板载的 GPS 模块,使用 OZI 软件进行 GPS 定位: 打开 OZI 软件:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 181: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

从“文件 → 打开地图”中打开相应的地图,然后在“文件 → 设置 → GPS 设置”

中做如下设置:

确认后点击工具栏上面的 GPS 标志就能进行定位了:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 182: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

在“地图”菜单中有两个选项,分别是“查看卫星状态”和“显示接收数据”,前者可

以看到现在能接收到的卫星的信息,后者则是接收到的具体数据:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 183: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

微控电子——专业的开发工具提供商 专业 ATARM 推广商

下图是接上 640×480 分辨率的大屏后的效果:

http://www.Mcuzone.com http://www.ATARM.com QQ:8204136 CP:013957118045

Page 184: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

MDK9261 核心板

VC9261 核心板

MDK9263 核心板

Page 185: Windows CE 篇 - Mcuzone · 第四章:定制一个简单的Windows CE 操作系统 第一节:编译并定制一个Windows CE 5 第二节:编译并定制一个Windows CE 6 第三节:镜像转换工具

VC9261-EK 开发板

MDK9261-L 开发板(¥400)

AT9261-EK 开发板