This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728 VIP驱动



大家好,

    我在用5728的vin3a口进行视频流采集,看了vip驱动,调试了一下,采用16bitYUV,分离同步,都设置好之后打开了v4l2_debug,之后在应用层借鉴网上的测试程序,从stream中取图像保存下来,但是驱动总是打印:

[ 61.024606] vip2-s0: IRQ 359 VIP_INT0_STATUS0 0x1
[ 61.024610] vip2-s0: IRQ 0: handling LIST0_COMPLETE
[ 61.024613] vip2-s0: IRQ occurred when not streaming
[ 61.024617] vip2-s0: start_dma: dropped

不太清楚这个IRQ 359 的中断是从哪里来的,也就找不到什么原因导致dma:dropped,求大神帮忙

另外我想用分离同步接收数据,所以dts文件是这样配的:

remote-endpoint = <&vin3a>;
hsync-active = <1>;
vsync-active = <1>;
pclk-sample = <1>;
bus-type= <0>;
bus-width = <16>;
channels = <0>;

不知道对不对,也请大神给看一下

  • 发现手册1927页寄存器描述顺序错了

    问一下这个YUV_PROTOCOL错误,是指像素格式错误吗

  • 359:         17          0      CBAR 352 Level     vip2-s0

    自己找到了中断,发现读到中断寄存器值为1,结合手册:

    VPDMA INT0 List0 Complete Enabled Status Read
    indicates interrupt enable 0 = disabled 1 = enabled
    Writing 1 will set interrupt enabled Writing 0 has no effect

    dma队列完成触发的中断,我的程序会一直卡在这个中断这里不能往下执行,看了一下vip驱动中断处理函数:vip_irq()

    reg_addr = VIP_INT0_STATUS0_CLR +VIP_INTC_INTX_OFFSET * irq_num;
    reg_write(dev->shared, reg_addr, irqst);

    有清除中断标志位的操作,但是中断既然不断触发导致buff的数据取不出来。


  • 请问是在TI的demo板上测试的么?用的是哪个版本的SDK?