WinCE6.0 Camera驱动源码分析(二)
2013-07-30 19:43
218 查看
/article/4603940.html
本文分析从应用程序启动到开始预览整个过程中,驱动代码的执行流程。开发环境是WinCE6.0+Android6410开发板。
一、驱动的加载,参考博文/article/4603937.html。
二、通过CAM_IOControl接口操作各种属性,下面的步骤中也会不断调用该接口,此处不细谈。
三、打开各个Pin接口并进行流实例化。
调用PIN_Open打开对应的Pin接口,主要有Preview、Still、Capture三种接口,每次打开之后调用PIN_IOControl中的IOCTL_STREAM_INSTANTIATE完成流实例化。具体执行的函数是CPinDevice
:: StreamInstantiate。
四、设置各个Pin的视频流格式。
五、初始化Sensor状态,包括Camera时钟、GPIO、复位等设置,之后设置Capture的状态为PAUSE。
六、管理Pin的Buffer,由用户层分配
七、跟第五步执行流程类似,只是设置的PAUSE状态是Still和Preview。
八、同样跟第五步类似,不同的是设置Preview为RUN的状态,从SetSensorState开始执行的内容就不一样了。
九、添加Buffer到驱动的队列中
十、响应中断,开始处理接收到的图像数据(以Preview为例)
本文分析从应用程序启动到开始预览整个过程中,驱动代码的执行流程。开发环境是WinCE6.0+Android6410开发板。
一、驱动的加载,参考博文/article/4603937.html。
二、通过CAM_IOControl接口操作各种属性,下面的步骤中也会不断调用该接口,此处不细谈。
三、打开各个Pin接口并进行流实例化。
调用PIN_Open打开对应的Pin接口,主要有Preview、Still、Capture三种接口,每次打开之后调用PIN_IOControl中的IOCTL_STREAM_INSTANTIATE完成流实例化。具体执行的函数是CPinDevice
:: StreamInstantiate。
四、设置各个Pin的视频流格式。
五、初始化Sensor状态,包括Camera时钟、GPIO、复位等设置,之后设置Capture的状态为PAUSE。
六、管理Pin的Buffer,由用户层分配
七、跟第五步执行流程类似,只是设置的PAUSE状态是Still和Preview。
八、同样跟第五步类似,不同的是设置Preview为RUN的状态,从SetSensorState开始执行的内容就不一样了。
九、添加Buffer到驱动的队列中
十、响应中断,开始处理接收到的图像数据(以Preview为例)
相关文章推荐
- Wince6.0 下Camera(OV3640) 驱动开发笔记1——基于S5PC100
- WinCE6.0 BootloaderMain源码分析之OEMDebugInit
- WinCE6.0 Camera驱动源码分析(一)
- WinCE6.0 Camera驱动源码分析(一)
- WinCE6.0学习之EBoot源码分析----startup.s(二)
- 转 :我见过最完整的wince驱动源码分析
- winCE6.0摄像头驱动buffer分析
- WinCE6.0 Camera驱动源码分析(二)
- WinCE6.0 Camera驱动源码分析(二)
- Wince5.0 Camera 驱动分析
- WinCE 6.0启动过程源码分析
- Camera硬件及基于V4L2驱动源码分析
- (含代码)WinCE6.0 Camera驱动的挂载,使应用层能使用DirctShow访问
- WinCE6.0 BootloaderMain源码分析之KernelRelocte
- 转:WinCE6.0 串口驱动分析
- (含代码)WinCE6.0 Camera驱动的挂载
- (含代码)WinCE6.0 Camera驱动的挂载,使应用层能使用DirctShow访问
- WinCE6.0 BootloaderMain源码分析之OEMLaunch
- (含代码)WinCE6.0 Camera驱动的挂载,使应用层能使用DirctShow访问
- RxPermissions源码分析:使用RxJava处理Android 6.0运行时动态权限获取