打印

DM6467视频口输出的问题

[复制链接]
2879|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kedakaka|  楼主 | 2011-10-25 13:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
视频口是通过SAA7121芯片输出的图像,而且可以输出720*576的图像。但是有时候启动测试程序,打开视频口后,程序卡死在VIDIOC_DQBUF中,具体位置为:

case VIDIOC_DQBUF: davincihd_display.c

               /* Call videobuf_dqbuf for blocking mode */
              ret =  videobuf_dqbuf(&common->buffer_queue,(struct v4l2_buffer *)arg, 0);

在videobuf_dqbuf()函数中:  video-buf.c

      retval = videobuf_waiton(buf, nonblocking, 1);
       if (retval < 0) {
            printk(1,"dqbuf: waiton returned %d\n",retval);
            goto done;
         }

在videobuf_waition()函数中:video-buf.c

printk("\n\n%s the state is vb->state = %d, intr = %d\n", __FUNCTION__, vb->state, intr);
if (vb->state == STATE_ACTIVE || vb->state == STATE_QUEUED)
       schedule();  //sched.c

1.解释卡死现象:
            驱动程序我已经贴在下面,具体demo就是和前期做的视频口测试demo一样,当打开设备,设置属性,可以工作时,我开始发送图像流,即  进行ioctl,操作这个宏VIDIOC_DQBUF  也就是写数据到驱动缓冲区里。但是该ioctl不能返回,卡死在我贴出来的驱动函数处。就在这个卡死的时候,是没有中断的。
        2.解释设置寄存器的问题
           寄存器我已经设置中断了,而且我在操作时,图像是可以发送出去的,并且显示能看到720*576的图像,认为这是正确的。
        3.图像时有时无的问题
           由于1的问题,图像输不出来,为无。2的问题为有。寄存器的值都是一样的0x148b(通道2寄存器CH2_CTRL的设置值).
        4.解释第一次的问题
          第一次,就是我去执行demo程序,如果demo程序上来就执行sched.c文件处的printk函数(我自己添加的,这个地方是内核的调度),那此时就卡死了。如果一上来没有执行调度,既可以顺利工作,但是图像很卡,不流畅。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:为了别人爱自己

4

主题

16

帖子

0

粉丝