我用dm3730接的sensor为了抓拍720p,我用的是dvsdk 4.0.3
刚开始我用saMmapLoopback.c做测试,但是发现测试程序在ioctl的VIDIOC_DQBUF命令那里停住了,然后我在isp.c文件的下面代码中
把if (isp->pipeline.pix.field ==V4L2_FIELD_INTERLACED)改为if (isp->pipeline.pix.field == V4L2_FIELD_NONE)
然后在后面注释掉
if (isp->current_field != 0)和if (RAW_CAPTURE(isp))
这两句话后就能通过VIDIOC_DQBUF命令
后来我在saMmapLoopback.c里面的
ret = ioctl(display_fd, VIDIOC_QBUF, &display_buf);
后面加了几句代码:
if(saveyuv_num == YUV_CAPTURE)
{
fp=fopen("mt9m033_yuv_test.yuv","wb");
printf("open mt9m033_yuv_test.yuv !\n");
fwrite( cpy_ptr, 1, capture_fmt.fmt.pix.width *capture_fmt.fmt.pix.height* 2,fp);
fclose(fp);
printf("close mt9m033_yuv_test.yuv !\n");
}
saveyuv_num++;
主要是抓一帧数据保存成yuv文件,但是我用yuv工具打开该文件后全是灰色,如下所示
请问是怎么回事,哪里出了什么问题
sensor外部时钟camcla是有的,像素时钟也是有的,是74.25M,中断也是有的
fang zhang:
你好。
你是用ti-dvsdk_dm3730-evm_04_03_00_06版本吗? 这个版本 ti-dmai-apps中视频采集demo是否可用? 而且该内核版本中Resize驱动好像不支持。
map dog:
回复 fang zhang:
是这个版本的sdk,ti-dmai-apps中demos是可用的,你是说单纯的resize字符驱动还是isp.c中断里面的resize处理
后来我排查了一下,是这样的,刚开始我的v4l2的应用程序跑到dqbuf那里就停住了,后来在isp.c文件的omap34xx_isp_isr函数中发现经过isp_buf_process的处理,才能通过dqbuf,而中断处理函数isp_buf_process只有一个,就在resize中断的后面:
if (irqstatus & RESZ_DONE)
{
if (irqdis->isp_callbk[CBK_RESZ_DONE])
irqdis->isp_callbk[CBK_RESZ_DONE]( RESZ_DONE, irqdis->isp_callbk_arg1[CBK_RESZ_DONE],
irqdis->isp_callbk_arg2[CBK_RESZ_DONE]);
else if (!RAW_CAPTURE(isp))
{
ispresizer_config_shadow_registers(&isp->isp_res);
isp_buf_process(dev, bufs);
}
}
后来我人为添加了isp_buf_process函数,能过v4l2的dqbuf命令,但是就出现了上面的情况
从这两点看我的raw data从ccdc出来后没有经过preview和resize,自然也没有产生这两个中断
那么我要配置哪里或者更改哪里才能产生preview和resize中断,进行preview和resize处理
fang zhang:
回复 map dog:
你好。
你可以先看resizer驱动有没有加载,即有没有/dev/omap-resizer这个节点。
不过我之前用这个版本ti-dvsdk_dm3730-evm_04_03_00_06的时候,因为内核使用2.6.37的,没有resizer的驱动(ti-dmai-apps中demos是可用的,不知你是否有用到resizer相关的例子)。这个版本/psp/docs/ReleaseNotes-04.02.00.07.pdf中好像说明了不支持ISP-resizer驱动。
What's Not Supported• Following features/modules are not supported:• U-boot (Unified binary supporting Nand/OneNand on OMAP35x platform)• AM/DM37x Processor card with Micron/Numonyx Memory• OMAP35x/AM-DM37x ISP-Resizer driver• Raw sensor format on parallel interface• IOMEM (USERPTR mode) type of buffers in V4L2 Capture• Default MPU rate configuration through bootargs using "mpurate="
dvsdk_dm3730-evm_4_02_00_06版本是有resizer驱动的,内核采用2.6.32
map dog:
回复 fang zhang:
我的内核是用的dvsdk_dm3730-evm_4_02_00_06版本是有resizer驱动的,内核版本也是2.6.32的,有/dev/omap-resizer这个节点的
这样的话我上面出现的问题是怎么回事呢?????!!!!!
而且在采集之前是使能preview和resize中断的,函数isp_buf_queue中的isp_enable_interrupts就使能了这两个中断
luke tang:
回复 map dog:
map dog兄,我也遇到了跟你一模一样的问题,请问你现在解决了吗,能否分享下问题原因和解决思路,谢谢
map dog:
回复 luke tang:
这个项目挂掉了,改用海思的了,你问TI的FAE吧
luke tang:
回复 map dog:
好的,谢了~
luke tang:
回复 map dog:
怎么都没有看到ti的员工回复您的这个问题哦