“零基础”学习WinCE开发
作者:一点一滴的Beer http://beer.cnblogs.com/
在接触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机上对移动设备的文件进行读取的相关简单操作。
将工控机主板用USB连接到PC机上,给主板接上电源并启动WinCE系统。然后在PC端Micrsoft ActiveSync同步软件会自动进行检测,并连接到移动设备。连接成功后,会有如下图的提示出现。
当PC机和移动设备成功建立连接后,用户就能以PC机上的资源管理器中的“移动设备”作为入口对移动设备进行文件访问和其它相关操作了,比如,假如你是利用PC侧的WinCE模拟器开发的程序,那么生成的执行文件也在PC上,你可以通过“移动设备”接口,将你的程序文件“下载”到移动设备中。
注意:只有连接设备成功了,才能进行后面的程序开发和调试。
小建议:最开始的时候,都以为WinCE开发只需要一块安装了WinCE系统的工控板即可,不需要LCD,然后就直接黑灯瞎火地弄了一个月,最后实在忍受不了,然后花了800RMB买了一块配套液晶板,才突然感觉好起来。开发Windows程序的时候,液晶板是必需的,否则你在开发的时候将会很难受的,就像给了你一台没有显示器的电脑,虽然你可以通过鼠标进行盲操作,但那种感觉应该是比较糟糕的吧。
2.2 开发环境中需要进行的设置。
本次开发选用的环境是VS2005,虽然网上很多例程都是用Microsoft eMbedded C 4.0(以下简称eVC4.0)进行开发的,但是个人感觉VS2005的功能更强大一些,体验也更好一些。eVC4.0和开发界面和VC6.0一样(如下图),是一款比较经典的开发环境,喜欢VC6.0风格的用户可以选用eVC4.0进行开发。
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#项目,开发环境就会自动建立一个模板,用户可以在此代码模板中写自己的程序了。
但是此时如果点击调试,将弹出一个移动设备模拟器,不能和实际的工控板硬件进行连接调试,所以需要进行相关设置。在解决方案资源管理器中,选中项目,右击-属性,然后会弹出属性设置页面。
在“设备”选项卡中的部署选项的目标设备选择为“Windows CE 设备”,这个时候就可以连接工控机设备了。输出文件文件夹中
“%CSIDL_PROGRAM_FILES%WinCeCsUseDll”
表示的是在WinCE设备中的根目录下的Program Files文件夹中的WinCeCsUseDll目录下生成此项目的相关文件。点击右边的“浏览”按钮可以进行相关的设置。因为工控机上的除了放在FlashDisk里面的东西在断电后不会丢失外,其余的都会丢失,所以,你可以通过对此路径的设置,将你的程序生成的目录放在FlashDisk中,这样断电了也不会丢失了。
2.4.2 C 项目的建立和设置
选择项目类型:
选择SDK开发包(工控机厂家会提供相应的开发软件包的):
选择相应的开发环境:窗口程序,控制台程序,DLL和表态库,等等。例如,选择建立“控制台应用程序”并添加MFC支持:
然后点击完成,VS2005就自动为你创建了程序模板了。
在项目属性中有一些设置需要注意一下。在项目解决方案浏览器中,右击项目并选择属性,会弹出一个属性对话框。“部署”选项卡中的“远程目录”是指你的项目在WinCE工控机上生成的对应目录。“调试”选项卡中的“远程可执行文件”是指你程序调试要调用的执行文件(注意:如果你建立的是DLL项目,那么,这个地方要修改一下,修改成调用了此DLL文件的EXE执行程序,只有这样DLL项目才能够进行调试)。
例如:部署远程目录为
%CSIDL_PROGRAM_FILES%WinCeCsUseDll
表示,你在PC机上对项目进行部署后,你可以在你的WinCE工控机的根目录下的Program Files文件夹下的WinCeCsUseDll文件夹下找到此项目的相关生成文件。
例如:调试选项卡下的远程可执行文件目录为:
%CSIDL_PROGRAM_FILES%WinCeCsUseDllWinCeCsUseDll.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
在线帮助文档的目录如上所示。注意是一层一层往下展开的。
3.2 工控板生产厂家提供的帮助文档
当你安装了工控板生产厂家提供的SDK开发包后,就会在相应的目录下找到帮助文档了。例如安装了EPCS6960的SDK后,会在目录
C:Program FilesWindows CE Toolswce500EPCS_6960Help
里面找到相应的本地WinCE开发帮助文档。
3.2 网络论坛
到网上多搜索相关帖子,即使解决不了你的问题,但总会给你一些启发的。即使专门针对WinCE的帖子不多,但是你可以找WinXp的,一般都是可以移植的(C 的移植性要好一些,但是C#可能移植性差一点,因为WinCE下安装的只是一个精简的.NET框架)
总述:做了上述的准备工作后,后面的就是“体力活”了。任何所谓的脑力劳动都是这样的,当你掌握了基本技能后,脑力活动也就变成了体力活动了。好,有了这些基本的技能后,就开始解决问题吧。
注:购买硬件平台的价格比较高,比如EPCS6960的工控板一套就要接近两千,一个液晶屏又要将近800,所以对于初学者,可以自己到网上下载WinCE模拟器,软件仿真WinCE操作系统,熟悉WinCE下的程序设计。用硬件工控板的主要好处就是,有硬件接口及相应的驱动程序提供给开发人员,可以进行现场数据采集和控制。关于WinCE模拟器的下载及相应的使用方法可以参考文章:
《WinCE5.0中文模拟器SDK(VS2005)的配置 》
http://www.cnblogs.com/we-hjb/archive/2009/11/26/1610953.html
下面展示几张工控板的图片(黑色圆形物为1元硬币,作为大小参照物)
------------------------------------------------------------------
Author:一点一滴的Beer
Email /Gtalk:dreamzsm@gmail.com
From:http://www.cnblogs.com/beer
Notes:欢迎转贴,但请在页面中加个链接注明出处
Time:2010-11-12 in Whu