mobile CCTV,mobile surveillance,police body worn cameras

 forgetPW
 registerNow
search
view: 5148|reply: 0
打印 prevThread nextThread

ZT:继续 V4L_test 相关问题

[copyURL]

13

主题

373

帖子

2037

积分

vipMem

Rank: 6Rank: 6

积分
2037
jumpTo
owner
poston 2015-11-12 11:15 | authorOnly 回帖奖励 |倒序浏览 |阅读模式
继续 V4L_test 相关问题
根据[url=http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:drivers:v4l_blackfin_camera&s[]=blackfin&s[]=camera&s[]=v4l&s[]=driver]http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:drivers:v4l_blackfin_camera&s[]=blackfin&s[]=camera&s[]=v4l&s[]=driver[/url]这篇文章的说明 我们解决了昨天 dev/video0不能open的问题
关键点主要是:
Board customizations --->
             (0x100000) Kernel load address for booting

原先这个值是1000  我想问下 这边的值的变化到底是起到什么作用的??  为什么用默认的1000就会打不开dev/video0设备。
现在我们的板子boot之后 加载ad7181后的打印信息如下:
root:~> modprobe blackfin-cam
Linux video capture interface: v2.00
driver for ADV7181B get_camops
driver for ADV7181B get_camops
ADV7181B: detecting client on address 0x40
driver for ADV7181B init
ADV7181B: V4L driver Blackfin CMOS Camera now ready
ADV7181B: i2c driver ready
root:~> v4l_test -o usr/output_file
capture rate: 30, height: 288, widht: 352
open /dev/video0
found Blackfin CMOS Camera device. (maxsize=720x576)
default picture properties: brightness=27714,hue=25441,colour=26219,contrast=28265,depth=16, palette=7.
trying to set capture size to 352x288
capture size set to 352x288
运行到这里之后问题又出现了。。。。。。
我们发现“capture size set to 352x288”这句打印信息完之后程序就陷入了等待状态,后来跟踪了V4L_test的代码发现 是卡在了
while (ioctl(devfd, VIDIOCSYNC, &frame_id) < 0 &&(errno == EAGAIN || errno == EINTR));
这个上面。其中蓝色标记的这个函数调用是关键点。但是目前还不知道问题出在哪里。VIDIOCSYNC 可能是用来等待PPI或者DMA中断还是什么的  具体还是一头雾水。。。。。。。
哪位对V4L较为熟悉的指点一下,谢谢
2009-3-3 21:39:34
  
  huangning
  
  
  等级:超级版主
  文章:1468
  积分:3269
  注册:2007-6-6
[url=][/url]             2

我认为应该跟 (0x100000)   这个地址无关的。
2009-3-4 9:27:29
  
  kickgame
  
  
  等级:论坛游民
  文章:32
  积分:473
  注册:2008-10-22
[url=][/url]            3

https://blackfin.uclinux.org/gf/project/uclinux-dist/forum/?action=ForumBrowse&forum_id=39&thread_id=26159&_forum_action=ForumMessageBrowse
第二个问题是你的PPI没有配置正确或者你的7181没有配置正确而没有产生正确的帧同步信号,另外你看一下你的PPI_FS3是不是应该接地,我对7181不了解,请仔细阅读下面
“When using RX mode with 3 external frame syncs, and only 2 syncs are needed, configure the PPI for three-frame-sync operation and provide an external pull-down to GND for the PPIx_FS3 pin.”

2009-3-4 9:41:55
  
  yy
  
  
  等级:新手上路
  文章:4
  积分:224
  注册:2009-3-3
[url=][/url]            4

      PPI接口有通用PPI模式和ITU-656 模式两种工作方式,在通用PPI模式下,需要水平同步信号和垂直同步信号以及场同步信号来判断视频数据传送的开始;而在ITU-656 模式下,水平同步信号和垂直同步信号以及场同步信号是通过嵌入到视频流中的控制字实现的。     如果我们采用ITU-656模式,是不是意味着561的PPI0接口的FS1、FS2、FS3引脚不需要与ADV7181B的HS、VS、FIELD三个引脚相连?
     在我们设计的板子中,561的PPI0接口只与ADV7181B连接,其中561的PPI0接口中的FS3引脚接了下拉电阻,FS1和FS2引脚悬空而ADV7181B的HS、VS、FIELD三个引脚都悬空。我们将PPI0接口配置成ITU-656模式,并通过VDSP下测试程序印证能正常采集。


2009-3-4 14:35:03
  
  kickgame
  
  
  等级:论坛游民
  文章:32
  积分:473
  注册:2008-10-22
[url=][/url]            5

VDSP能采集说明硬件没问题。
首先我不肯定v4l_test可以用于输入是CCD经过A/D以后的结果;
另外,最新的svn代码支持adv7183b,不过文档未完善,建议你在uC的论坛上问问老外怎么测试adv7183b。
我大致浏览了一下,v4l_test理论上应该是可以支持测试CCD的。当然我不肯定,但是你设置size为352x288这一点肯定是错的。
你试一下把size设置为720x576再测试一下。另外,请参考最新svn代码中adv7183b,h中的ppi设置。
2009-3-4 17:42:39
  
  typhoonzb
  
  
  等级:论坛游民
  威望:5
  文章:169
  积分:1245
  注册:2009-2-10
