TL2640-COMS摄像头测试 问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位工程师,: n9 p% _; r1 ?7 Y' t
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入
2 D2 t; U2 p" W2 B' K4 w. Z+ T4 n+ _"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:
- h1 D, C! u- Troot@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
' i6 F" b; v/ F  z3 kCAMERA capture8 V0 L* S& ~& Y+ G6 e$ `  b' V, q0 ~. Y
input_device /dev/video0
( ^8 J  N1 m& S: QCamera-Camera8 r9 ]6 d$ b/ k# Z7 D& m
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)' J8 _/ D) c8 w& b
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)$ w3 p& {( I+ @! N0 a4 T6 w
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)+ O' W% C$ M7 H, V: M  \& P
capture_buff_info[0].length = 4147200' Z( x- g1 r2 w1 E" m  _+ d( S; C
capture_buff_info[0].index = 0
2 X9 K' S1 g! `: {- P- `/ P7 w5 N0 Kcapture_buff_info[0].start = 0xb6bec000
; v) b" |0 \  e5 ccapture_buff_info[1].length = 4147200& \" y8 t+ J8 b' g, I
capture_buff_info[1].index = 1) }3 Z+ s8 }; e9 |- h
capture_buff_info[1].start = 0xb67f70008 N5 g% @- `4 g
[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
. E( V/ V4 C( J8 Q1 {7 aCannot mmap = 2 buffer# M! r1 f8 P! r
Error in opening capture device for channel 0
( V! y: ?* X' F
9 w  z: O# s7 L0 [& z/ r
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!
$ e0 H7 K5 A0 x8 y% k3 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
11#
 楼主| 发表于 2016-2-15 10:43:58 | 只看该作者
teddy 发表于 2016-2-14 17:02/ a# P3 ]2 g* i; ?" m+ P$ U
U-Boot 2012.04.01-00059-g7363edf对应的版本是: v1.6,可以查看创龙提供的uboot-feture-support.xls;# X# C  P% U  ^( S" A
2 |0 K- Q3 K7 W2 q6 t
可 ...
) }2 s0 A! k/ A  G
teddy,
, F6 N* j7 h- N- t: r新年快乐!
3 b8 [7 ~$ B7 \0 t( {2 Q我按照您提供的方法已经将摄像头调试清晰了。谢谢您。
" ~7 m! G! \( [2 x* o  L# c3 y# I1 f" Y4 H; x
现在我用gcc -o vpif_mmap_loopback_sd vpif_mmap_loopback_sd.c 编译,出现了以下错误:
: f( j) h3 B& m' j) I6 u, b6 L
4 n) \3 ~2 v- A5 E5 e( X7 V4 Avpif_mmap_loopback_sd.c: In function ‘initCapture’:
8 G( D( X: i+ S  C0 Wvpif_mmap_loopback_sd.c:247:36: error: ‘V4L2_STD_BAYER_320’ undeclared (first use in this function)
0 G7 f( c, ]6 s( t3 g6 E' E' ?3 [vpif_mmap_loopback_sd.c:247:36: note: each undeclared identifier is reported only once for each function it appears in: |/ L7 y* e6 N* S  K
vpif_mmap_loopback_sd.c:252:36: error: ‘V4L2_STD_BAYER_640’ undeclared (first use in this function)
0 {  d* I* G6 O/ m7 b9 Uvpif_mmap_loopback_sd.c:257:36: error: ‘V4L2_STD_BAYER_800’ undeclared (first use in this function)
' {; E$ k- T- R  s% v# ?/ qvpif_mmap_loopback_sd.c:262:36: error: ‘V4L2_STD_BAYER_1024’ undeclared (first use in this function)
- S; |: t! W( E' a2 s) [vpif_mmap_loopback_sd.c:267:36: error: ‘V4L2_STD_BAYER_1280’ undeclared (first use in this function)
3 K5 V5 Q* l; X- L6 [; z4 ^& y) rvpif_mmap_loopback_sd.c:272:36: error: ‘V4L2_STD_BAYER_1600’ undeclared (first use in this function)
' \, H) n8 p- q8 v$ ivpif_mmap_loopback_sd.c: In function ‘initDisplay’:1 F1 n/ y; c$ w9 M4 X* [7 a5 u
vpif_mmap_loopback_sd.c:702:48: warning: comparison between pointer and integer ( {/ C" C  X0 Z

7 @, ?/ P. Q! ~红色字体的变量,我在vpif_mmap_loopback_sd.c中未找到相关定义,在网上也找了一下,也没有找到,请问我在编译的时候是不是要包含一些头文件,如果需要的话,我在哪可以找到这些头文件呢?- j9 C' n8 s* q( S
请您再帮我看一看,谢谢。
* _0 G/ E2 }) M/ w$ D; f+ W9 _
回复 支持 反对

使用道具 举报

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;$ X6 {' |& T6 X& @6 ~
, o% w8 S6 y4 l5 P
可以根据环境的光线强度,修改摄像头的亮度参数:
, e+ P5 B  S; mroot@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode
! N5 q4 }, p" d! v" A! g  @root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode " F3 `7 u0 l* t, K0 i
Cloudy
: X/ d8 _" t5 `! j- }" G$ l, P* K/ E) s6 L* b) ?  h; A8 X
参数说明:
2 A: t# x/ e( f7 mlight mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
; P: t+ o8 o- x1 }
0 c% r- m% X7 s; x' _+ K如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c2 V) u* M$ d. m+ E6 F2 `

