基于Linux操作系统的视频采集卡驱动程序设计
用程序分离开,从而降低丢失数据的可能性。设备采集到图像后可以用DMA 方式直接将数据放入应用程序分配好的缓冲区中,这就大大提升了整个系统的性能。
4.2.3 测试驱动程序[6]
首先编译上述模块,然后通过命令insmod链接进内核。用于测试的简单应用程序主体部分如下所示:
vid = open(device, O_RDONLY);/*打开设备*/
err = ioctl(vid, VIDIOC_QUERYCAP, cap); /*查询设备支持的功能*/
err = ioctl(vid, VIDIOC_G_FMT, fmt);/*设置采集图像的格式*/
data = malloc(fmt.fmt.pix.sizeimage);/*分配用户空间缓冲区*/
n = read(vid, data, fmt.fmt.pix.sizeimage);/*获取一桢数据*/
该应用程序运行后经检查得到了预期的结果,并且在基于该驱动程序的CDMA无线视频传输系统中满足了应用的需要,获得了理想的效果。
5 结论
本文作者创新点:详细阐述了Linux环境下利用V4L2API开发视频采集设备驱动程序的流程,并将该驱动程序实际的应用到我们自己研发的CDMA无线视频传输系统中,获得了满意的实时效果,在此也希望对从事同类开发的人员有所裨益。
参考文献
1 Alessandro Rubini Jonathan Corbet,Linux device driver,2nd Edition,O’Reilly,2001.7
2 Philip SAA7146A datasheet,1998.4
3 Philip SAA7111A datasheet,1998.5
4 http://linux.bytesex.org/v4l2/
5 PCI SIG,PCI Local Bus Specification Revision 2.2,1998.12
6 王多智,嵌入式linux下sram驱动程序的开发原理及应用,微计算机信息,2005年第5期
- REDIce-Linux--灵活的实时Linux内核(11-12)
- linux文件系统基础(02-09)
- Linux标准趋向统一(11-12)
- linux基础技术(02-09)
- LINUX的目录树(02-09)
- 在Windows下启动Linux(02-09)
