TL2640-COMS摄像头测试 问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12343|回复: 11
打印 上一主题 下一主题

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位工程师,5 y6 ~6 U6 K% o( K+ f' y3 O
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入
7 N0 f( W# {3 A5 @* p& Y"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:) ~4 |. X4 A/ u7 b) Q/ d. c& p
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
; R) B+ \9 x9 C7 D6 T; hCAMERA capture
* r# h. E4 d5 o7 S7 Finput_device /dev/video0
& u! x( a) O  i- l3 g: M' Z+ x  QCamera-Camera/ v; L3 V8 e2 G" L1 w! d
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)9 S$ w, m$ L  d- C# J
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)8 I( c8 g. r3 N( ~
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
4 P! u- Y  N9 K0 m8 y$ d. rcapture_buff_info[0].length = 4147200) A/ }6 M4 e9 u
capture_buff_info[0].index = 0
+ Y  J3 _" p9 i' L( ncapture_buff_info[0].start = 0xb6bec000
: K1 \0 R1 N' j' x, |" \capture_buff_info[1].length = 41472002 v* A5 f$ a8 I, E8 U- V8 R
capture_buff_info[1].index = 1
" R3 `* }2 u& r5 p( _0 H* `" i6 Ycapture_buff_info[1].start = 0xb67f7000
. s* E$ X% F. _[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
1 c# X& K6 V6 A3 U% LCannot mmap = 2 buffer
: T; t2 ^( L! m3 KError in opening capture device for channel 0

, K+ T  D! [7 v1 S. ? ; c  v( ^$ V. T
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!. }/ D/ V: X( u$ C0 @9 A5 z. S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
12#
发表于 2016-2-16 09:03:56 | 只看该作者
新年快乐!- }' z) V. L, ^; g8 y4 @  @
在内核include/linux/videodev2.h这个文件里面有定义,可以include这个文件,或者将这几个宏定义负责到你的代码里。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
11#
 楼主| 发表于 2016-2-15 10:43:58 | 只看该作者
teddy 发表于 2016-2-14 17:02- Y, _7 l! H. l6 ?1 A
U-Boot 2012.04.01-00059-g7363edf对应的版本是: v1.6,可以查看创龙提供的uboot-feture-support.xls;
( _7 ~- [+ X3 y2 z' z* `) F0 Q* b, g. o5 O: l: F
可 ...

  f7 g) ]- T0 C# M- o8 jteddy,$ |+ r% r7 F+ A6 H! t: o2 V
新年快乐!1 `1 ~1 d; d0 K
我按照您提供的方法已经将摄像头调试清晰了。谢谢您。' j# O% D3 X+ G6 L' U. H
( F; J# z/ ]# b/ c
现在我用gcc -o vpif_mmap_loopback_sd vpif_mmap_loopback_sd.c 编译,出现了以下错误:
2 I" F7 [! v7 e5 |& t8 V6 W0 S, H- V' z+ s
vpif_mmap_loopback_sd.c: In function ‘initCapture’:+ M4 J# L4 R% K1 m# X0 @
vpif_mmap_loopback_sd.c:247:36: error: ‘V4L2_STD_BAYER_320’ undeclared (first use in this function): E" E' ^% A; Z
vpif_mmap_loopback_sd.c:247:36: note: each undeclared identifier is reported only once for each function it appears in4 a# Y2 \) m- n$ l3 x+ k$ }
vpif_mmap_loopback_sd.c:252:36: error: ‘V4L2_STD_BAYER_640’ undeclared (first use in this function)
0 x! M; D0 K- x4 F% X* `. m4 K* rvpif_mmap_loopback_sd.c:257:36: error: ‘V4L2_STD_BAYER_800’ undeclared (first use in this function)
- F  r# @8 ]5 J/ ^vpif_mmap_loopback_sd.c:262:36: error: ‘V4L2_STD_BAYER_1024’ undeclared (first use in this function)
& t0 G* F4 O- W( q" o- ]vpif_mmap_loopback_sd.c:267:36: error: ‘V4L2_STD_BAYER_1280’ undeclared (first use in this function)
: G* F1 V! a% @, nvpif_mmap_loopback_sd.c:272:36: error: ‘V4L2_STD_BAYER_1600’ undeclared (first use in this function)- H2 x  n3 S/ R! D" F& W0 r, W
vpif_mmap_loopback_sd.c: In function ‘initDisplay’:, X, o  c9 z) Z* d2 P  f6 N
vpif_mmap_loopback_sd.c:702:48: warning: comparison between pointer and integer 6 \; S) Z" P* B! |

  m1 p" \9 |! b. O; P红色字体的变量,我在vpif_mmap_loopback_sd.c中未找到相关定义,在网上也找了一下,也没有找到,请问我在编译的时候是不是要包含一些头文件,如果需要的话,我在哪可以找到这些头文件呢?
: t! I% f( |; U% L  l% P0 ^请您再帮我看一看,谢谢。
/ X8 O6 A, S+ r( T
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
10#
发表于 2016-2-14 17:02:25 | 只看该作者
U-Boot 2012.04.01-00059-g7363edf对应的版本是: v1.6,可以查看创龙提供的uboot-feture-support.xls;
- x9 D5 ~1 E( ?& Z) H, E; ^
8 R  Q/ C* X  w2 y可以根据环境的光线强度,修改摄像头的亮度参数:
9 T' j7 Z, w5 M% V5 s0 froot@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode
7 k: y- \) @( U4 M  yroot@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode
1 M9 E* G7 X' v. Y; cCloudy
; @* M2 }& j8 t9 X* F- i
2 x) t, h" g% y6 p参数说明:
! s6 v8 m! k. ^7 S! G  _7 }light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
' V. Y: v. W( V$ ~. [2 O% W% |$ g5 }! T  _! s( x
如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
8 i! O, ^# O$ ~2 k7 j  _2 K) L! {
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
9#
 楼主| 发表于 2016-2-1 10:53:30 | 只看该作者
teddy 发表于 2016-2-1 10:12
3 ]4 V& d# K* q2 q$ o# A5 j1 l第一步,确认你的u-boot版本是不是v1.5或以上版本;
, i" @# z  ^% }第二步,可以在u-boot里面执行:nand erase 0 20000; ...
7 c( n% z/ H+ m; c: l2 p
您好,9 }& n! p1 Z6 A
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf' y9 K# X3 H6 l% u. o/ a, L9 @
请问这个是什么版本的?
+ j( C; j/ `* \9 E  A) j+ P
9 L4 c  p7 p4 u% x6 x另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?5 L4 a. m( d4 u; T- f* Z
我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
) d7 E! R6 L" n 8 Y) q1 L8 k+ X- T! i
还有就是想问一下这个vpif_mmap_loopback_sd是用什么编译的? 之前摄像头不通的时候,我改过vpif_mmap_loopback_sd.c,想用 ioctl(fd,VIDIOC_ENUM_FMT,&fmttest) 打印一下摄像头支持的视频格式,但是我用gcc -o vpif_mmap_loopback_sd vpif_mmap_loopback_sd.c(我现在只会这一个编译方法),编译一直出错,能不能写一个编译的指令给我,让我学习一下怎么编译这个vpif_mmap_loopback_sd 的?% x7 K( o6 G' ^& T& ^8 M
( k: s: t! T* T3 l$ ^
问题有点多,希望大神好人做到底,多教教我,谢谢您!
8 \6 }$ @" s& o" g8 D
! m% I% D& s, ~6 \; [2 R3 y' ^
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;. M, U1 E+ j  c8 Y
第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;0 ?/ k7 j4 W8 A7 d; O
第三步,重启板子,然后再setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
7#
 楼主| 发表于 2016-2-1 08:46:36 | 只看该作者
teddy 发表于 2016-1-31 22:165 [* B0 H  {8 ?" c, U
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
7 K( X+ m5 ]$ m/ X2 c! d) @, d
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:$ G' i4 W( A  d7 }- E  Q& [4 }
root@tl:~# cat /proc/cmdline 8 c5 e0 }1 ?* O& w0 i- J
mem=32M@0xc0000000 mem=64M@0xc4000000 mem=32M@0xc0000000 mem=64M@0xc4000000 console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw ip=off eth=06:02:40:16:fa:b0 rootwait root=/dev/mmcblk0p2 rw rootwait
8 ~4 {. _: j. i' S% p! k# ^9 V8 ^
5 N: _7 ]5 t% V3 i# p& F9 ^6 z1 ^$ A
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
9 l2 `; |, a0 v, b) p7 w那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
( T8 G+ {0 d/ i. v! X + O( `' }" ~6 A4 u( q' v- M" _
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助( X7 I$ G8 g- }% G! _3 M. ]! Z
root@tl:~# uname -a2 D0 \' L2 s/ H2 A/ N
Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
3 O: L7 o' E3 k3 i. @0 Z
% O6 c% ^. |2 f$ W$ ~

( B! H& l# Q! _7 H
) r# n7 b! g! w1 K! m$ ?
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
6#
发表于 2016-1-31 22:16:32 | 只看该作者
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给内核。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
5#
 楼主| 发表于 2016-1-30 11:40:19 | 只看该作者
human 发表于 2016-1-30 11:32
1 z  z- u, K; Y0 E( G3 ?2 u4 s还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
) f: B: R$ J; D) q; E# f7 g! B
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。# |6 M/ v8 a$ |3 \* t" @
第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2/ t( g7 D: I, u) T; b+ \0 }, t

; I. i! c8 D  {3 B* n! e, L$ ~% {我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
地板
发表于 2016-1-30 11:32:03 | 只看该作者
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-30 22:09 , Processed in 0.046332 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表