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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位工程师,/ J! r1 M/ v$ S. t9 N
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入6 D2 u4 u& b# l/ A: ]4 g; {; a
"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:. T5 |( l4 z: X! A: {
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
, `) a8 I6 g! `9 B4 oCAMERA capture
; u  b- ?5 \# b0 W2 Q, _  `input_device /dev/video0% }5 u$ U: E1 p& h- X
Camera-Camera
& j: t8 T8 i  b: Qfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000): M0 O) d$ v. \/ p3 ?) F5 Z* `
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
# m- B# W; _( p# K% E9 P/ vfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)$ P$ y' g& s+ S& V
capture_buff_info[0].length = 4147200/ e2 P0 }2 k3 \- W$ }/ Y& h, W
capture_buff_info[0].index = 0
. U# z, ?5 ~( {- Q, }0 bcapture_buff_info[0].start = 0xb6bec000! _& Y/ s  C# |, K( ~
capture_buff_info[1].length = 4147200
$ a* r* g; R. J/ I+ vcapture_buff_info[1].index = 1
) M4 o7 D, _9 M) a$ X" Fcapture_buff_info[1].start = 0xb67f7000
: f9 j8 d0 G; O% C4 f+ Y0 F3 z# x4 I[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
2 t/ \. G$ a; t2 dCannot mmap = 2 buffer: l9 R8 m/ d3 N8 |2 ?6 P% c
Error in opening capture device for channel 0
* N" i7 \$ C- X# ~. ~
) I# V6 c% S- X3 o  e( v
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!, e9 m5 D- M& }% q7 G: j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
12#
发表于 2016-2-16 09:03:56 | 只看该作者
新年快乐!* T0 [( Y& u% y6 c# b: K
在内核include/linux/videodev2.h这个文件里面有定义,可以include这个文件,或者将这几个宏定义负责到你的代码里。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
11#
 楼主| 发表于 2016-2-15 10:43:58 | 只看该作者
teddy 发表于 2016-2-14 17:026 J, o% U* v0 g3 `: |3 O7 F
U-Boot 2012.04.01-00059-g7363edf对应的版本是: v1.6,可以查看创龙提供的uboot-feture-support.xls;
8 B4 o4 F: v0 n
; S- y$ d1 N- _' }  o  x  T: \可 ...
9 v0 l. E6 g% }1 R! [/ ?
teddy,, ~3 k' e8 s3 Y. E& H
新年快乐!
. @( W# g0 {; M我按照您提供的方法已经将摄像头调试清晰了。谢谢您。8 l' Z' {4 Q6 ]$ W
. a& I9 d* q) I5 E5 \/ @) Y/ w8 w
现在我用gcc -o vpif_mmap_loopback_sd vpif_mmap_loopback_sd.c 编译,出现了以下错误:9 \3 J. A+ i$ _' D& A, o

  _) `0 L: p! T% t# avpif_mmap_loopback_sd.c: In function ‘initCapture’:
' M6 U8 h% l* ]) }5 s2 gvpif_mmap_loopback_sd.c:247:36: error: ‘V4L2_STD_BAYER_320’ undeclared (first use in this function)
8 W; l4 E" n0 X  a4 [9 A* d: [vpif_mmap_loopback_sd.c:247:36: note: each undeclared identifier is reported only once for each function it appears in% t1 o1 B' j) s5 i2 Q$ V# s
vpif_mmap_loopback_sd.c:252:36: error: ‘V4L2_STD_BAYER_640’ undeclared (first use in this function)
7 B+ p4 |! Z! {vpif_mmap_loopback_sd.c:257:36: error: ‘V4L2_STD_BAYER_800’ undeclared (first use in this function)
) T" }0 g* }0 I! G* d+ e- Hvpif_mmap_loopback_sd.c:262:36: error: ‘V4L2_STD_BAYER_1024’ undeclared (first use in this function)
- G9 a* Y$ A$ Y5 j  V& v& h/ svpif_mmap_loopback_sd.c:267:36: error: ‘V4L2_STD_BAYER_1280’ undeclared (first use in this function)9 m6 P; D% [+ @4 f7 f* T% G+ m" @
vpif_mmap_loopback_sd.c:272:36: error: ‘V4L2_STD_BAYER_1600’ undeclared (first use in this function)
3 ^9 i4 Y2 J5 i9 svpif_mmap_loopback_sd.c: In function ‘initDisplay’:
2 {% F: W' G% E' @/ J: {- Avpif_mmap_loopback_sd.c:702:48: warning: comparison between pointer and integer
5 l2 M& [3 n- r- C2 x0 I, D/ @  f4 p1 Z/ S
红色字体的变量,我在vpif_mmap_loopback_sd.c中未找到相关定义,在网上也找了一下,也没有找到,请问我在编译的时候是不是要包含一些头文件,如果需要的话,我在哪可以找到这些头文件呢?
; A! b2 k* L( w3 r0 T- X/ ^请您再帮我看一看,谢谢。& p4 f. y& |; U7 Y6 L4 x% X7 l( @7 _' w
回复 支持 反对

使用道具 举报

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;# ]" ?: U& X" ]' R% N

! l& Q9 @; }: O" c可以根据环境的光线强度,修改摄像头的亮度参数:
# R* ~. R' n( j: j4 [root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode   C. X* n( j0 Y' X& Y( B
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode 3 l$ F( S4 J$ ]0 d0 I% ~6 I
Cloudy
3 ^# K0 n/ z: B/ t1 g# ?5 N9 m  D; F3 k  C1 A( @
参数说明:
! R" z4 b' n* W- }4 {% y% \$ f8 mlight mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
1 E6 i+ J3 K. W& G' ]9 `. X2 V
8 h2 c: o( ?, W  N1 g. p如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
5 _( e, J- [7 j% _$ z7 s& v7 x) h
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
9#
 楼主| 发表于 2016-2-1 10:53:30 | 只看该作者
teddy 发表于 2016-2-1 10:12
+ S. x2 l2 Y4 u' ~# A7 x/ `第一步,确认你的u-boot版本是不是v1.5或以上版本;
  I& j/ c. f. ?" O第二步,可以在u-boot里面执行:nand erase 0 20000; ...

: [! k1 o; Z2 Q! u6 }6 ^# P您好,
& \0 ^# r# C6 f/ H我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf
/ W* [" q& o; f& D9 N0 P请问这个是什么版本的?) u, h5 b! b, Q) K+ i; @
5 e) n9 f7 i& f' P
另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
/ n) I" g! V5 @: c我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
  H: n( S1 G+ g" V2 t8 _& A
, ?% i8 [# ]% n- Q# h还有就是想问一下这个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 的?
+ M+ h( r  r- g, v9 {* y5 T ) K( R6 d: W2 c) u
问题有点多,希望大神好人做到底,多教教我,谢谢您!2 A! Q+ g$ W: m9 L. z' }: N; C

1 `$ |/ o. [6 P5 n# `# D% Y
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
, b  ]0 @: K6 w第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;8 T1 ^7 E4 X8 o# U4 z" ~  P9 w2 |6 M
第三步,重启板子,然后再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) R6 M5 ?; Y3 X8 B7 o# p
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...

- r/ A( L, G# r谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
0 Z  i, A5 `9 Qroot@tl:~# cat /proc/cmdline % @( a3 l# j: t6 a
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

  r' q3 Z  P, P5 \( }8 d + a' e; a) j' M# I
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
+ g0 W: U( t* o; F; V, \, U4 G/ k那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!( g+ t* {; S6 Y+ i% q

  u' y" z; m! Q7 p" F0 e& @$ J以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助
2 I! ^( e: t! K9 o! yroot@tl:~# uname -a
! u  `0 d7 b+ F  Z; rLinux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
+ Y7 e! @5 j' g; D
* L1 @8 z: Y+ _# e1 Q
% [) o* N" D8 b0 U, j3 n
' C: d* k/ A9 T6 n& E+ N& h
回复 支持 反对

使用道具 举报

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) X- G# i$ t- ]" U: r$ u$ s/ j3 ]
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...

  [5 \2 ?' n6 _- t9 z; ~3 ~  p# s我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。( M3 c; t5 j$ S/ E/ S
第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2* m. m6 W. Y6 c5 ], m

, S) G+ f5 F3 |( K: Y, d我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 05:42 , Processed in 0.042782 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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