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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位工程师,
  w6 d* d. J' k. q: O& t    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入' H- C! `3 h+ A! r
"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:0 V9 @, }0 t( M( p/ _0 }
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
( z3 X$ v5 C; Z7 `' k5 u: ^1 kCAMERA capture2 E, D/ {7 r% l6 d+ y
input_device /dev/video0
6 w" |. }" P6 aCamera-Camera
2 w- z- B! y# G. m) K; d" m2 Ffmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)- K# ?0 S' i  `' y. u) i3 F$ n- o
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
( ?; f$ X* b, {5 j% [* R# H' P, efmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
! M: F) M; P! D/ b% v# D* V) Jcapture_buff_info[0].length = 4147200
9 k) ]. u" p) J; Ocapture_buff_info[0].index = 01 ~2 C' ~( t8 G) K! g9 l
capture_buff_info[0].start = 0xb6bec000
5 k/ j7 y. v" ucapture_buff_info[1].length = 4147200
0 y( k9 j7 y  i7 a- Xcapture_buff_info[1].index = 1+ `9 L3 I' s: ]3 w+ N8 z
capture_buff_info[1].start = 0xb67f7000
) Q9 q, ?4 e  C$ H1 ?/ U[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
5 I  e; X& F  VCannot mmap = 2 buffer% T* O! Y9 E! q/ y: p1 p
Error in opening capture device for channel 0
# N" \% N0 }+ X
* w; K* B' T  e" z* x: q% ~
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!! M! l! _# ]3 k/ `9 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
11#
 楼主| 发表于 2016-2-15 10:43:58 | 只看该作者
teddy 发表于 2016-2-14 17:02
6 P) z  Y1 p* XU-Boot 2012.04.01-00059-g7363edf对应的版本是: v1.6,可以查看创龙提供的uboot-feture-support.xls;  \2 m7 J' R7 u

0 d+ U% K3 \3 J9 s可 ...

