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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,/ Z0 n5 m: |3 x% W- `2 p
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入+ ]! f: s* f5 b( P
"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:
: K9 B9 e4 {* rroot@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 27 J$ k  `. V( P. l9 u, ^2 N# i
CAMERA capture
) e3 X+ G0 ?8 c4 Cinput_device /dev/video0) ^7 z7 T, _. V+ y6 K& C5 u9 `% u) B
Camera-Camera
! f- a+ r( c/ D5 c) Xfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000), R& K# U$ ?2 O( j# r
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)3 h1 _0 j& |5 T% t3 A
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
' u+ ]8 R' m9 H' d1 ~% n5 j* ncapture_buff_info[0].length = 41472002 ~4 g! U" j9 H: _0 y) ]
capture_buff_info[0].index = 01 y% k! I; J" N
capture_buff_info[0].start = 0xb6bec000
* @9 w0 B1 T, d' ecapture_buff_info[1].length = 41472007 ~) ?0 {% V1 A2 @  O( d
capture_buff_info[1].index = 1
) H* Z4 Z( V2 O# Icapture_buff_info[1].start = 0xb67f7000" F& J7 m1 A- F& Z
[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed3 \7 u: ?8 D1 n5 V( d& S8 O
Cannot mmap = 2 buffer* |/ T) g' w: c2 d: \) j  m
Error in opening capture device for channel 0

( d0 H1 Z! M1 L! a; D+ V2 Q3 J/ f 3 H) k' R) P9 M- n
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!
0 ?1 Z, X$ L4 p) q
分享到:  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
: i) s. `4 M. t6 G2 }, H' h您的还是默认的bufsize的,再检查一下配置吧
3 X3 u# q% O% n# E2 u3 u$ V' d( L

