3807|5

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

一个关于相机驱动调用的问题 [复制链接]

最近在研究win mobile 下怎样调用camera driver,遇到一些问题,求教一下。

(1)我不想通过video capture filter来调用cam driver,想直接调用MDD层的函数。但是发现这些函数
CAM_Close
CAM_DeInit
CAM_Init
CAM_IoControl
CAM_Open
PIN_Close
PIN_DeInit
PIN_Init  
PIN_IoControl
PIN_Open
只要一调用就crash。
是不是这些函数是禁止应用层调用的?(我使用CreateFile创建cam实例是成功的)

(2)
PDD层的函数能直接调用吗?从哪里能找到这些暴露出来的接口?还是说PDD的函数是不暴露给应用层的?
PDD_AllocateBuffer
PDD_DeAllocateBuffer
PDD_DeInit
PDD_DeInitSensorMode
PDD_FillBuffer
PDD_GetAdapterInfo
PDD_GetSensorModeInfo
PDD_HandleAdapterCustomProperties
PDD_HandleCamControlChanges
PDD_HandleModeCustomProperties
PDD_HandleVidProcAmpChanges
PDD_HandleVideoControlCapsChanges
PDD_Init
PDD_InitSensorMode
PDD_RegisterClientBuffer
PDD_SetPowerState
PDD_SetSensorModeFormat
PDD_SetSensorState
PDD_TakeStillPicture
PDD_UnRegisterClientBuffer

(3)
使用CreateFile(),DeviceIoCtrl()能否写出一个通用的调用cam driver的方法?我自己感觉是不太可能,因为各个厂家的实现应该是不一样的,在某些参数上有差异。因为以前没研究过,所以问一下,呵呵。


谢谢!

最新回复

用V4L2嘛  详情 回复 发表于 2008-5-28 17:48
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没接触过,帮你顶一下

一般来说,应用层要调用内核层的函数要通过内核提供的系统调用接口,如果不提供接口就没法调用了

如果可以通过某种方法在系统中增加系统调用,你在你的系统调用中再去调用其他的内核函数,可能能实现

你说的我都没接触过,只做一个一般情况的分析,不一定合理
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
这个不是CAM本身的问题,而是WM整个的架构决定的。
你用CreatFile创建句柄,那么就是要调用WM提供给你的API。
既然创建时用了API,调用别的时候怎麽可能绕过API呢?除非驱动层直接给你开个控制窗口(就是函数)。

驱动层的MDD的东西,在应用层是无法直接调用的。这是操作系统的特性决定的,即使Linux也一样。

更别提PDD了,那是比MDD更靠近底层硬件的东西,直接对硬件初始化和控制的地方,MDD层只是抽象出了相应的回调函数,由PDD层实现。
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

4
 
谢谢楼上两位的帮助和分享。

to shuiyan:
我绕开WM的API直接访问MDD的目的在于,想寻找一种通用的调用CAM的方法。如你所说,厂商会提供一个控制窗口给应用层调用。但是,各家厂商提供的函数可能都不一样,这样应用层必须对不同的厂商做出不同的改动。MS的video capture filter倒是一个通用的调用接口,但是从performance的角度上来说,还是没有直接通过API调用好,毕竟filter封装了好几个层。

所以,对于通用的CAM调用的方法(或者是针对不同厂商只需少许改动的方法),不知道你有没有好的idea和建议?谢谢。
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

5
 
这样看来有点难度:
如果是通用的话,就必须得制定相关的标准。
你要提供两个个标准的接口,一个给应用层,一个给驱动层。
驱动程序根据标准接口将设备的操作注册到系统中,应用程序根据标准接口操作设备
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
用V4L2嘛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表