现在的位置: 首页 > 综合 > 正文

ov511驱动移植(二)

2013年10月27日 ⁄ 综合 ⁄ 共 1968字 ⁄ 字号 评论关闭

 

在内核中已经编译进ov511的驱动了,然后就是验证它是否好使了。

在网上找到了一种测试方法。

vidcat

拿到vidcat的源码后抽取出来了三个文件:vidcat.c v4l.c ,v4l.h,

编译之前先确定交叉编译器是安装好的,然后在三个文件所在目录下建

立一个文件build,编辑之,内容如下:
arm-linux-gcc -g -o2 
-i/opt/arm/4.3.2/
-i/home/linux-2.6.32.2/include 
-dvideo_dev=\"/dev/v4l/video0\" 
-dversion=\"0.7.2\" 
-l/usr/local/arm/2.95.3/arm-linux/lib  
-o vidcat vidcat.c v4l.c
实际写的时候需要写在一行里面,注意所有“-”之前都有空格的,编辑完成后存盘退出,然后chmod +x

build
然后./build就可以顺利编译出来vidcat可执行文件了
如果你不能./build,提示什么操作拒绝之类的,就用chmod 775 build
知其然还要知其所以然,我来解释一下这行命令
-i/home/linux-2.6.32.2/include

-i/home/linux-2.6.32.2/include 这个是设定将这两个目

录作为搜索头文件的目录,前者是光盘上解出来的gcc工具,后者是光盘上解出来的kernel包,之所以有后

者,是因为前者中的一个头文件用到了linux/version.h,而这个文件只在linux的kernel里面有,所以需

要后者。
-l/ 这个是指定到这个目录下找相应的库文件。
-dvideo_dev=\"/dev/v4l/video0\" -dversion=\"0.7.2\" 这两个是将两个预定义常量传入编译器,一个

是video_dev,是指定默认的摄像头设备对应的地方,一个是version,是vidcat的版本,我拿到的板子上

的video_dev是/dev/v4l/video0,一般linux系统是/dev/video0。后面这个参数里面的0.7.2你爱写啥就写


这个带源码的vidcat对俺这样需要自己写摄像头程序的人作用挺大。

编译完成以后,将编译出来的vidcat考到开发板上,

然后查看vidcat.c

void
usage (char *pname)
{
 fprintf (stderr,
 "VidCat, Version %s\n"
 "Usage: %s <options>\n"
 " -b                          make a raw PPM instead of an ASCII one\n"
 " -d <device>                 video device (default: "VIDEO_DEV")\n"
 " -f {ppm|jpeg|png|yuv4mpeg}  output format of the image\n"
 " -g                          greayscale instead of color\n"
 " -i {tv|comp1|comp2|s-video} which input channel to use\n"
 " -l                          loop on, doesn't make sense in most cases\n"
 " -n {pal|ntsc|secam}         select video norm\n"
 " -o <file>                   write output to file instead of stdout\n"
 " -p c|g|y|Y                  videopalette to use\n"
 " -q <quality>                only for jpeg: quality setting (1-100,"
  " default: %d)\n"
 " -s NxN                      define size of the output image (default:"
  " %dx%d)\n"
 "Example: vidcat | xsetbg stdin\n",
  VERSION, (char*)basename(pname), QUAL_DEFAULT, DEF_WIDTH, DEF_HEIGHT);
 exit (1);
}

按照上面的源码,书写命令

./vidcat -d /dev/video0 -f ppm -s 640*480 >first.ppm

在当前目录下就生出了,first.ppm

PS:

由于我出来了雪花的情况,我不能确认是什么出了问题,所以便在30.4的内核上重新移植了一遍

发现,执行上面的指令可以采集出图像,但是就是只能采集黑白的。

问题依旧严峻、、、、、待解决

抱歉!评论已关闭.