WEC2013是微软最新一代Windows Embedded Compact操作系统(前一个版本是WEC7),WEC2013通常也叫作Compact 2013或WinCE8,盈鹏飞公司CoM-335x/T335系列工控主板可以支持WEC7和WEC2013两个版本。 本文希望站在应用开发人员的角度,比较WEC2013与WEC7之前的差别。 系统桌面 WEC2013最明显的变化是去掉了传统的系统桌面,取而代之的是一个称为Mini shell的界面,如图1和图2。 图1 通过WEC7标准桌面,用户可以方便的使用鼠标或触摸屏操作控制面板、设置网络参数、建立拨号连接、查看磁盘文件等等,在系统调试阶段十分方便的。而WEC2013的Mini shell仅有一个操作入口,即通过点击桌面左上角Command进入命令行窗口,所有的操作必须通过命令行完成。感觉和WIN8去掉了开始菜单一样不方便?!微软为什么要这样做呢?从他们的博客可以了解到,为了提高系统效率和压缩内核代码大小,最终决定去掉传统桌面。还有一个重要的原因是他们意识到用户产品在发布时,应用程序通常全屏运行,在有些情况下甚至不希望出现WinCE桌面。 图2 应用程序开发 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应用程序的调试,我们提供了相关文档可供参考。 USB WiFi 当今社会,无线通信无处不在,没有WIFI怎么行?WINCE6和WEC7感觉在这个通信角度,做的一般。USB WiFi驱动一般是WiFi模块厂方提供,市面上的WiFi通常只支持到WinCE6.0,可是很多WIFI模块或者方案厂商已经停止了对WINCE6的支持!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%。