免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1218 | 回复: 0
打印 上一主题 下一主题

spca5xx摄像头源码理解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-23 09:39 |只看该作者 |倒序浏览
本人认真阅读了spca5xx摄像头驱动程序的源码主要文件spca5xx.c,把自己的一些理解写出来,希望对大家有所帮助,同时不对之处,希望大家指出 ,以求共同进步! 本源码得下在地址http://mxhaard.free.fr/embedded.html 本源码是真对usb摄像头的驱动程序,也是一种usb设备驱动程序,结构上按照usb设备驱动程序的写法: 1。该设备驱动程序支持的设备列表 static __devinitdata struct usb_device_id device_table[] = { {USB_DEVICE(0x0733, 0x0430)}, /* Intel PC Camera Pro */ {} /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, device_table);//允许用户空间的工具判断出该设备驱动程序可以控制什么设备。 2。实现struct usb_driver中的核心函数探测函数和断开函数,有关实现细节以后再讲述!以下是2.6版本的接口函数 static int spca5xx_probe(struct usb_interface *intf, const struct usb_device_id *id) static void spca5xx_disconnect(struct usb_interface *intf) 3。struct usb_driver 结构体初始化 static struct usb_driver spca5xx_driver = { .owner = THIS_MODULE, .name = "spca5xx", .id_table = device_table, .probe = spca5xx_probe, .disconnect = spca5xx_disconnect }; 4。利用usb_register(usb_driver *)函数把3初始化的结构体注册到usb core,传统的实现是在usb驱动程序的模块初始化代码中完成该工作的。驱动程序卸载时利用usb_deregister(usb_driver *)把结构体struct usb_driver 从内核中注销掉 static int __init usb_spca5xx_init(void) { if (usb_register(&spca5xx_driver) < 0) return 0; } static void __exit usb_spca5xx_exit(void) { usb_deregister(&spca5xx_driver); } 5。module_init(usb_spca5xx_init); module_exit(usb_spca5xx_exit); 至此,好像所讲的东西还没有和摄像头有什么关系!!我也有这样的感触!!!下边就让我们从spca5xx_probe地实现看起,逐步了解摄像头是如何工作的!!!!尽快写出来,太累了!!!

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16013/showart_188823.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP