So Tired !_! 逆水行舟, 不进则退!

25May/10

定制自己的Windows CE 5.0 ARM中文模拟器(转)

Posted by Nick Xu

一、生成OS

1. 安装Windows CE 5.0(记得CPU类型里把ARMV4I选上)装完之后装DeviceEmulatorBSP.msi,这是ARMV4I模拟器的BSP。

我补充个DeviceEmulatorBSP.msi的下载地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=474b03a6-e87d-455d-bc16-b8cf18ef39b4&displaylang=en

2. 运行Platform Builder,新建一个Platform,给你的新Platform取一个名字,我这里取为MyCEEmu。BSP选择Microsoft DeviceEmulator:ARMV4I,Design Template选择Mobile Handheld,Application & Media随你选,Networking & Communications只选择Local Area Network(LAN)->Wired Local Area Network,其余都去掉。最后完成向导。

3. 添加网卡。在Catalog View的Device Drivers->Networking->Local Area Networking (LAN) devices目录下,把NE2000-compatible(PCMCIA car)添加进来。

4. 如果要开发托管程序,添加Catalog View的Core OS->Windows CE Devices->Applications – End User->CAB File Installer/Uninstaller。

5. 添加ActiveSync(可选),在Catalog View的Core OS->Windows CE Devices->Applications – End User目录下。

6. 添加闪存支持。有三个部件:SMFlash,Partition Driver和FAT。
先转到Catalog View:
SMFlash在BSP->Microsoft Device Emulator->Storage Drivers->MSFlash Drivers->SmartMedia NAND Flash Driver (SMFLASH),
Partition Driver在Core OS->>Windows CE Devices->File Systems and Data Store-> Storage Manager->Partition Driver
FAT在Core OS->Windows CE Devices->File Systems and Data Store->Storage Manager->FAT File System。

7. 打开菜单Platform->Setting,这里有三个地方要设置:
1) Build Options选项卡下,去掉Enable CE Target Control Support和Enable KITL;
2) Environment选项卡,添加环境变量CE_MODULES_SERIAL=1,这是用来将DMA添加进来;
3) Locale选项卡,用来添加你想要的语言支持,可改可不改。我这里先Clear All然后选了中文(中国)和英语(美国)。Default Language选为中文。

8. 视情况添加其他所需的组件。我添加了MSXML的支持。

9. BuildOS->Sysgen。

二、生成SDK

1. 运行SDK Wizard(Platform->SDK->New SDK),填写必要的信息之后,把支持的开发工具都勾上,完成。下面是配置SDK(选择Platform->SDK->Configure SDK),要是觉得没有什么好配置的也可以跳过。

2. 打开ExportSdk.sdkcfg文件(先做好备份,这个文件一般在项目根目录下,就是在New Platform Wizard的第2步中所指定的目录,默认是%_WINCEROOT%PBWorkspaces下)。这是一个XML格式的文本文件,找到这两行:
<PropertyBag NAME="DeviceEmulation">
</PropertyBag>
把这两行替换为如下的片断:
<PropertyBag NAME="DeviceEmulation">
<Property NAME="Default Image">1</Property>
<PropertyBag NAME="1">
<Property NAME="ImageName">MyCEEmu</Property>
<Property NAME="VMID"></Property>
<Property NAME="Default Skin"/>
<Property NAME="Height">240</Property>
<Property NAME="Width">320</Property>
<Property NAME="BitDepth">16</Property>
<Property NAME="Memory">128</Property>
<Property NAME="Bin Dest">Emulationnk.bin</Property>
<Property NAME="Fixed Screen">1</Property>
<Property NAME="CpuName">ARMV4I</Property>
<Property NAME="DPIX">96</Property>
<Property NAME="DPIY">96</Property>
<Property NAME="SupportRotation">0</Property>
<Property NAME="Enabled">1</Property>
<Property NAME="Bin Path"></Property>
<Property NAME="Ethernet">1</Property>
<Property NAME="Ports">1</Property>
<Property NAME="AdditionalParameters"></Property>
<PropertyBag NAME="Skins"/></PropertyBag>
</PropertyBag>
<PropertyBag NAME="Added Files">
<PropertyBag NAME="{3B388597-0924-4102-ADFA-2519D2C3E11B}">
<Property NAME="Source">C:WINCE500MyCEEmuReleaseImage</Property>
<Property NAME="Destination">Emulation</Property>
<Property NAME="Subfolders">0</Property>
</PropertyBag>
</PropertyBag>

