WEC7与WEC2013

 2015-6-3          [nemail]    
[lablebox]

  WEC2013是微软最新一代Windows Embedded Compact操作系统(前一个版本是WEC7),WEC2013通常也叫作Compact 2013或WinCE8,英创公司EM335x/EM3352系列工控主板可以支持WEC7和WEC2013两个版本。本文希望站在应用开发人员的角度,比较WEC2013与WEC7之前的差别。

 

系统桌面

 

  WEC2013最明显的变化是去掉了传统的系统桌面,取而代之的是一个称为Mini shell的界面,如图1和图2。

 

图1 WEC7标准桌面

 

  通过WEC7标准桌面,用户可以方便的使用鼠标或触摸屏操作控制面板、设置网络参数、建立拨号连接、查看磁盘文件等等,在系统调试阶段十分方便的。而WEC2013的Mini shell仅有一个操作入口,即通过点击桌面左上角Command进入命令行窗口,所有的操作必须通过命令行完成。微软WEC团队内部对是否去掉传统桌面有过激烈的讨论,从他们的博客可以了解到,为了提高系统效率和压缩内核代码大小,最终决定去掉传统桌面。还有一个重要的原因是他们意识到用户产品在发布时,应用程序通常全屏运行,在有些情况下甚至不希望出现WinCE桌面。

 

图2 WEC2013 Mini shell

 

应用程序开发

 

  WEC7使用Visual Studio 2008作为应用程序开发工具,WEC2013使用Visual Studio 2013或 Visual Studio 2012,VS2013(VS2012)使用了新的ARM 编译器,支持最新的C运行时库。对于非托管的应用程序开发,微软的ATL、STL、MFC库都采用了最新的C++运行时和新的Microsoft C++编译器。对于托管代码的应用程序开发,WEC2013支持.NET Compact Framework 3.9(https://msdn.microsoft.com/en-us/library/ee486593.aspx),相比.NET Compact Framework 3.5,3.9在内存使用情况,启动速度等性能方面有较大的提升,.NET Compact Framework 3.9向下兼容.NET Compact Framework 3.5。

 

应用程序调试方法

 

  WEC7应用程序可以通过网络或usb(基于微软ActiveSync)在线调试。同样基于系统效率的考虑,WEC2013去掉了对AcitveSync的支持,因此只能通过网络调试应用程序,这也意味着在开发调试应用程序之前,必须先正确配置WEC2013设备的网络参数。针对WEC2013应用程序的调试,我们提供了单独的文章《WEC2013应用程序调试方法》可供参考。

 

USB WiFi

 

  USB WiFi驱动一般是WiFi模块厂方提供,市面上的WiFi通常只支持到WinCE6.0,WEC7到目前为止都没有可用的WiFi方案。WEC2013 WLAN采用NDIS6.x驱动,同时集成了微软本地USB协议栈和WPA/WPA2-PSK客户端,自带了Realtek公司的RTL8188CU、RTL8192CU和RTL8188EU 802.11 WiFi驱动。

 

WEC2013性能提升

 

  WEC7虽然支持ARMv7指令,但由于只能使用较老的编译器和汇编器,因此不支持THUMP2指令集,也就不能发挥ARMv7的优势。WEC2013的编译器升级到了最新的ISO C++ 11,汇编器也采用了新版本的EABI(ARM Embedded-Application Binary Interface),可以支持ARMv7 THUMB2指令集。我们将同一段代码分别使用VS2008和VS2013编译,然后在WEC7和WEC2013上运行,直观的比较结果是支持ARMv7 THUMB2指令集的WEC2013应用程序的代码尺寸比WEC7小30%,执行速度快20%。关于WEC2013性能提升的测试可参考《WEC2013与WEC7性能比较》。

[lablebox]