基于NXP平台调试ISP CAMERA

本文档详细介绍了ISPCAMERA数据流的调试步骤,从Sensor到CSIMipi,再到ISP、Dewrap以及最终的V4L2接口。通过检查关键寄存器值变化、中断服务函数执行情况,确保每个阶段的数据传输正常。通过设置和监控特定寄存器以及执行v4l2-ctl命令验证数据流是否畅通。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、ISP CAMERA数据流图:

 二、调试步骤:

1、先查看sensor到csi mipi之间是否正常。

此出可以通过读取以下寄存器来判断是否有数据(IMX8MPRM)

0x32e40000是CSI的寄存器值。

0x32ec0000是MEDIA BLK_CTRL的值
(MEDIAMIX 域包含称为媒体块控制 (MEDIA BLK_CTRL) 的控制和状态寄存器。 这些寄存器对 MEDIAMIX 域内的外设具有各种顶级控制)

 

 

 

 查看这两个寄存器是否有变化,判断是否有数据增加,如果增加,就说明收到数据。

 

 

 

2、查看csi mipi到ISP之间是否正常。

kernel-module-isp-vvcam\4.2.2.13.0-r0\git\vvcam\isp\isp_isr.c

查看irqreturn_t isp_hw_isr(int irq, void *data)是否有中断,是否有跑到此函数update_dma_buffer().

如果有中断并且执行了update_dma_buffer(),说明isp收到数据。

	if (mi_mis & frameendmask)
		rc = update_dma_buffer(dev);

3、ISP到dewrap之间是否正常。

kernel-module-isp-vvcam\4.2.2.13.0-r0\git\vvcam\dwe\dwe_isr.c

irqreturn_t dwe_hw_isr(int irq, void *data)是否有中断,

	status = dwe_read_reg(dev, INTERRUPT_STATUS);
	if (status & INT_FRAME_DONE) {
		clr = (status & 0xFF) << 24;
		dwe_write_reg(dev, INTERRUPT_STATUS, clr);
		spin_lock_irqsave(&dev->irqlock, flags);
		if (dev->dst) {
			vvbuf_ready(dev->src_bctx[dev->index],
					dev->dst->pad, dev->dst);
			dev->dst = NULL;
		}
		update_dma_buffer(dev);
		spin_unlock_irqrestore(&dev->irqlock, flags);
	}

4、dewrap到v4l2之间是否正常。

直接执行

v4l2-ctl -d2 --verbose --set-fmt-video=width=1280,height=720,pixelformat=BG10 --stream-mmap --stream-count=1 --stream-to=d1.raw

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值