关闭
关闭
首页 > 嵌入式软件 > WinCE

在接触WinCE时候的基础:

软件语言基础:C/C++/C#。我不是计算机专业的,所以这些语言基础也是比较业余的。经验不丰富,遇到问题就是查MSDN或者到网上查找相关解决方案即可,程序就有这点好处,很多东西都是成熟的技术,到网上甚至连源码都能找到的。

硬件平台基础:用的是广州致远的开发板EPCS-6960I-W,这种小型工控板自带WinCE系统,而且有比较多的硬件接口可以用来进行数据采集和数据通讯。

学习资源:广州致远公司会提供一张学习光盘,里面有相应的开发示例和工控板的电路结构及一些硬件驱动。在安装了厂家提供的EPCS-6960I-W工控板对应的SDK开发包后,会在相应的目录下找到WinCE的帮助文档,里面对WinCE系统的相关API的详细介绍。还有就是到遇到问题可以到网上找解决方法,或者直接打电话到厂家的技术部进行咨询。

1. 认识WinCE

Windows CE 是微软公司开发的一个针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统。主要用于嵌入式系统和移动终端设备上,操作界面和PC机上的 WinXp系统比较类似,例如也是窗口化的操作界面,也具有磁盘资源管理器,文件系统和网络通讯协议和WinXp一样,程序开发也和WinXp环境下的程序开发。具体关于WinCE的介绍可以到网上搜索相关资料。个人的理解就是,WinCE可以看作一个精简后的WinXp系统,“麻雀虽小,五脏俱全”,在一些小型工控系统中可以发挥巨大的作用。

2. 开发环境

2.1 连接设备

先安装ActiveSync4.2同步软件。安装完毕后,你的PC机上的资源管理器中会多一个“移动设备”的图标(如下图),这个就是和移动设备进行文件交互的接口。通过这个接口,用户可以在PC机上对移动设备的文件进行读取的相关简单操作。

 

clip_image002

将工控机主板用USB连接到PC机上,给主板接上电源并启动WinCE系统。然后在PC端Micrsoft ActiveSync同步软件会自动进行检测,并连接到移动设备。连接成功后,会有如下图的提示出现。

 

clip_image004

当PC机和移动设备成功建立连接后,用户就能以PC机上的资源管理器中的“移动设备”作为入口对移动设备进行文件访问和其它相关操作了,比如,假如你是利用PC侧的WinCE模拟器开发的程序,那么生成的执行文件也在PC上,你可以通过“移动设备”接口,将你的程序文件“下载”到移动设备中。

 

clip_image006

注意:只有连接设备成功了,才能进行后面的程序开发和调试。

小建议:最开始的时候,都以为WinCE开发只需要一块安装了WinCE系统的工控板即可,不需要LCD,然后就直接黑灯瞎火地弄了一个月,最后实在忍受不了,然后花了800RMB买了一块配套液晶板,才突然感觉好起来。开发Windows程序的时候,液晶板是必需的,否则你在开发的时候将会很难受的,就像给了你一台没有显示器的电脑,虽然你可以通过鼠标进行盲操作,但那种感觉应该是比较糟糕的吧。

2.2 开发环境中需要进行的设置。

本次开发选用的环境是VS2005,虽然网上很多例程都是用Microsoft eMbedded C++ 4.0(以下简称eVC4.0)进行开发的,但是个人感觉VS2005的功能更强大一些,体验也更好一些。eVC4.0和开发界面和VC6.0一样(如下图),是一款比较经典的开发环境,喜欢VC6.0风格的用户可以选用eVC4.0进行开发。

 

clip_image008

 

clip_image010

2.3 开发语言选择

WinCE5.0的版本,支持C/C++/C#。因为支持C#,也就是说在WinCE5.0集成了.NET框架,但是因为WinCE系统在工控板上的应用,属于比较底层的应用,会涉及较多的硬件接口的开发,所以一般建议用C++进行开发,但是因为C#在高层应用上的开发具有难度低、周期短的特点,所以可以进行两种语言的混合编程的(在今后的“DLL应用”中将会讲到这种技术的应用)。