+ o2 Q" }, K$ k- [vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
9#
 楼主| 发表于 2016-2-1 10:53:30 | 只看该作者
teddy 发表于 2016-2-1 10:12# h/ `! ?" ~. w6 v3 D
第一步,确认你的u-boot版本是不是v1.5或以上版本;8 x  F, c1 R. C
第二步,可以在u-boot里面执行:nand erase 0 20000; ...

( x2 e) u3 F1 ]0 y- U您好,% v, a& E8 K$ C
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf& Z6 J' Y+ [7 K: N% Q
请问这个是什么版本的?& Z8 y1 b" v# L, {3 s
1 c. _+ d4 G# p( P3 Z
另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?9 f) w( I% L7 o
我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
2 P7 x; b( n+ O, h
, s2 X5 j3 C5 ?/ L; |) {还有就是想问一下这个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 的?7 a' M9 }0 T8 P" E4 R
/ }6 m: t: M1 l7 z% T  W6 `! ~4 H, K
问题有点多,希望大神好人做到底,多教教我,谢谢您!, q! k# f$ P) M) t5 j8 t/ |( V; l
- T1 z" S1 E6 e) ]7 g
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
6 ~, H: w0 H. R4 _$ n第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;0 V0 I. D8 Y, K/ B' W; o$ R
第三步,重启板子,然后再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:16
- S& i6 @* u2 `: i  J  A) R/ O在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...

4 j+ X8 `5 c! h: J8 K  |谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
3 X) p% ~& M4 Y/ y2 L, xroot@tl:~# cat /proc/cmdline . {/ R  M! k$ b. B: }
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

) x2 G0 B/ Q% F) i+ y" K2 o' M' Y 6 X; `4 [+ f# _4 O; t+ ~% ^$ r
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?, m6 q0 c% s8 ^. t* {
那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!, E5 e/ r* r) k, ?

! n4 {2 B  `; g( A: W3 q- f0 f以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助
8 Q5 F* ?# h( p& P# H  droot@tl:~# uname -a/ H6 L* U  Q  R  ]5 p
Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux

- T9 v5 ^. P, M3 ~/ n # ?$ C9 x0 l$ }0 d5 P! y2 G; ?
( _8 o8 B! ?: D9 S

" k1 J  [' ]+ u. D$ G* s( g
回复 支持 反对

使用道具 举报

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& M" e, \( |$ y
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...

3 Q0 |# V7 U% s! o. ~6 r; Z- l; n6 d我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
* z% ]( D% b% ]8 c第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
& t4 _) F$ K! t- c9 {8 V0 c2 y  {  z' ?- O7 ]7 F% j* I3 J, V
我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-3 04:02 , Processed in 0.043058 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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