本文转载自微软嵌入式中文社区http://www.msembed.com
我看到过一些关于Windows Embedded CE的DirectShow摄像头的支持方面的问题咨询。所以在这篇文章里我将展示如何让ARM平台下的Windows Embedded CE6.0的USB摄像头正常运行。在这个例子中我将使用我们的REGULUS平台。
前期准备:
• CE 6.0的在Visual Studio 2005 上的Platform Builder
• CE 6.0的USB摄像头驱动
• 带有 WinCE 6.0 R3 BSP的REGULUS ARM开发套件. (http://www.e-consystems.com/regulus.asp)
• 3.2 MP USB摄像头(http://www.e-consystems.com/3mp_cameraboard_usb.asp)
安装:
如何安装Visual Studio和Platform Builder for CE6.0超出了本文的范围。在网上可以找到关于如何安装WinCE 6.0 Platform Builder的文章。
安装USB摄像头驱动后,驱动的源代码应该会自动被放在WINCE600\PUBLIC\ThirdParty目录中。
带着USB摄像头驱动编译OS:
新建或打开一个开发套件中已有的OSDesign。在我这里,我已经为我们的REGUPLUS板生成好了一个REGULUS-1_DEMO OSDesign。
由于此驱动基于DirectShow,我们需要将DirectShow过滤器加入到OS的镜像里来让我们的驱动和应用程序正常工作。
下图是DirectShow Sysgen组件:
从catalog对话框中选择如下组件来将已安装好的USB摄像头驱动加入到OS镜像中:
在将所有上述的SYSGEN组件加入完毕后,从VS2005的菜单中选择下面的命令来编译OSDesign:
Build–>Advanced Build Commands–>Clean Sysgen
当编译完成后,在release目录里检查ce.bib和reginit.ini来确认usbcam.dll设置项是否存在。
应用程序的编译:
现在我们已经将USB摄像头的驱动加好了。接下来让我们用应用程序来测试这个驱动。我们可以在WinCE的共享资源(例如PRIVATE目录)中找到一些DirectShow摄像头的示例应用程序。摄像头应用程序的源代码可以在以下目录中找到:
WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA\CAMERAAPP
为编译生成应用程序的可执行文件,进行以下几步工作:
• 从workspace的Build菜单中选择"Open release Directory in Build Window"
• 将路径改变到WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\COMMON\LIBS
• 输入命令 ‘build -c’.
• 当这些路径中的编译过程结束后,将路径改变至WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA
• 输入命令 ‘build -c’.
• 编译将在这些路径中进行, 不过最后会有"kato.lib"不可用的错误。• 现在转移路径到WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA\CAMERAAPP\
• 输入命令 ‘build -c’
• 应用程序二进制文件"CameraDshowApp.exe"将生成于OSDesign的Release目录下。
下载并执行:
在编译完带有usbcam.dll和CameraDshowApp.exe的OS镜像后我们就可以把此镜像下载到开发板里了。当下载结束并启动之后,将USB摄像头连结到REGULUS开发板的USB Host port上。
当程序连结好设备之后,我们就可以运行我们之前编译好的程序(CameraDshowApp.exe)了。这将会显示可供选择的用于生成过滤图的过滤器列表。如果摄像头驱动被正确地加载,设备名"CAM1:"将会显示在这个组合对话框中。
选择需要的过滤器并点击OK,这将会以摄像头支持的、接近于注册表设置项"PreferredWidth"中数值的尺寸大小来运行摄像头的预览功能。你可以检查$(_WINCEROOT)\PUBLIC\ThirdParty\Catalog\USBCam\Driver\usbcam.reg这个注册表文件来确定"PreferredWidth"注册表项。
同时请根据Webcam支持的输出格式来设置如下的注册表项。我的摄像头支持YUV无压缩输出,所以我的相应的注册表项设置为:
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Video_Class]"UncompressedSupport"=dword:1"MJPEGSupport"=dword:0
分享到:
相关推荐
wince6.0 摄像头驱动
用于安装CAB文件,WinCE6.0下Wceload工具软件。 用于车机导航系统WINCE6.0,无法在文本框中输入任何文字,需要安装输入法,但系统没有CAB包安装程序wceload.exe ,也许是被精简掉了,这个时候就需要下载wceload.exe...
WINCE6.0 ARM中文模拟器SDK,支持MFC。可以集成VS2005!
WinCE6.0 测试程序 c++源码 摄像头测试
wince6.0 chs sdk是WinCE6.0开发环境(CHSINT SDK For WinCE 6.0)是在windows下开发wince程序的环境搭建和代码编写工具。很不错,值得收藏哦。
RT2870系列USB wifi驱动程序(for ARM CORTEX-A9 CPU)
最近整理了一下 开发wince6.0的心得体会---wince 6.0 开发环境搭建 以及 wince6.0 流驱动开发的2种方法,与大家分享
vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机vm wince6.0 虚拟机
Wince 6.0 开发入门教程,Wince 6.0 开发入门教程,Wince 6.0 开发入门教程,Wince 6.0 开发入门教程
wince6.0模拟器 wince模拟器 WINCE6.0_CHS_SDK
wince 6.0 usb远程连接开发机和目标机 网页文件 对新手很有帮助哦 希望能帮到大家
wince6.0下IIC接口电容式触屏驱动wince6.0下IIC接口电容式触屏驱动 有问题请QQ51669830
自己写的wince 6.0 arm下网络通讯调试软件。可作为客户端或服务器端。并显示注册表中ip地址等信息。网上没找到wince6.0下网络调试软件,所以上传一个,方便大家wince 6.0下调试tcp网络通讯。
Wince6.0中文简体SDK开发包
wince6.0 触摸屏校准程序。调用的是wince系统所提够的api。这个压缩包里边包括源码和可执行文件。
这个是wince6.0下的sdk,可以直接安装,是中文的,非常好用
wince6.0平台的搭建 安装VS2008、构建SDK、模拟器调试等
WinCE6.0下的驱动调试助手,包括了进程管理器、截屏工具和寄存器读写工具等调试WinCE时的实用功能,该程序只能在ARM平台的WinCE6.0下使用,不支持WinCE5.0和其他平台。
wince6.0下可用应用程序wince6.0下可用应用程序wince6.0下可用应用程序wince6.0下可用应用程序wince6.0下可用应用程序wince6.0下可用应用程序
VM版 wince6.0 系统,自己测试时候参考用的,在VMware Workstation测试通过,可以共享识别主机PC的USB端口。