5 [2 n4 ?; t4 Y5 E2 O- E8 E- c, U) c+ k7 l* y5 d5 z1 p. V
看一下,我把环境变量打印出来了,这样配置是对的吗?
* W5 ~: [1 R6 W: d* j2 H. u% d9 q7 i, Y' V) f8 x9 c0 Z
& W+ ?& _. w6 N4 S. R6 i, i: r% |2 k2 U  _
root@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 25 R: J( X, G0 A8 B5 U. Z! Z' {
CAMERA capture
1 F8 o2 \5 S7 R. e. binput_device /dev/video0) A1 I7 C  H/ A" O5 C- P  y
Camera-Camera2 n; d5 s- L# s: t
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)2 ]4 n# Q) z9 u5 ~) n
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)6 L$ r: V5 `' c4 \" _
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
2 {; X2 U$ W  s( k# P4 Dcapture_buff_info[0].length = 4147200% T: w5 H- D: r4 d/ m
capture_buff_info[0].index = 0+ J) k) H- `: E. O# }' ?
capture_buff_info[0].start = 0xb6b40000: V/ s; G1 q% r
[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0% c5 ^4 f9 |* o, {4 B3 S
[   74.323663] Backtrace: 9 z, g  r, ~' R, @
[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)! a7 a2 Q/ ^& r8 i
[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093$ R( c- E4 V6 g
[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)) i: Q0 }0 @9 d( B- q: D5 c; X
[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)9 W7 X3 a7 o* I6 G/ m( X
[   74.406178]  r3:c71fbd1c r2:00000000# B4 I, T" v) |$ r6 f
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d09 F! h5 k7 W0 K3 {; ^! H
[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)
  w6 Q3 b  k+ E$ u6 _# g' k2 \  S[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)
9 p5 I' ~1 t) f/ ?1 E[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)
1 P4 @% p0 A4 ~5 n/ ~: R; P$ d+ e$ c' W[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0
% M8 v- i3 w+ C# h[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)
& r9 D* N5 R) t6 e" S1 N/ B[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d903 ^% Z$ _1 w8 u1 T1 T% g
[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)
' a! v" h: [* `) q& h. |, @7 |/ d[   74.556197]  r5:c7ba8c00 r4:c72b69a0. d5 F4 @9 O/ o0 n! D1 h8 P$ X
[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)
" O% f% m) D: [[   74.587055]  r5:c71fe580 r4:c79c2e00
: I# w1 [2 [5 d[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)
3 S3 X6 }1 A/ Q* _6 h[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c55844 b/ n! p8 d  _2 k6 `6 L8 V' `: @
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)5 A( ~8 Z8 X  c8 t, X1 K6 x
[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)
' C8 o' `  B% w% d- K7 k[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)" }0 E" o; I& y7 a% A( f
[   74.688020] Mem-info:
9 n& Q3 u! ?3 Z$ }/ E[   74.690383] DMA per-cpu:. U  f, m) `; m# A
[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17
! y. T4 y( l9 N% _& ]: ~- z[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:09 c; s  X$ Y, N: E& y' W
[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24
/ O/ x$ Y, m% o( n1 ~# s8 a0 I; R[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0- Q- g: ?5 F/ {7 k! F9 e
[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739
$ l! o/ A* d8 h9 ][   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0
* ]# @9 N- ~1 ][   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
# A9 K% B$ z! r0 q[   74.846179] lowmem_reserve[]: 0 0 0
# L/ `' ~1 K! y, y[   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
) e, K8 ^% d2 Z( n" |% @4 ~& }- Z[   74.871095] 5393 total pagecache pages- v0 i" S$ I) F% W: S
[   74.874878] 0 pages in swap cache
2 ~, W4 W" x4 V& u9 o4 T[   74.896156] Swap cache stats: add 0, delete 0, find 0/0! C; f7 c1 S1 k7 p: Q
[   74.901444] Free swap  = 0kB' e: G& p" u% ]- B) Y
[   74.904346] Total swap = 0kB
5 |  t! _7 p3 |% r8 I! ~) S[   74.946799] 49152 pages of RAM* R. V* V  X/ Y  E: ~: ~: b- X
[   74.949901] 25326 free pages
; v) z! }9 @$ Q. L( d[   74.952803] 3366 reserved pages
- Z. _9 B: U9 T8 P2 s, I- `, s* w! ?[   74.966186] 2124 slab pages
- q$ \$ v, R6 |% O# m6 v[   74.969063] 7387 pages shared
- a5 N' q; u' w- |, K, _3 q% Q[   74.972058] 0 pages swap cached
7 g( c+ W6 H6 k/ v" U$ x[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
( }* I6 J" v1 q7 Q% UCannot mmap = 1 buffer8 p  i+ X& T$ i0 s0 q8 ~
Error in opening capture device for channel 0

+ z! h, ^, L, x/ \# D 2 n* e; }3 i, h+ N+ A

' T' [: r" q' A( t这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。
( v) e- j6 n# {3 U

本帖子中包含更多资源

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

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
* v" e- k% T; x0 F" w还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
1 J1 z) |+ i/ `; F# u
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
! k' l, Z5 S- e, [第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
6 }* P6 I" \; z- n6 I9 |$ T' M$ f& i2 y
我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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
! l# o* {8 i3 [: V" P1 E+ @在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
0 A! J3 z, Y; M8 n) P
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
( Y" V: q7 ?# {5 H! |8 J/ ?/ yroot@tl:~# cat /proc/cmdline
+ ?! A& A- r5 o6 y, Tmem=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

5 o1 X- K5 {; S/ o. ]. Z ! ^  a# e& b! d. @" W5 T4 X
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
( b* J$ r) K0 J& p/ d, n- |8 v那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!% ^. M2 d# A# W$ k
" i  r# L( W- o5 T
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助
, M' L2 G8 \  E& Z1 M/ B" kroot@tl:~# uname -a
9 L- O7 p. Z8 r! J  {" jLinux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux

4 Z' U- c- S, r, O' z
6 ^" C+ C; b' b# P  t+ ~) | & r  R; k& b0 h% M

1 m3 s! S2 |6 v9 L8 q  d* A4 w
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
3 Q' r, M1 B. M0 F第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;
4 C4 a5 c, F9 W第三步,重启板子,然后再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:120 D  p$ e# b8 o7 B
第一步,确认你的u-boot版本是不是v1.5或以上版本;
4 n) M3 O7 ^2 K9 O5 W第二步,可以在u-boot里面执行:nand erase 0 20000; ...

8 B  W7 {7 t) y8 e1 W您好,9 h2 V; C0 X) x. I
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf( c  P! w3 O' Y
请问这个是什么版本的?1 U' Q  g* B6 E
* \3 a; t0 H- w2 o+ G' X4 d% `& C
另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
2 i  O1 Y2 ?$ I我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
2 \9 P0 q$ x* L. m. L
2 e9 _/ y" H' @- x还有就是想问一下这个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 的?
  S" s/ S2 Q: _' N  A+ B
' y8 D; @( c, b& o! k问题有点多,希望大神好人做到底,多教教我,谢谢您!( E4 v/ A& @$ Z9 o8 C
+ N* ]5 }0 j3 U% i9 p0 k$ U# p2 x
回复 支持 反对

使用道具 举报

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 `4 {2 z7 L; h% s) |- m! |

# ?7 u# r9 u) {8 \4 L可以根据环境的光线强度,修改摄像头的亮度参数:
/ M. h- ^! O6 ^4 e" zroot@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode / ?) z6 f/ R2 I) h2 o
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode 3 q8 h. Q) e5 {* S7 i  q
Cloudy 1 r3 W' f. V1 p. @
, g( {6 M8 U! G0 w# x& W
参数说明: ( }( m2 m3 B( @" K; ^- \1 R0 D
light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
1 N- B! X2 |) X$ n! ], ]' M! n
( A9 d7 m0 |$ i4 C( r6 a如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
6 Z8 J; R/ r* ?, x& e# M: W7 ~/ M6 [5 P& t( ]* Z3 D& \
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-2 19:40 , Processed in 0.046071 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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