3. 设定变量。上面替换的代码中有几个变量需要设定,分别是:
1) ImageName:这是程序员在Visual Studio IDE里所看到的名字;
2) VMID:一个GUID,可以用GuidGen.exe来生成一个;
3) Height/Width:模拟器屏幕的宽高;
4) BitDepth:颜色深度;
5) Memory:分配给模拟器的RAM大小;
6) DPIX/DPIY:屏幕DPI;
7) Source:这是一个目录,包含编译生成的NK.bin。建议最好在%_WINCEROOT%下新建一个目录,专门用于存放NK.bin。

这里我设为C:WINCE500MyCEEmuReleaseImage。
修改完成后保存。

3. 生成SDK。Platform->SDK->Build SDK。一切顺利的话应该可以在当前工程目录的SDK目录下找到打包成msi文件的SDK安装包。

三、配置Visual Studio 2005
1. 先安装生成好的SDK。运行Visual Studio 2005,选择菜单“工具->选项”,打开选项设置对话框,从左边的树型列表中选择“设备工具->设备”,右边的下拉列表框拉到底可以看到 “MyCEEmu”,这就是我们刚刚生成的那个Platform。下面的设备列表里有两项,双击MyCEEmu,设定传输为DMA传输,再点击“仿真器选 项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存。

2. 新建一个智能设备项目,向导第2步选择平台的时候用我们的MyCEEmu替换Pocket PC 2003,完成。然后按F5运行程序,不出意外的话模拟器应该就出来了。

Tagged as: , No Comments
25May/10

基于Armv4I WINCE 5.0 应用程序开发环境搭建(C# VS2005或者VS2008)

Posted by Nick Xu

这里说的开发环境是指:VS2005或者2008这样的IDE,开发语言C#,也就是在WINCE上进行.NET CF开发

主要分为两步:

a.准备必要的目标平台SDK;针对目标硬件平台通过Platform生成的SDK或者是厂商提供SDK(本文主要针对 Armv4i 平台,因此SDK是定制生成的)

b.安装该SDK,在VS2005等进行一些设置即可.

1.这里先提下目标平台SDK的生成(通过PB5.0),作为备忘吧.WINCE 应用程序开发可以并不需要了解SDK的生成,只需要知道用现成的SDK(由平台开发人员通过PB生成或者厂商提供的SDK)配合vs2005或者2008 进行一些配置即可.这个步骤主要是供给PB DEVELOPER 参考用,说不定哪天俺也开发这个哈

前提条件是wince5.0相关开发环境的要安装好.这里主要只PB5.0,安装wince5.0过程中会自带安装好pb5.0,这一步很简单,可 以直接看wince5.0的安装文档说明或者网上资源;安装的时候勾选arm 和x86两个平台就足够了.

有了wince5.0的开发环境后.就需要安装相应的 Device Emulator BSP(这里主要指 ARM平台)Device Emulator BSP 下载;

安装好这个BSP后,在%winceroot%/PLATFORMDeviceemulator 这个目录下有这个文件Using the CE DeviceEmulator.rtf.如图:

Using the CE deviceEmulator

按照这个文件的操作一步步执行即可完成相应的SDK的制作,按照 这个文件制作出来的只是一个演示SDK,实际的SDK要根据相应的开发版进行OS定制.其中需要注意的是:

为了支持托管代码.net cf和ActiveSync需要

1.For supporting the managed app development experience in VS 2005, SYSGEN_WCELOAD is required

Catalog View: Core OS->Windows CE Devices->Applications – End User->CAB File Installer/Uninstaller

2.Adding ActiveSync is optional (SYSGEN_AS_BASE)

另外作为演示俺也是选择默认的Microsoft DeviceEmulator:Armv4i,而不是开发版对应的SamSung SMDK2410 :ArmV4i

其他就是配置 Configure your Device Emulation device settings文件,俺会提供一 个俺修改的文件,里面有注释更加好找.

配置这个文件ExportSdk.sdkcfg的时候需要用到Guid生成工具.MS的开发工具一般都有带guidgen.exe,搜索一下就有. 或者直接这边找一个http://www.guidgen.com/Index.aspx

另外参考文档中作者说不能选择Enterprise Web Pad这样的模板工程,俺就是选择这样的工程生成俺的SDK,没有发现任何问题,呵呵看来很多都是都是要实践啊~~~~ 啊~~~~-_-!!!smile_tongue

最后就是按照Using the CE DeviceEmulator.rtf 这个文档生成SDK即可.

2.有了SDK就可以开始配置应用程序开发环境了.For App developer

a.首先安装SDK(这里俺生成的为"mytest_SDK.msi")

Generator SDK

在选择Features项目时候,可以不选择'Embedded VC++'毕竟这个是用C++进行开发.如下图所示:

SETUP sdk

b.安装好SDK后.就可以开始配置VS2005了(说明这里以2005为例,2008类似设置,俺测试通过)

1.运行vs2005,Goto Tools->Options. Expand the “Device Tools” node on left and select “Devices”,选择你对应的平台,这里俺的是"mytest",同时选择相应的设备,俺这里是"airwolf2026Test"如下图所示:

deviceSetting

2.选择上图中的"属性",并保证"传输"选择"DMA传输",如下图:

deviceProperty

这里有个问题,就是俺如果把"传输"选择 TCP/IP,VS2005就无法启动模拟器了....会提示说'设备未就绪'等.这个不知道该怎么解决...有知道的麻烦告诉俺下哈.谢谢.smile_wink

3.在"仿真器选项"中设置颜色和屏幕分辨率等,如下:

deviceProperty2

其他几个选项比如'网络',外网设备'等俺还没有研究...初学...

然后就可以关闭这个相应的对话框了,ok接下来可以写一个Demo程序跑一下,看看环境是否搭好了.

4.从vs2005 '文件'菜单->>新建项目,选择'智能设备'-->WINCE 5.0,选择项目类型:设备应用程序,名字这里叫'DEMOTest",如下图:

NewProject

然后和普通Winform开发类似,放置一个Button,在它的单击事件出show出一句话.顺便测试下俺这个添加了中文支持的SDK是否可以正 常显示中文哈.然后就是启动调试,程序编译好,会弹出对 话框要求选择'部署位置',俺这边就选择airwolf2026Test,如下:

deployment

看看相应的模拟器和程序有没有起来.如果有起来,那么恭喜,环境搭建成功

最后看看效果吧:

runState

呃,看来俺添加的中文支持没有效果....这 个...smile_angry

最后附上参考文档:

原创]终于制作出WinCE 5.0的ARM模拟器收藏

How to locate core operating system fixes for Microsoft Windows CE Platform Builder products这 个KB说明了WinCE更新包相关的一些策略,比如它发布年更新包的时候,会把该年份之前的月更新包移除下载站点,因此为了给PB5.0添加.NET CF2.0或者3.5支持.只需要安装2007年全年更新包,或者另加2008,01月更新包即可.原来在一些论坛上很多人说要先安装之前的更新包... 找的半死都没有找到....

修改后的ExportSDK.sdkcfg在默认皮肤这节可能重复了.呵呵

25May/10

定制基于Visual studio 2005平台Windows CE(ARM V4I)中文模拟器

Posted by Nick Xu

(本 文译自Microsoft DeviceEmulatorBSP中Using the CE DeviceEmulator.rtf文件,并对该文件说明 做了相应补充,旨在定制基于ARM4I平台Visual Studio 2005环境中文模拟器,建立用于 Platform Builder 5.0+Visual Studio 2005嵌入式Windows CE 5.0开发环境)

一、生成OS

1. 安装Windows CE 5.0(记得CPU类型里把ARMV4I选上)装完之后装DeviceEmulatorBSP.msi(本站下载),这是ARMV4I模拟器的 BSP。

2. 运行Platform Builder,新建一个Platform,给你的新Platform取一个名字,我这里取为MyCEEmu。BSP 选择Microsoft DeviceEmulator:ARMV4I,Design Template选择 Mobile Handheld,Application & Media随你 选,Networking & Communications只选择 Local Area Network(LAN)->Wired Local Area Network,其余都去掉。最后完成向导。

3. 添加网卡。在Catalog View的 Device Drivers->Networking->Local Area Networking (LAN) devices目录 下,把NE2000-compatible(PCMCIA car)添加进来。

4. 如果要开发托管程序,添加Catalog View的 Core OS->Windows CE Devices->Applications – End User->CAB File Installer/Uninstaller。

5. 添加ActiveSync(可选),在Catalog View的 Core OS->Windows CE Devices->Applications – End User目录下。

6. 添加闪存支持。有三个部件:SMFlash,Partition Driver和FAT。
先转到Catalog View:
SMFlash在 BSP->Microsoft Device Emulator->Storage Drivers->MSFlash Drivers->SmartMedia NAND Flash Driver (SMFLASH),
Partition Driver在 Core OS->Windows CE Devices->File Systems and Data Store-> Storage Manager->Partition Driver
FAT在 Core OS->Windows CE Devices->File Systems and Data Store->Storage Manager->FAT File System。