( X- X  x6 }+ K4 j( V9 hteddy,# G% Z! h4 w9 ?/ v, g. |) R
新年快乐!
5 i9 l& i! a% u1 _# q我按照您提供的方法已经将摄像头调试清晰了。谢谢您。' @2 k3 K% k5 f* W- M; d
  \9 R; i6 F* r* i/ q/ Z4 J5 B
现在我用gcc -o vpif_mmap_loopback_sd vpif_mmap_loopback_sd.c 编译,出现了以下错误:0 K$ u. {4 r- @, h5 X# V( _
6 T6 H4 j5 N3 p- o) L1 L
vpif_mmap_loopback_sd.c: In function ‘initCapture’:
1 `, x, I8 J0 H! l9 x+ |2 I1 t  o* `vpif_mmap_loopback_sd.c:247:36: error: ‘V4L2_STD_BAYER_320’ undeclared (first use in this function)2 [( o! \& b6 [
vpif_mmap_loopback_sd.c:247:36: note: each undeclared identifier is reported only once for each function it appears in
6 E, }- g. C- i' Tvpif_mmap_loopback_sd.c:252:36: error: ‘V4L2_STD_BAYER_640’ undeclared (first use in this function). e1 s/ r& S" W( X7 [
vpif_mmap_loopback_sd.c:257:36: error: ‘V4L2_STD_BAYER_800’ undeclared (first use in this function)
5 B/ A5 t0 C/ Nvpif_mmap_loopback_sd.c:262:36: error: ‘V4L2_STD_BAYER_1024’ undeclared (first use in this function)
/ Z% A, i3 y- J6 Yvpif_mmap_loopback_sd.c:267:36: error: ‘V4L2_STD_BAYER_1280’ undeclared (first use in this function)
6 M- ^; f8 y9 H. V; @vpif_mmap_loopback_sd.c:272:36: error: ‘V4L2_STD_BAYER_1600’ undeclared (first use in this function). I  S7 H% n/ J: M* l: S2 k5 |% n% e
vpif_mmap_loopback_sd.c: In function ‘initDisplay’:
- D. `! U- w& J# H. |. [  mvpif_mmap_loopback_sd.c:702:48: warning: comparison between pointer and integer
* R" o( O  d5 E. R- K6 x% c
+ ]/ H1 R' ?, U2 \( m3 q0 d红色字体的变量,我在vpif_mmap_loopback_sd.c中未找到相关定义,在网上也找了一下,也没有找到,请问我在编译的时候是不是要包含一些头文件,如果需要的话,我在哪可以找到这些头文件呢?
! c8 r* B3 I  E' M$ _请您再帮我看一看,谢谢。3 w% B% N" N3 _" Z+ B
回复 支持 反对

使用道具 举报

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;
: t7 C4 [5 I  ?) n& Y- t! g! {0 i  ~2 C
可以根据环境的光线强度,修改摄像头的亮度参数: ! j+ v- O! s, y- I( v
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode 4 w8 @9 K, b- E) U
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode 8 W+ {, o# F& D0 r
Cloudy * K5 J. ]9 J1 r: V2 K: z( Y
2 N/ F' Q) M5 [' N; l
参数说明: , g& Q* n5 f  q4 E. g
light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
4 S# o2 F2 @! a! i  f6 v
7 l: ^7 l: ]6 o& b; c0 x5 c如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
8 |4 J$ p: h; J  P$ ^) _
9 m+ \: S0 n5 u/ U0 ]) K8 z% n0 O5 i$ qvpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
9#
 楼主| 发表于 2016-2-1 10:53:30 | 只看该作者
teddy 发表于 2016-2-1 10:12
; M4 N, F/ ^5 i9 x第一步,确认你的u-boot版本是不是v1.5或以上版本;3 b  K/ x0 R6 S; b1 J, s
第二步,可以在u-boot里面执行:nand erase 0 20000; ...

2 z1 C% T4 B4 e# e; A# @/ m4 [" w您好,2 D. h  {$ M* n/ h* E1 w
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf, G$ b$ \$ E1 e  \9 B
请问这个是什么版本的?5 M( J4 a3 a0 p; |

. m9 M3 J" z* R) _另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
, U! Q6 ?; }8 x$ Q# l/ F我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?+ ~7 l( [& i  s

- ^* F+ c' H- K1 w* [还有就是想问一下这个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 的?6 s3 V+ ^! D, }; w( o: b
* D/ Y" s; z0 R9 [
问题有点多,希望大神好人做到底,多教教我,谢谢您!5 S/ H! Z; G  m# o- R4 m
+ r2 y$ r$ a1 ^: l4 g' I/ \( \/ R$ u5 O
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
/ ^+ u9 ~3 m4 `. e& M+ ^6 K& y第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;
; B8 _5 \, B9 J第三步,重启板子,然后再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
* i* [+ ?. C7 d& ?( P. v5 ^# p# ?% m在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
* O% q, `& o3 h$ _
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:8 f% M" E, r6 x7 P! m( |
root@tl:~# cat /proc/cmdline
  U; e2 g, `* C4 d3 A* [6 r3 qmem=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
  k1 f' ]/ T; F' }
, J' _& A1 B( o( R# v
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
& r; B' K* z; O! p6 T那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!1 @5 r" ^+ f! g. [& W4 @$ C
, K& O3 ^0 t+ s8 C
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助+ b% o! i: v3 e1 V8 a* H1 G, x9 A, C
root@tl:~# uname -a
/ }* N2 r( W6 KLinux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
7 p3 S6 S) B- u* }

2 n) t' U  Q. o2 v$ i2 K 2 S2 Z  B& P1 }7 c/ _

- [/ J7 T& _3 e
回复 支持 反对

使用道具 举报

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:324 |& I7 [3 L) f9 V. S6 j1 S
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
; A: V+ J/ }- T- L1 t: G
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
% x. p$ y# E/ a. q) @" B第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
" W! p' O! i( W: \- n% y( m8 K6 l6 M
我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 11:46 , Processed in 0.049220 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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