2.4 开发环境的设置

2.4.1 C#项目的建立和设置

用VS2005建立智能设备Windows CE 5.0的C#项目,开发环境就会自动建立一个模板,用户可以在此代码模板中写自己的程序了。

 

clip_image012

但是此时如果点击调试,将弹出一个移动设备模拟器,不能和实际的工控板硬件进行连接调试,所以需要进行相关设置。在解决方案资源管理器中,选中项目,右击-属性,然后会弹出属性设置页面。

 

clip_image014

在“设备”选项卡中的部署选项的目标设备选择为“Windows CE 设备”,这个时候就可以连接工控机设备了。输出文件文件夹中

“%CSIDL_PROGRAM_FILES%\WinCeCsUseDll”

表示的是在WinCE设备中的根目录下的Program Files文件夹中的WinCeCsUseDll目录下生成此项目的相关文件。点击右边的“浏览”按钮可以进行相关的设置。因为工控机上的除了放在 FlashDisk里面的东西在断电后不会丢失外,其余的都会丢失,所以,你可以通过对此路径的设置,将你的程序生成的目录放在FlashDisk中,这样断电了也不会丢失了。

2.4.2 C++项目的建立和设置

选择项目类型:

 

clip_image016

选择SDK开发包(工控机厂家会提供相应的开发软件包的):

 

clip_image018

选择相应的开发环境:窗口程序,控制台程序,DLL和表态库,等等。例如,选择建立“控制台应用程序”并添加MFC支持:

 

clip_image020

然后点击完成,VS2005就自动为你创建了程序模板了。

在项目属性中有一些设置需要注意一下。在项目解决方案浏览器中,右击项目并选择属性,会弹出一个属性对话框。“部署”选项卡中的“远程目录”是指你的项目在WinCE工控机上生成的对应目录。“调试”选项卡中的“远程可执行文件”是指你程序调试要调用的执行文件(注意:如果你建立的是DLL项目,那么,这个地方要修改一下,修改成调用了此DLL文件的EXE执行程序,只有这样DLL项目才能够进行调试)。

 

clip_image022

例如:部署远程目录为

%CSIDL_PROGRAM_FILES%\WinCeCsUseDll

表示,你在PC机上对项目进行部署后,你可以在你的WinCE工控机的根目录下的Program Files文件夹下的WinCeCsUseDll文件夹下找到此项目的相关生成文件。

 

clip_image024

例如:调试选项卡下的远程可执行文件目录为:

%CSIDL_PROGRAM_FILES%\WinCeCsUseDll\WinCeCsUseDll.exe

表示,当你在PC机上调试此项目的时候,会调用的EXE文件目录。在你选择调试的时候,VS2005会先执行“部署”也就是会在WinCE设备的相应目录下生成相关的文件,然后再进行调用和调试。如果开发的是DLL程序,那么,就更好理解了,就是直接启动一个对此DLL进行了调用的EXE文件,然后对引DLL的源码进行调试。

小技巧:如果是编写DLL程序,那么就要同时编写一个调用此DLL的EXE程序,因为你调试DLL程序或者调用DLL文件的时候,都需要保证EXE程序和DLL文件在同一目录下,所以,可以在项目属性将对两项目的部署路径进行设置,放在同一目录下面,并将 DLL的调试所需要调用的程序的路径设置成你编写的EXE文件路径。

3. 开发过程中的学习资源

如果对上面的基本知识了解了,那么后面的基本就是你的编程水平的体现了。遇到问题后的解决方法和你进行XP桌面程序开发一样了,因为WinCE可以理解成一个小型化的WinXp系统,所以,如果你有Xp系统的开发经验,那么你就能够比较快速入门。主要的学习参考资料如下:

3.1微软帮助文档MSDN

一般本地的MSDN是面向XP平台的桌面应用程序的,但是因为WinCE有很多的类似,所以,一些基本的API方法也是可以移植到WinCE上的。不过,建议直接用在线的MSDN,里面有专门针对WinCE开发的帮助。

