免费注册 查看新帖 |

Chinaunix

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

我的摄像头驱动总结 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-16 23:14 |只看该作者 |倒序浏览
从学校里出来,到公司实习,已经快半年了。感觉这半年里学的东西,比学校里两年学到的还要多。现在觉得在学校好自由,没人管,想干吗就干吗。初到索玛(我们公司名),被分配到的是Linux驱动这块工作。以前在学校,也只是象征性的在VM上跑了下Linux,真正的系统是没有跑过的,等于是没有用过。第一次用,跟用Windows没什么区别,因为命令都不会,更不用说在上面写驱动了。现在想想,都好象还是昨天的事情。年后回来,工作调度,我不再负责Linux驱动的编写,而是负责XINE和Gstreamer解码库。现在手头上做的事,已经不是Linux下的活了,已经转到了Windows下,要用到DDK。
家里有个摄像头,一直想把它在Linux下驱动起来,随后就开始动手写了,那是3月底的事情了,那时我已经不负责Linux驱动了。写程序,定框架很重要,可以说是第一步。当然那些小的测试程序是不用搭框架的。框架定下来以后,功能模块就定下来了,虽然Linux是用C写的,但是写程序的思想,还是要借鉴C++,毕竟面向对象的才是好的,且清晰。我在我的摄像头驱动里,一共分了4个模块:主调用模块、URB模块、V4L2模块、配置芯片模块。然后把接口定义好,在主调用模块里调用就是了,呵呵,就和C++里的类一样。
在编写的过程中,失败过两次,原因都是没有定框架,结果都是写到后面就写不下去了,感觉像进了汪洋大海,顿时迷失了方向。其实写这个驱动之前,我也没多想,只是想:我一定能行的。自信心很重要。自己都没信心,还指望什么呢。作为程序员,写代码是家常便饭,写的多了,自然就会有感觉。我很感谢我们软件组的组长,他说的话,对我来说,是很受用的。
这个驱动代码,主要是参考了内核自带的OV511以及ZC0301源码,还有曹荣荣的BLOG(caorr.cublog.cn)。代码的coding时间,花了大概7个晚上;随后的测试和修改,花了大概也有个3、4个晚上吧。平时实在是没时间,只能利用晚上时间来做点自己喜欢做的事情。编写过程中出现的问题,在此就不一一列出,因为我遇到的,你不一定遇到。原则只有一个:遇到问题,就要搞定它。这也是积累。这个驱动只在FC8 2.6.24.3下测试过,其他版本没有测试过。这个驱动只适用于专用设备,在Linux下插上摄像头,然后执行"lsusb",看看你的摄像头的PID/VID是不是0x0ac8/0x301,如果是话,刚好可以用。在用之前,必须先卸载系统自动加载的驱动,名叫:zc0301,执行"lsmod"就可以看看它是否已经加载了。还要提一点,一定要进root用户,普通用户即使加载了驱动,摄像头也是不能用的。对此问题,网上有解决的方法,但我没去试过。秉承Linux开源精神,我也上传代码。
下一步打算写个基于V4L2的音频设备驱动,只是没有合适的外设。音频应该比视频简单,所以我认为,搞定它是没问题的。
上张图,这是用FC8自带的ekiga拍的。MPlayer也可以测摄像头,图就不上传了。


最近刚好是四川大地震,在这里祈祷灾区人民,四川加油,中国加油

摄像头代码:

文件:
摄像头驱动源码.rar
大小:
43KB
下载:
下载


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP