新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 定制自己的Windows CE 5.0 ARM中文模擬器

定制自己的Windows CE 5.0 ARM中文模擬器

作者: 時(shí)間:2011-02-24 來(lái)源:網(wǎng)絡(luò) 收藏

一、生成OS

1. 安裝Windows CE 5.0(記得CPU類型里把ARMV4I選上)裝完之后裝DeviceEmulatorBSP.msi,這是ARMV4I模擬器的BSP。

2. 運(yùn)行Platform Builder,新建一個(gè)Platform,給你的新Platform取一個(gè)名字,我這里取為MyCEEmu。BSP選擇Microsoft DeviceEmulator:ARMV4I,Design Template選擇Mobile Handheld,Application Media隨你選,Networking Communications只選擇Local Area Network(LAN)->Wired Local Area Network,其余都去掉。最后完成向?qū)А?/P>

3. 添加網(wǎng)卡。在Catalog View的Device Drivers->Networking->Local Area Networking (LAN) devices目錄下,把NE2000-compatible(PCMCIA car)添加進(jìn)來(lái)。

4. 如果要開發(fā)托管程序,添加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. 添加閃存支持。有三個(gè)部件:SMFlash,Partition Driver和FAT。
先轉(zhuǎn)到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,這里有三個(gè)地方要設(shè)置:
1) Build Options選項(xiàng)卡下,去掉Enable CE Target Control Support和Enable KITL;
2) Environment選項(xiàng)卡,添加環(huán)境變量CE_MODULES_SERIAL=1,這是用來(lái)將DMA添加進(jìn)來(lái);
3) Locale選項(xiàng)卡,用來(lái)添加你想要的語(yǔ)言支持,可改可不改。我這里先Clear All然后選了中文(中國(guó))和英語(yǔ)(美國(guó))。Default Language選為中文。

8. 視情況添加其他所需的組件。我添加了MSXML的支持。

9. BuildOS->Sysgen。

二、生成SDK

1. 運(yùn)行SDK Wizard(Platform->SDK->New SDK),填寫必要的信息之后,把支持的開發(fā)工具都勾上,完成。下面是配置SDK(選擇Platform->SDK->Configure SDK),要是覺得沒有什么好配置的也可以跳過。

2. 打開ExportSdk.sdkcfg文件(先做好備份,這個(gè)文件一般在項(xiàng)目根目錄下,就是在New Platform Wizard的第2步中所指定的目錄,默認(rèn)是%_WINCEROOT%PBWorkspaces下)。這是一個(gè)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. 設(shè)定變量。上面替換的代碼中有幾個(gè)變量需要設(shè)定,分別是:
1) ImageName:這是程序員在Visual Studio IDE里所看到的名字;
2) VMID:一個(gè)GUID,可以用GuidGen.exe來(lái)生成一個(gè);
3) Height/Width:模擬器屏幕的寬高;
4) BitDepth:顏色深度;
5) Memory:分配給模擬器的RAM大小;
6) DPIX/DPIY:屏幕DPI;
7) Source:這是一個(gè)目錄,包含編譯生成的NK.bin。建議最好在%_WINCEROOT%下新建一個(gè)目錄,專門用于存放NK.bin。

這里我設(shè)為C:WINCE500MyCEEmuReleaseImage。
修改完成后保存。

3. 生成SDK。Platform->SDK->Build SDK。一切順利的話應(yīng)該可以在當(dāng)前工程目錄的SDK目錄下找到打包成msi文件的SDK安裝包。


三、配置Visual Studio 2005
1. 先安裝生成好的SDK。運(yùn)行Visual Studio 2005,選擇菜單“工具->選項(xiàng)”,打開選項(xiàng)設(shè)置對(duì)話框,從左邊的樹型列表中選擇“設(shè)備工具->設(shè)備”,右邊的下拉列表框拉到底可以看到 “MyCEEmu”,這就是我們剛剛生成的那個(gè)Platform。下面的設(shè)備列表里有兩項(xiàng),雙擊MyCEEmu,設(shè)定傳輸為DMA傳輸,再點(diǎn)擊“仿真器選 項(xiàng)”,在“顯示”選項(xiàng)卡里設(shè)定好模擬器屏幕尺寸,顏色深度等,全部保存。

2. 新建一個(gè)智能設(shè)備項(xiàng)目,向?qū)У?步選擇平臺(tái)的時(shí)候用我們的MyCEEmu替換Pocket PC 2003,完成。然后按F5運(yùn)行程序,不出意外的話模擬器應(yīng)該就出來(lái)了。


linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