TI中文支持网
TI专业的中文技术问题搜集分享网站

DM368+TVP5158 基于mcvip_tvp5158 图像保存问题

     大家好,mcvip_test.out运行到MCVIP_getbuf中的OSA_queGet时跳出,不继续执行MCVIP_getBufInfo函数了,请问是什么原因啊?

    5158寄存器0x00 7e,0x01 a0

Shane Huang1:

你确定是跳出吗?

OSA_queGet是有一个超时时间的,如果超时时间设为无限,队列中又没有buffer,就停在这里面了

Michael_zhang:

回复 Shane Huang1:

Dear Shane

    谢谢您的回答,我设置的是OSA_TIMEOUT_FOREVER,确实是一直停在那里等待数据,

可是5158打印的寄存器显示数据已经锁定了,为什么还是获取不到数据呢? 也没有提示出错…..

Michael_zhang:

回复 Shane Huang1:

MCVIP的队列机制有没有相关文档,只能对着源代码看么?  VPFE的配置你指的是内核里面的吗? 还是? 

Shane Huang1:

回复 Michael_zhang:

没有相关文档,看代码吧

是内核里的,看看中断有没有发生

Michael_zhang:

回复 Shane Huang1:

VPFE的配置如下:

static struct vpfe_config vpfe_cfg = { .setup_input = dm365evm_setup_video_input, .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), .sub_devs = vpfe_sub_devs, .card_name = "DM365 EVM", .ccdc = "DM365 ISIF", .num_clocks = 1, .clocks = {"vpss_master"},};

在程序跑起来以后,我用cat查看interrupts增加了两个vpfe_capture0 是你说的VD中断么?

附件为板子的配置信息做参考…..

Shane Huang1:

回复 Michael_zhang:

没错,是这个中断,你要在驱动里加个打印什么的,看看VD中断有没有来。

正常情况下,每一帧是会有一个中断的

Michael_zhang:

回复 Shane Huang1:

能获取到中断,然后进入中断函数中,但是数据传到哪了,不是在中断处理函数中传递么?

static irqreturn_t vpfe_isr(int irq, void *dev_id){ struct vpfe_device *vpfe_dev = dev_id; enum v4l2_field field; int fid;

 field = vpfe_dev->fmt.fmt.pix.field;

 /* if streaming not started, don't do anything */ if (!vpfe_dev->started)  return IRQ_HANDLED;

 if (field == V4L2_FIELD_NONE) {  /* handle progressive frame capture */  if (vpfe_dev->cur_frm != vpfe_dev->next_frm)   vpfe_process_buffer_complete(vpfe_dev);

  if (vpfe_dev->imp_chained) {   vpfe_dev->skip_frame_count–;   if (!vpfe_dev->skip_frame_count) {    vpfe_dev->skip_frame_count =     vpfe_dev->skip_frame_count_init;    if (imp_hw_if->enable_resize)     imp_hw_if->enable_resize(1);   } else {    if (imp_hw_if->enable_resize)     imp_hw_if->enable_resize(0);   }  }  return IRQ_HANDLED; }

Shane Huang1:

回复 Michael_zhang:

数据是DMA过来的,中断里做的事是把填满的buffer通知给上层,另外把下一个空buffer的地址更新给DMA。

这里用的是V4L2吧?再看看dequeue出来的buffer对不对吧

Michael_zhang:

回复 Shane Huang1:

我在MCVIP里面保存了数据data为.BIN格式的,然后我调试OSA的时候发现 其中的hndl->count一直是0,导致osa_queget一直停在那…..

赞(0)
未经允许不得转载:TI中文支持网 » DM368+TVP5158 基于mcvip_tvp5158 图像保存问题
分享到: 更多 (0)