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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,
- X3 X" G6 `4 F, R    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入
* @2 r1 z! H5 n9 D1 |- b"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:
) v" s6 p' y3 m( w1 H- _root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
4 u* P% @2 w1 ~9 wCAMERA capture& k4 m0 K9 c  @
input_device /dev/video06 o" f, D) W6 q9 z$ M0 P" b
Camera-Camera$ k  u, ^" I3 T( }# v  \" P* s
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)6 m9 O& B" V2 A: Y* U
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752). z0 x4 `$ q& a; y6 ?
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
$ `! o$ t) c1 Q; F6 \* v% T) mcapture_buff_info[0].length = 4147200
0 k* s2 G9 O7 V/ K: dcapture_buff_info[0].index = 0+ P/ T% B+ q4 M8 o; f
capture_buff_info[0].start = 0xb6bec000
  [# ^/ k. {3 D: L; M4 lcapture_buff_info[1].length = 4147200
( p8 C  H7 k. G5 Z5 gcapture_buff_info[1].index = 1
# H( D  f' F" o+ ]+ k. Ycapture_buff_info[1].start = 0xb67f7000
9 ?! N! a; b3 z0 ~  l  `* T[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
0 B+ x; t( x3 V* A- ZCannot mmap = 2 buffer3 F7 k% w, q3 G# L
Error in opening capture device for channel 0
- o# j, @3 {- {3 r6 G

1 ?2 _( r7 Y  `( p# J% X我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!7 y7 O3 U6 O5 e+ v
分享到:  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:46' U& P* T" m; j3 R
您的还是默认的bufsize的,再检查一下配置吧
0 R- j+ [8 n7 n7 `" g& A4 p! D  X) ]
3 ]9 E/ ]7 ]# i/ r' R

: Z- X* ^) c. K& w6 S0 i# y看一下,我把环境变量打印出来了,这样配置是对的吗?
! C# ~* w$ x9 e4 I$ D
2 a1 K; N* L( w# r* |3 B/ d# v3 G8 l# A5 R; g& H8 r! E
root@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
$ A* h3 K/ t. J  |CAMERA capture- e* k' \) o' Z
input_device /dev/video0
& k, D% M! X; g+ aCamera-Camera2 ?) L4 R. {: d3 B
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
6 _: k9 ^; V9 M* d. V8 I% bfmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)% p$ f) b) F) G, j5 S) y8 I
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)* n, y- Z0 @& F8 i
capture_buff_info[0].length = 4147200
: V; Z3 ^. M! P  u2 ?  I& Jcapture_buff_info[0].index = 0' C1 X# R+ g* B0 b7 Q+ e3 e" g2 ^5 M
capture_buff_info[0].start = 0xb6b400002 T' p4 T0 Z& v6 s1 S% D
[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0
; x, I  R" B) t: {& I$ |* I+ Z[   74.323663] Backtrace:
: n& }% Y" ~3 L$ v! y# K" E[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)* O, [' t  u1 O) G: o9 Q4 Y) c
[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093
/ w$ c0 G( U1 R[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)
) P4 a& d# A: Q7 h" J( ~; m" @5 r% A( {[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)
) W) \. k! c+ q- e  n% \8 |% f; m[   74.406178]  r3:c71fbd1c r2:00000000& e" Z+ c" B8 w" a( i
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d08 v7 Q+ D0 J+ {: Y: }; |
[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)$ @3 T4 N4 ]: V7 \
[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)
; V5 e8 K0 V! k" U& v8 T; X8 c( |[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)
' U+ f; {6 L; u2 l1 u4 f+ ][   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0# s5 ~" V: g8 Z2 q
[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)- q8 O* s1 |0 U2 j  j6 [: x8 u/ s4 j! s
[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d902 ^- W" e' D4 v& s
[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50): \+ |+ ?' @6 y
[   74.556197]  r5:c7ba8c00 r4:c72b69a0
$ G! G" T9 y0 ^' t7 ~6 P[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)
' o% ], y# s9 j' t6 P[   74.587055]  r5:c71fe580 r4:c79c2e00" u3 A  v2 J! a) j5 ]" t& s7 C
[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)% m; h8 n0 p# ]* U6 D& A
[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584& ^& @' t& Y& Z7 r" s# L, X
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318). T+ D* T$ Y) A: M* U  p) p
[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)  y! A5 j; K, @0 F8 `! E
[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)( R/ E6 P6 I+ a
[   74.688020] Mem-info:
+ u3 j! |3 K* O& Q. s$ }" Z[   74.690383] DMA per-cpu:, U* f! O; E. }. E$ e' }% }. L9 ?
[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17, i* P( ~" E, ]. m9 I# J& ^
[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0  V% l. k8 l/ D/ j& |
[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24% w. P2 z5 L) C5 L% x( m
[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0
! U- M$ r+ r7 m# Z* T- V! }[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739* K6 N( m4 \, U% t$ P2 L
[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0
' `# ?( k! x4 E0 |[   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
6 Q, g1 Q2 M7 t3 D' A' `& j[   74.846179] lowmem_reserve[]: 0 0 0. v( @& ^9 n0 e
[   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
# D# e1 a% I' n7 [' b[   74.871095] 5393 total pagecache pages- \6 `3 l9 m' o8 g
[   74.874878] 0 pages in swap cache1 d$ k3 x  a9 m" L& s- h
[   74.896156] Swap cache stats: add 0, delete 0, find 0/0/ M% ~" y' s1 p7 S9 j. t: H
[   74.901444] Free swap  = 0kB
# O1 P* ~3 V% b[   74.904346] Total swap = 0kB+ x5 F3 U" a: l
[   74.946799] 49152 pages of RAM
9 |! d9 X; u: Q5 [/ `[   74.949901] 25326 free pages1 G/ z9 z/ a) {8 q
[   74.952803] 3366 reserved pages
% Q$ l& c5 F/ F) u0 m[   74.966186] 2124 slab pages
. ?6 n! x4 k5 I) H5 ][   74.969063] 7387 pages shared
0 r, `6 P7 d4 Z[   74.972058] 0 pages swap cached
0 S+ s9 r) r- J' P& a[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed' n1 M4 s, O# q2 l
Cannot mmap = 1 buffer
; R; B4 @3 t0 T' u1 [+ }+ OError in opening capture device for channel 0

2 m. }; \4 R9 O$ y1 d+ C ) l+ x- i% k! S1 E; I: ?$ A* s

. B) z' W( L! a% ~7 u- l8 `3 d这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。( X0 c1 j- [4 P8 E7 P' a4 `

本帖子中包含更多资源

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

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
3 w% R# l/ X8 g# E还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
# F# A% s& V5 `( P8 r
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。$ w% w0 p3 u4 Q1 d5 B8 s
第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
4 J! F* \/ L8 u* `8 B5 `- e! S* O; W; I* \4 u+ ^  V
我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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:16% j& n6 Y5 h& y: v! p
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...

3 q6 w; G# }0 ~0 R谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
3 Q* K' `% D8 T7 t2 V  M+ ^root@tl:~# cat /proc/cmdline - u! E8 e$ V' g+ d3 f
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
4 U4 A# E/ S! w" G# m
# j3 F$ g$ c& h& M
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?; ~; l8 Z( z+ A6 Q7 Y- [
那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
6 {4 I5 u6 k4 y; {3 ^9 q3 j 3 t/ C) x7 l6 `' Q/ L) \
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助
: c8 U  f' H! F8 Proot@tl:~# uname -a& P1 h3 {  K2 q- M
Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux

; g; m6 a! p6 M7 J* q- h( N 9 A, ~3 d5 P  _$ X$ x

4 y/ q) t# Y/ Y1 R; R3 y
  }+ ]  u) b4 Y# m
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
9 M5 A! O& s7 x" }3 o: C: {* o/ P第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;! @' i) [$ B( L; \* P9 z( a
第三步,重启板子,然后再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& W4 R* e% I5 N
第一步,确认你的u-boot版本是不是v1.5或以上版本;) N) A' Y! E2 e% r  z+ ^
第二步,可以在u-boot里面执行:nand erase 0 20000; ...
* a& W% \# f8 s9 e
您好,
! G; V! S2 h  G* b: \0 ?我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf; d( c0 j  S$ T% c: T/ b2 }  U! a7 ^
请问这个是什么版本的?
+ ]5 Y5 z. V; a* I+ }
/ J! C4 P! ^: o9 s$ \0 e1 f另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
5 X' `% T4 @( D9 d我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
1 N6 n" ~7 a- N4 y, M 3 s& K1 e* s3 z
还有就是想问一下这个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 S# f, V  G  Z, u) I4 ~. t

% `  O7 V3 y+ q0 O问题有点多,希望大神好人做到底,多教教我,谢谢您!
4 b8 ~5 d3 v7 e  d7 [/ o3 F8 Y
( b+ f9 H# C9 ~9 `
回复 支持 反对

使用道具 举报

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;3 Y3 ^8 O0 D9 i% f$ h

& N' i' A. b; b* P& T+ C可以根据环境的光线强度,修改摄像头的亮度参数: 3 U! C! F0 T8 K" k
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode 9 F! I* K3 J' n0 l
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode ( Y& H+ K7 M$ s
Cloudy ) Y) {5 M9 E) u- u

/ v1 w3 T7 a# D" `3 C参数说明:
5 j% J1 D% M# N* h4 ]light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
/ O# S6 f% t- c
8 k# F+ i3 E; _; M+ E8 K$ l如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
4 s, W' ]" ^5 ?! U  k0 j- a: b1 p( Z- m1 U1 p, {8 M
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 13:48 , Processed in 0.054785 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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