http://msdn.microsoft.com/en-US/library/ms899235.aspx

 

clip_image026

在线帮助文档的目录如上所示。注意是一层一层往下展开的。

3.2 工控板生产厂家提供的帮助文档

当你安装了工控板生产厂家提供的SDK开发包后,就会在相应的目录下找到帮助文档了。例如安装了EPCS6960的SDK后,会在目录

C:\Program Files\Windows CE Tools\wce500\EPCS_6960\Help

里面找到相应的本地WinCE开发帮助文档。

 

clip_image028

3.2 网络论坛

到网上多搜索相关帖子,即使解决不了你的问题,但总会给你一些启发的。即使专门针对WinCE的帖子不多,但是你可以找WinXp的,一般都是可以移植的(C++的移植性要好一些,但是C#可能移植性差一点,因为WinCE下安装的只是一个精简的.NET框架)

总述:做了上述的准备工作后,后面的就是“体力活”了。任何所谓的脑力劳动都是这样的,当你掌握了基本技能后,脑力活动也就变成了体力活动了。好,有了这些基本的技能后,就开始解决问题吧。

注:购买硬件平台的价格比较高,比如EPCS6960的工控板一套就要接近两千,一个液晶屏又要将近800,所以对于初学者,可以自己到网上下载WinCE模拟器,软件仿真WinCE操作系统,熟悉WinCE下的程序设计。用硬件工控板的主要好处就是,有硬件接口及相应的驱动程序提供给开发人员,可以进行现场数据采集和控制。

换一批

延伸阅读

[真心话] 苹果已在悄然开发iPhone 8硬件,将焕然一新

苹果已在悄然开发iPhone 8硬件,将焕然一新

据苹果一位员工在网络上发布的消息,该公司正在利用以色列的一座办事处开发“iPhone 8”智能手机的硬件。据称,苹果将于明年推出iPhone 8智能手机,相比较此前的手机,iPhone 8的设计将进行大幅改变。目前......

关键字:苹果 iPhone

[新鲜事] 不支持Win7!AMD Ryzen也挑Linux版本:逼你升级

不支持Win7!AMD Ryzen也挑Linux版本:逼你升级

由于Windows 7系统老迈,AMD也无意做优化,所以AMD Ryzen并不支持Win7。然而,外媒报道称,不仅如此,即使对于Linux,AMD Ryzen也对内核版本有要求。......

关键字:Win7 AMD Ryzen

[真心话] 从诺基亚3310看手机业价值观的碰撞,总有一种力量让我们不忘初心

从诺基亚3310看手机业价值观的碰撞,总有一种力量让我们不忘初心

这2017年2月最后一天,手机业两种价值观无意中交错、碰撞。Nokia 3310与一帮高价新品,尤其巴展上不断炫耀的东西,形成了一种错落。......

关键字:手机 诺基亚3310

[趣科技] 再次领先iPhone 8!三星S8将成为首款支持蓝牙5.0的手机

再次领先iPhone 8!三星S8将成为首款支持蓝牙5.0的手机

.虽然蓝牙5标准早在去年就出炉了,但是市面上几乎没有支持蓝牙5的产品(你手机都还没蓝牙5,这家公司的IC已经支持蓝牙5了),谁会成为第一个吃螃蟹的厂商呢?作为三星新旗舰Galaxy S8,它承载了三星手机的未来,这一......

关键字:三星 蓝牙5 iPhone 8

[真心话] 为防Model S再“惹祸”,特斯拉对Autopilot大升级

为防Model S再“惹祸”,特斯拉对Autopilot大升级

周日,特斯拉宣布该公司正在对Autopilot技术进行重大升级,新功能将在一两周后推出的Tesla Software Update 8.0系统中出现。特斯拉首席执行官埃隆·马斯克(Elon Musk)披露了有关Tes......

关键字:特斯拉 Model S
条评论

我 要 评 论

网友评论

大家都爱看

  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…

    2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…

    2017-08-15
  • Intel代工 展讯发布14nm SC9853I手机SoC

    SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。…

    2017-08-15