zoukankan      html  css  js  c++  java
  • 基于linux2.6.32.2的servfox移植

    说明:这篇文章是本人在做基于web客户端的远程监控系统课题期间,在移植servfox应用服务程序费了很大周折,所以写下的。

    只是介绍了基于arm的servfox移植【因为其他部分的移植没有遇到过错误】

    前言:

    如何移植基于linux的USB摄像头驱动,及搭建web服务器。请参考这篇文章: 点击打开链接

    正文:

    1.下载servfox软件,在你虚拟机下解压

    2.将makefile.arm 文件名改为 makefile

    3.修改 spcav4l.c 文件

    /* Only jpeg webcam allowed */
    (1))

    if(vd->cameratype != JPEG) {

    exit_fatal ("Not a JPEG webcam sorry Abort !");

    2)/* if (vd->formatIn != vd->videopict.palette 
          vd->bppIn != vd->videopict.depth)
        exit_fatal ("could't set video palette Abort !");
    if (erreur < 0)
        exit_fatal ("could't set video palette Abort !");*/

    这两段注销掉,否则会出现wrong spca5xx device
    Not a JPEG webcam sorry Abort !  

    这样的错误


    4.make 然后 将生成的servfox 复制到开发板目录

    执行 ./servfox -d  /dev/video0  -g  -s 320*240  -w 7070

    【如果复制到了usr/bin目录,则去掉前面servfox的  ./


    说明:

    此命令如果不加 -g 会出现

    wrong spca5xx device
    Waiting .... for connection. CTrl_c to stop !!!! 
    cvsync err
    : Invalid argument
    cmcapture: Invalid argument

    这样的错误。

    -g表示use read method for grab instead mmap 


    5.本人出现的问题

    耗费本人几天的问题并不是此应用程序servfox的问题

    当我执行 ./servfox -d  /dev/video0  -g  -s 320*240  -w 7070

    移植提示 illegal instruction 的错误,及非法指令。

    由于缺乏相关的经验,开始一直以为是此程序的问题,编译时没有加上链接库,尝试过静态编译,然后还是提示此错误。最后在朋友的提醒下,是我的交叉编译器的问题,我之前是在s3c6410的板子上开发的,所以用的交叉编译器是4.3.1for6410的,现在是基于s3c2410的平台开发的,更换了一个4.3.32for 2410的。错误解决了。


    总结:其实出现上述错误,还是对交叉编译器的认知不够,当时只知道交叉编译器是用来在一个平台上开发是例外一个平台上运行的程序,如在电脑端开发基于ARM的程序,却没有理解arm的体系结构并不一样,他们的指令集有交叉【我开始有怀疑是交叉编译器的问题,用for6410的交叉编译器编译一个简单的hello程序,是可以再2410板子上正常运行的】,但是还是有很大不同的【具体有什么,暂时还不清楚】







  • 相关阅读:
    core dump的使用
    wav文件格式
    Unicode编码 【转】
    WAV格式中常见的压缩编码
    两台交换机级联端口mac地址表维护(转载)
    pthread_cond_wait()的使用方法
    makefile自动依赖[转]
    11月的第一天
    再读simpledb 之 事务管理的实现(3)
    再读simpledb 之 元数据管理(1)
  • 原文地址:https://www.cnblogs.com/stoneFang/p/6715340.html
Copyright © 2011-2022 走看看