[url=][/url]            6

今天我跟踪了一下debug信息
显示如下:
root:~> bcap_open called
bcap_open:
bcap open setting PPI done
  setting PPI to 720x576
  specified video device opened sucessfullly
VIDIOCGCAP ioctl called
  setting 'type of interface' to 0x00000101
  setting 'name' to Blackfin CMOS Camera
  setting 'channels' to 1
  setting 'audios' to 0
  setting 'maxwidth' to 720
  setting 'maxheight' to 576
  setting 'minwidth' to 80
  setting 'minheight' to 60
VIDIOCGPICT called
VIDIOCSPICT called
VIDIOCSWIN called
  setting PPI to 352x288
  ...using 352x288 window
VIDIOCGWIN called
VIDIOCGMBUF called (16906721)
  capture 202752 byte, 352x288 (WxH) frame
bcap_mmap: vm mapped to [0x00001000-0x00032800]
VIDIOCMCAPTURE(0) called (16906733)
  capture 202752 byte, 352x288 (WxH) frame
  grabbing frame 0 [0x00001000]
bcap_ppi2dma: reading 202752 bytes (352x288) into [0x00001000]
bcap_ppi2dma: done read in 202752 bytes for [0x00001000-0x00032800]
-->bcap_ppi_irq_error: PPI Status = 0x1000 ----------------------means FIFO overflow
-->bcap_ppi_irq_error: PPI Status = 0x1000
VIDIOCMCAPTURE(1) called (16906761)
  capture 202752 byte, 352x288 (WxH) frame
-->bcap_ppi_irq_error: PPI Status = 0x800   -----------------------means Frame Track Error
-->bcap_ppi_irq_error: PPI Status = 0x1000
-->bcap_ppi_irq_error: PPI Status = 0x1000
VIDIOCSYNC(0) called (16906781)
-->bcap_ppi_irq_error: PPI Status = 0x800
-->bcap_ppi_irq_error: PPI Status = 0x1000
-->bcap_ppi_irq_error: PPI Status = 0x1000
-->bcap_ppi_irq_error: PPI Status = 0x800
-->bcap_ppi_irq_error: PPI Status = 0x1000
-->bcap_ppi_irq_error: PPI Status = 0x800
-->bcap_ppi_irq_error: PPI Status = 0x1000
-->bcap_ppi_irq_error: PPI Status = 0x1000
-->bcap_ppi_irq_error: PPI Status = 0x800
-->bcap_ppi_irq_error: PPI Status = 0x1000
-->bcap_ppi_irq_error: PPI Status = 0x1000
-->bcap_ppi_irq_error: PPI Status = 0x800
FIFO溢出和Frame Error到底是怎么发生的呢?  大家能根据我的debug信息给我点建议呢?
2009-3-5 16:15:26
  
  typhoonzb
  
  
  等级:论坛游民
  威望:5
  文章:169
  积分:1245
  注册:2009-2-10
[url=][/url]            7

另外上面加粗的字体我查了下code里面的公式  定义的是 jiffies × 1000 / Hz (Hz 我们设置的是默认的250 )。
还有就是发现不管我们连不连接摄像头  报错信息一致
2009-3-5 16:50:24
  
  kickgame
  
  
  等级:论坛游民
  文章:32
  积分:473
  注册:2008-10-22
[url=][/url]            8

setting PPI to 352x288………………
2009-3-5 17:54:52
  
  typhoonzb
  
  
  等级:论坛游民
  威望:5
  文章:169
  积分:1245
  注册:2009-2-10
[url=][/url]            9

并不是一开始就要把PPI设置成352×288引起的问题  我刚才试过了  问题依旧
其实上面也已经把PPI reset成  352×288了的
root:~> bcap_open called
bcap_open:
bcap open setting PPI done
  setting PPI to 720x576
  specified video device opened sucessfullly
VIDIOCGCAP ioctl called
  setting 'type of interface' to 0x00000101
  setting 'name' to Blackfin CMOS Camera
  setting 'channels' to 1
  setting 'audios' to 0
  setting 'maxwidth' to 720
  setting 'maxheight' to 576
  setting 'minwidth' to 80
  setting 'minheight' to 60
VIDIOCGPICT called
VIDIOCSPICT called
VIDIOCSWIN called
  setting PPI to 352x288
  ...using 352x288 window

这两个setting都是调用的同一个函数bcap_reset_wsize(MAX_FRAME_HEIGHT, MAX_FRAME_WIDTH)
PPI_status报错的两个问题依旧没能解决,继续摸索中。。。。。。大师们有什么好的建议快告诉我啊!!
2009-3-5 20:54:22
  
  kickgame
  
  
  等级:论坛游民
  文章:32
  积分:473
  注册:2008-10-22
[url=][/url]            10

我寒……难道是我表达能力有问题?
为什么要设置成352x288呢,你设置成352x288的话ppi怎么可能正常工作。建议静下心来把测试程序的代码认真读一读先。你还是先了解一下ITU656格式吧。

reply

使用道具 report

creditRule

QQ|wireless surveillance

GMT+8, 2024-12-22 22:30 , Processed in 0.072269 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

QuickReply backToTop BackToList