7. 打开菜单Platform->Setting,这里有三个地方要设置: //本部分DeviceEmulator.rtf中未说明
1) Build Options选项卡下,去掉Enable CE Target Control Support和Enable KITL;
2) Environment选项卡,添加环境变量CE_MODULES_SERIAL=1,这是用来将DMA添加进来;
3) Locale选项卡,用来添加你想要的语言支持,可改可不改。我这里先Clear All然后选了中文(中国)和英语(美国)。 Default Language选为中文。

8. 视情况添加其他所需的组件,我添加了MSXML的支持。

9. BuildOS->Sysgen。

二、生成SDK

1. 运行SDK Wizard(Platform->SDK->New SDK),填写必要的信息之后,把支持的开发工具都勾上,完 成。下面是配置SDK(选择Platform->SDK->Configure SDK),要是觉得没有什么好配置的也可以跳过。

2. 打开ExportSdk.sdkcfg文件(先做好备份,这个文件一般在项目根目录下,就是在New Platform Wizard的第2 步中所指定的目录,默认是%_WINCEROOT%PBWorkspaces下)。这是一个XML格式的文本文件,找到这两行:
<PropertyBag NAME=”DeviceEmulation”>
</PropertyBag>
把这两行替换为如下的片断:
<PropertyBag NAME=”DeviceEmulation”>
<Property NAME=”Default Image”>1 </Property>
<PropertyBag NAME=”1″>
<Property NAME=”ImageName”>MyCEEmu </Property>
<Property NAME=”VMID”> </Property>
<Property NAME=”Default Skin”/>
<Property NAME=”Height”>240 </Property>
<Property NAME=”Width”>320 </Property>
<Property NAME=”BitDepth”>16 </Property>
<Property NAME=”Memory”>128 </Property>
<Property NAME=”Bin Dest”>Emulationnk.bin </Property>
<Property NAME=”Fixed Screen”>1 </Property>
<Property NAME=”CpuName”>ARMV4I </Property>
<Property NAME=”DPIX”>96 </Property>
<Property NAME=”DPIY”>96 </Property>
<Property NAME=”SupportRotation”>0 </Property>
<Property NAME=”Enabled”>1 </Property>
<Property NAME=”Bin Path”> </Property>
<Property NAME=”Ethernet”>1 </Property>
<Property NAME=”Ports”>1 </Property>
<Property NAME=”AdditionalParameters”> </Property>
<PropertyBag NAME=”Skins”/> </PropertyBag>
</PropertyBag>
<PropertyBag NAME=”Added Files”>
<PropertyBag NAME=”{3B388597-0924-4102-ADFA-2519D2C3E11B}”>
<Property NAME=”Source”>C:WINCE500MyCEEmuReleaseImage </Property>
<Property NAME=”Destination”>Emulation </Property>
<Property NAME=”Subfolders”>0 </Property>
</PropertyBag>
</PropertyBag>

3. 设定变量。上面替换的代码中有几个变量需要设定,分别是:
1) ImageName:这是程序员在Visual Studio IDE里所看到的名字;
2) VMID:一个GUID,可以用GuidGen.exe来生成一个;
3) Height/Width:模拟器屏幕的宽高;
4) BitDepth:颜色深度;
5) Memory:分配给模拟器的RAM大小;
6) DPIX/DPIY:屏幕DPI;
7) Source:这是一个目录,包含编译生成的NK.bin。建议最好在%_WINCEROOT%下新建一个目录,专门用于存放NK.bin。

这里我设为C:WINCE500MyCEEmuReleaseImage。
修改完成后保存。

3. 生成SDK。Platform->SDK->Build SDK。一切顺利的话应该可以在当前工程目录的SDK目录下找到打包成 msi文件的SDK安装包。

三、配置Visual Studio 2005
1. 先安装生成好的SDK。运行Visual Studio 2005,选择菜单“工具->选项”,打开选项设置对话框,从左边的树型列表中选择 “设备工具->设备”,右边的下拉列表框拉到底可以看到“MyCEEmu”,这就是我们刚刚生成的那个Platform。下面的设备列表里有两项, 双击MyCEEmu,设定传输为DMA传输,再点击“仿真器选项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存。

2. 新建一个智能设备项目,向导第2步选择平台的时候用我们的MyCEEmu替换Pocket PC 2003,完成。然后按F5运行程序,不出 意外的话模拟器应该就出来了。

   
site
site