首页 > 嵌入式软件 > WinCE

在接触WinCE时候的基础:

本文引用地址: http://embed.21ic.com/software/wince/201605/41240.html

软件语言基础: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下的程序设计。用硬件工控板的主要好处就是,有硬件接口及相应的驱动程序提供给开发人员,可以进行现场数据采集和控制。

换一批

延伸阅读

[真心话] 资深硬件研发工程师:抄袭可耻!但产品抄袭可用,资料抄袭可笑

资深硬件研发工程师:抄袭可耻!但产品抄袭可用,资料抄袭可笑

硬件研发一般是指电子产品硬件研发,是一种看得见实物的电子产品研发,比如我们所说的手机、鼠标、键盘、音响都是硬件,硬件开发也就是在这些方面进行的一系列研究。本文分享一位资深工程师对硬件研发的一些看法,希望能对大家有所帮助。......

关键字:硬件研发 抄袭 生产体系

[疯狂史] 涉案金额3.2亿!全国最大刷单案落定,每天最高7000单均价6元

涉案金额3.2亿!全国最大刷单案落定,每天最高7000单均价6元

预售、秒杀、抢购……每逢电商大促,剁手党疯狂下单掀起网络狂欢的同时,网络诚信也在经受着严峻的考验。今天是电商618的决战日,各家电商平台的流量战打得也是如火如荼,交易量、商品评价、信用评价等指......

关键字:电商 网络刷单

[疯狂史] PCB设计软件大解析,哪一款才是你的菜?

PCB设计软件大解析,哪一款才是你的菜?

PCB(Printed Circuit Board)设计软件经过多年的发展、不断地修改和完善,或优存劣汰、或收购兼并、或强强联合,现在只剩下Cadence和Mentor两家公司独大。“......

关键字:PCB设计软件

[真心话] 三大运营商取消流量漫游费,本地流量将被国内流量替代

三大运营商取消流量漫游费,本地流量将被国内流量替代

7月1日,中国移动、中国联通和中国电信正式全面取消流量漫游费,原有套餐中的省内通用流量直接升级为国内流量,但并不包含港澳台地区。目前原来的本地流量已经转化为国内流量。对于本地流量转化为国内流量后价格是否......

关键字:电信 网络流量

[真心话] 充电时到底该先插手机还是先插电源?作为电工你应该知道...

充电时到底该先插手机还是先插电源?作为电工你应该知道...

手机不离身似乎已经成为当代人的日常状态,如此频繁地使用手机,会十分消耗手机的电量,不经意间,一天充电数次,而且一旦充电方式不正确的话不仅会损伤手机电池,甚至还存在安全隐患。关于手机充电,很多人都忽视了......

关键字:充电 手机 电源

[趣科技] 可以为手机充电的牛仔裤

可以为手机充电的牛仔裤

但是如果有一条神奇的既可以容纳你的手机,同时还可以给你的手机充电,让你出门在外,从此无忧,你会去购买这款神奇的牛仔裤吗?......

关键字:充电

[猎聘集] 面试过900+工程师的HR自述,手把手教你看破面试中的套路

面试过900+工程师的HR自述,手把手教你看破面试中的套路

技术面试常常有很多坑,不管是对面试官还是面试者来说,都是如此。这篇文章可以让技术面试官规避很多面试过程中可能出现的问题,也可以给即将参与技术面试的面试者一定的启发。......

关键字:技术面试
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14