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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,
# [- p$ d8 r) `9 Q1 n0 y    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入
# Z0 y1 l" |1 X3 }/ R"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:* q3 Q6 g, e1 T; Z4 x/ k$ P
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 23 K: w; z3 p, N) v  y; l
CAMERA capture! c: _  y: i7 j
input_device /dev/video01 O. i, ~9 c) ~8 l8 z. e
Camera-Camera
9 r# t# K8 R0 C$ X/ i3 rfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000), y; R  K1 G& J( |
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
/ X1 b$ l) }' ofmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
3 J( Z7 z! @+ G9 L2 R2 i( ecapture_buff_info[0].length = 4147200$ i4 T, L. `' |* K, T; l
capture_buff_info[0].index = 0
! F! S  D$ [! c, Jcapture_buff_info[0].start = 0xb6bec0002 G9 r" n% @+ ~% b
capture_buff_info[1].length = 4147200( N" U+ f3 X8 _% c: v1 d" @0 x
capture_buff_info[1].index = 1
8 [! M3 A4 K' d; Z8 A( R0 ^1 m, x  Ocapture_buff_info[1].start = 0xb67f70007 C" x3 p+ D8 a+ W+ c% q) W3 p
[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
5 I7 q! f+ k% Z$ u2 bCannot mmap = 2 buffer
- m3 b) M0 n  S4 E9 PError in opening capture device for channel 0
7 [3 h+ I. q- K; |; c, Y: N

& V3 {7 n/ |$ \/ |1 {) D# s: ]我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!/ Q2 z+ z; {# W2 R! |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
沙发
发表于 2016-1-30 10:46:25 | 只看该作者
您的还是默认的bufsize的,再检查一下配置吧
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
板凳
 楼主| 发表于 2016-1-30 11:15:26 | 只看该作者
human 发表于 2016-1-30 10:469 s5 j/ G8 B( P, B! ]" J7 H, a
您的还是默认的bufsize的,再检查一下配置吧

! q% K; k2 F) I& J+ ^; S) N8 _( C4 i0 P2 C# V7 q) o

6 r6 [4 X2 `2 u) t( p+ T看一下,我把环境变量打印出来了,这样配置是对的吗?6 G' |  P) k; ~5 _1 L2 e

: `! T  c0 O3 p) A8 Z5 G
+ d+ ~/ u9 k: D! D3 {' j1 k- Nroot@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 23 @1 {+ x* r  q2 l, I. z
CAMERA capture
/ Z( b4 y- Z$ oinput_device /dev/video0
& G" ]5 Y3 R6 Z0 q' {. t. FCamera-Camera2 p$ W2 E' ^0 H9 Y
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)% q$ Y" I+ t3 ~3 @
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752), I! X5 r% u1 n; G) s
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
. h0 _* O+ z/ \! c( w( `capture_buff_info[0].length = 41472005 b- T7 H& z$ c+ r3 @2 k
capture_buff_info[0].index = 0
( l- k; A& m4 Rcapture_buff_info[0].start = 0xb6b40000
' d8 H' R+ J/ x[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0! P4 w) F. c5 ]
[   74.323663] Backtrace: 2 y) T" E) `0 b& E" \" P
[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)
1 z9 q( p. T& s* |7 y# k8 M[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093
' _* ^$ G6 ^% q" m, ^0 B[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)
. u$ E; ]* T! t0 ^4 ~[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)
3 A4 D% e# N" ]) V& n8 R7 E" {[   74.406178]  r3:c71fbd1c r2:000000004 K4 }5 x1 v9 E2 M
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0( u8 ?) E" n2 y' }2 l
[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)( N3 C8 i2 O" T7 G$ c& `/ c4 @
[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)
- x3 {1 ^! P$ a! T% e9 n& ?3 L6 G[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)
4 C% r6 b& v3 k[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a07 d4 X. b4 V$ i- Y5 d, ]; z4 ]
[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)3 z1 L3 ^$ `' I
[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90
* ]& L+ }9 [( o7 O0 R. L9 m7 t[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)
$ |, C' z  P0 Q/ g$ R[   74.556197]  r5:c7ba8c00 r4:c72b69a0% R" ^! L/ K# h$ B3 {  ^
[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)5 j6 i2 I3 i$ v) N! _
[   74.587055]  r5:c71fe580 r4:c79c2e00
! Q$ R* n5 h; s. y6 S4 `[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0), z  Y& o' n4 G* O' `1 g
[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584
6 J- w9 Y% K% [( ?* c9 D+ U9 p$ ~% E[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)* G) Z' r7 ^1 J  _/ K, P
[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)
0 G" I# [6 c+ @) a% s[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)
2 M1 {! C! k; n1 ^/ J) H7 H[   74.688020] Mem-info:) t4 g; g3 W+ y
[   74.690383] DMA per-cpu:
7 d9 }* e' ]: [% K8 k, G[   74.692955] CPU    0: hi:   18, btch:   3 usd:  179 w* z1 W. ]) U
[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0
8 L2 z* N, ?% e! m[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24; t  j2 o: i( ?
[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0
: M, c1 {4 H1 B[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:7396 |+ `6 `: U. p2 C0 ]2 K1 v% p
[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0
# B1 }: [7 Z3 b# v1 Q[   74.766255] DMA free:33856kB min:1244kB low:1552kB high:1864kB active_anon:12004kB inactive_anon:188kB active_file:10736kB inactive_file:21200kB unevictable:0kB isolated(anon):0kB isolated(file):20kB present:97280kB mlocked:0kB dirty:268kB writeback:0kB mapped:8372kB shmem:568kB slab_reclaimable:2020kB slab_unreclaimable:2956kB kernel_stack:576kB pagetables:572kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no( _9 N6 Y5 c  T6 V# f: H/ f; k
[   74.846179] lowmem_reserve[]: 0 0 04 y/ W1 \( W  }" u, d6 T& h: U7 l
[   74.849759] DMA: 760*4kB 461*8kB 239*16kB 158*32kB 92*64kB 43*128kB 21*256kB 6*512kB 7*1024kB 0*2048kB 0*4096kB = 42616kB  @% x9 Q5 j9 _1 S1 K! ~
[   74.871095] 5393 total pagecache pages
0 M- J* S; N& m/ F[   74.874878] 0 pages in swap cache; J" B. }8 |: e; T
[   74.896156] Swap cache stats: add 0, delete 0, find 0/05 D9 k! y1 O3 l" K. U& V5 w5 [4 l
[   74.901444] Free swap  = 0kB' X! j5 _0 a( r
[   74.904346] Total swap = 0kB( g" I: y+ \+ p. F
[   74.946799] 49152 pages of RAM
  q5 x6 h# E+ F" g[   74.949901] 25326 free pages( N* H0 N( y6 p* k3 ]; ]  I( q
[   74.952803] 3366 reserved pages1 s0 G) u* w3 m$ h' Y4 F* N
[   74.966186] 2124 slab pages. e( Q% v0 p* j; F7 W3 J% A
[   74.969063] 7387 pages shared
+ ~/ M) G" U' h6 Q; h1 \[   74.972058] 0 pages swap cached3 f) N( z9 q) O, C
[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed# |, ^8 @7 X& i
Cannot mmap = 1 buffer! b* Y, z4 T$ k% x- @
Error in opening capture device for channel 0
+ G& N$ h9 Q, q. ]. _

0 E9 ~; N: `/ B- V; U
( ~: b5 }4 o8 S! C; J9 m' t: ~  P这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。; q- s; q$ y  P5 ^* L: A

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
5#
 楼主| 发表于 2016-1-30 11:40:19 | 只看该作者
human 发表于 2016-1-30 11:32- Q" K" c2 D  t7 I
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
& g( i  @& ~# V' P; R  e; _
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
5 R/ X) T  H" h: D/ q; C" ~第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 28 e8 e- F! Z1 T% s! H

% k8 R5 q( [9 E3 b' W; X# C: C我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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
7#
 楼主| 发表于 2016-2-1 08:46:36 | 只看该作者
teddy 发表于 2016-1-31 22:163 ?% i6 _; o0 d- t5 K# {
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
$ A% H: s4 P  \! q$ ?
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
  Z* P+ \/ Z, U% [$ Froot@tl:~# cat /proc/cmdline 5 X& K+ H7 m* t- J5 G
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

: G% W8 B" L) F1 y
7 l, m% s! [' u$ o我是按照手册上设置的环境变量,为什么没有成功传递进去呢?; L" I: K! K! {0 Y3 D
那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
, L8 N3 |7 Z' O# M6 \$ j0 O $ I& j) w! K5 k5 E) Q
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助* r: d- `5 y' W, ?9 t: o( K
root@tl:~# uname -a
' s! |$ e4 x& o- U7 b9 ALinux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
' p/ y; l8 j9 h" b# U. Z

* P* v7 j  a3 i4 f 7 h. M- J2 y/ i  }* K# h$ V# e
, B; w; m/ R2 t! S' s( T( [) c
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;1 v4 [7 g! j* j1 m' F$ m9 n
第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;
0 j! x& P" N: v; O% Z4 _( ]第三步,重启板子,然后再setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
回复 支持 反对

使用道具 举报

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
9#
 楼主| 发表于 2016-2-1 10:53:30 | 只看该作者
teddy 发表于 2016-2-1 10:12
/ p) M+ f6 E5 ~$ H( j6 C第一步,确认你的u-boot版本是不是v1.5或以上版本;: n) v6 j) Z9 y0 M5 X
第二步,可以在u-boot里面执行:nand erase 0 20000; ...

7 f8 W4 ]: _% i您好,8 u$ [4 Z) k$ ~; s, g9 B
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf# J! d5 y) k6 w3 R! f* @* p( E
请问这个是什么版本的?% _$ d/ r" j2 c; M3 e  K* a) @
9 j8 E4 {; x& ?$ C' h: B
另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
7 l0 `* F3 S/ y, Q5 c4 P2 g我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
# d, g0 b9 C1 j; ?4 Y9 y
' [* a* _6 n0 B1 {还有就是想问一下这个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 的?+ H) d( P/ d$ K+ d
+ b' B" P3 ?& }
问题有点多,希望大神好人做到底,多教教我,谢谢您!5 H' j) Y: e0 B" \7 D' E
* n" i. w/ M7 m
回复 支持 反对

使用道具 举报

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;2 ]2 B9 b, d" E3 B& @% H

0 w' v* d" ]2 i可以根据环境的光线强度,修改摄像头的亮度参数: ) T% ~7 e$ b& Q! V
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode . t7 x, Z8 h7 A' j9 j% X
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode
* y9 I( g1 P: ~9 B) e* z+ jCloudy . x7 _6 W. d/ M! A4 r/ D

% |7 E* {, l% a参数说明: * S0 Z1 E; ]$ `/ I4 {& ?
light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home . U3 D- G0 K2 v+ T' ]

% I8 ?: h# e; K- w如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
- X* j: I# u' V. I3 @+ [4 o% V3 |8 Y- ~) h4 U
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 03:53 , Processed in 0.046675 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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