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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,1 T6 [# z' V* Q1 T
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入
# Z, @6 @1 T3 a' F; P"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:
" f: n" }& }$ q: r2 ~1 ]0 v6 hroot@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
. M+ Q0 W1 k* ]9 n1 z4 I' d" lCAMERA capture
" U3 A6 [9 F& e% s' @+ w! l5 @7 cinput_device /dev/video0
4 `9 _1 T0 v7 h' }Camera-Camera' h( F/ R2 c9 B7 u3 a
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
  w1 O0 s) H) N  _5 ~fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)" l( w2 u4 y! @0 L- z
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
4 O6 g4 l0 Y6 C3 A8 Tcapture_buff_info[0].length = 4147200
. [2 |2 w! ?: S- j' {, v4 pcapture_buff_info[0].index = 09 ]+ ]- p9 t& l2 u
capture_buff_info[0].start = 0xb6bec000+ ?% `  o2 [& T$ p) j8 t
capture_buff_info[1].length = 4147200
% B9 S) h: C" V2 Ocapture_buff_info[1].index = 1
/ F) H6 C- |( Ecapture_buff_info[1].start = 0xb67f7000- P# h- P; @5 x# e2 w& i) I* F
[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
0 H$ e' E$ }. GCannot mmap = 2 buffer6 U. q9 a' Q* O4 l# F. N
Error in opening capture device for channel 0

4 |9 ]% {* y' m$ X0 X! b4 P - m# ~. e* \' Y% U7 t. F( m
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!1 b6 L" d4 f8 r9 m# ~9 H
分享到:  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! J0 m( @( X+ g
您的还是默认的bufsize的,再检查一下配置吧

. k% z/ `2 @; c& m9 t
9 D9 j  }& U5 N. L$ r  ]2 j) v$ I$ W- B9 q
看一下,我把环境变量打印出来了,这样配置是对的吗?
" X4 w) H; E0 r
6 U8 T4 V( X* O$ h+ j1 ^3 y9 n7 V- v. \! a4 d, H
root@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
9 Y. R  |1 ^7 e/ M% aCAMERA capture+ f. {  o% ?- ]2 ~1 j6 n4 Z6 [
input_device /dev/video0
% D4 E1 c9 s% E5 @5 u' f1 d# E) BCamera-Camera
! J' a& ?5 ]& \( Lfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
: ]7 N3 j3 Z+ l. n' A. Tfmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)3 M( @1 q4 x- ]6 `+ T( V& c
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)% d; {* ?' K9 {8 E" K
capture_buff_info[0].length = 4147200/ ]3 P2 f. S( F3 ^" C: s& S: U
capture_buff_info[0].index = 0
1 T" i; |' S- d- ucapture_buff_info[0].start = 0xb6b40000
" S& _6 k6 H- R/ v1 H( F' w[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0
4 x' E+ l' O2 e8 t[   74.323663] Backtrace: - l2 |( g3 L0 f! l6 o. b; @, q
[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)) L, o) A: _( Z
[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093! f/ n& N* P0 ^8 ^
[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)1 [! o" \6 [. T! j7 p6 [2 K
[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8), y5 X" S. z8 N/ x# d% N8 g
[   74.406178]  r3:c71fbd1c r2:000000006 L, u% @" g8 `; ^# n" P
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0
% Q  m& F0 f+ M' z[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)
. p- X* _) C. _9 j. n/ q[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)6 K( _4 P8 m, b) I2 X  K7 j3 j
[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)- ^  }+ }3 R" }
[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0
! I& J2 F6 q9 u, ?; i' T' n( H0 X" R[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)7 g! z0 H8 I  x# T5 D
[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d906 u4 T/ r6 H7 `  t6 x
[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)1 h" Z" X; ^1 j# s9 G, q
[   74.556197]  r5:c7ba8c00 r4:c72b69a0
$ I6 g$ z( i4 \* N[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)' p5 r0 Q1 W* Q! B: q
[   74.587055]  r5:c71fe580 r4:c79c2e003 L* B* g# I8 u
[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)& l) @+ d7 q9 }% L( [" L5 Q
[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584+ I: ^) s4 s7 w5 v7 V6 Z) G
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)
0 }; b/ h8 b1 f; E[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)! ]8 A- y& W% p, ^6 x$ {7 K4 v
[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)" C, F5 V6 `; M5 W# E" W
[   74.688020] Mem-info:
4 m/ a* E5 L) I' v/ x+ h* e7 o- W[   74.690383] DMA per-cpu:+ Q0 B0 L+ ^1 B. N/ q1 W
[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17$ P! I9 r# u5 `1 w
[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0; x& f1 P: X' L* [) A$ Z8 E
[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24' c0 O+ M& y4 K
[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0
+ @5 E; _$ U" O[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739
, L4 Z1 ]# F+ z[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0
. a" ]. ^5 J. }) Z! b# j# o% p[   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
5 w  i6 r. b% s# Z" |& Q- p' \[   74.846179] lowmem_reserve[]: 0 0 0
$ O+ l) |/ R- C; p  U! N0 f, S, `[   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
2 q7 Y/ m4 c& t% D/ Y: |+ t7 S[   74.871095] 5393 total pagecache pages- S/ Z, B3 e6 J: u3 w, z& w
[   74.874878] 0 pages in swap cache3 B' J8 @, }" {# }' U4 x! p
[   74.896156] Swap cache stats: add 0, delete 0, find 0/0
, }) e6 l  F& b[   74.901444] Free swap  = 0kB3 {0 s8 ^$ t6 x6 X- `; S! D
[   74.904346] Total swap = 0kB
( ~' F; A8 ^8 k) r[   74.946799] 49152 pages of RAM* ~* D2 D- b( C$ D" E% o
[   74.949901] 25326 free pages5 u' Z0 c2 a) G; W/ @: P; S
[   74.952803] 3366 reserved pages9 l% @9 Z- J; A% n/ W# \( ~) k2 z& |
[   74.966186] 2124 slab pages: Y1 v! o- B/ w& a. e
[   74.969063] 7387 pages shared9 `) c1 B5 i( `+ i% ]6 i  Q
[   74.972058] 0 pages swap cached, H7 R  G$ L& g* N/ n* V
[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed5 p* c% Z' {* S+ M  V& s4 R; s
Cannot mmap = 1 buffer
7 v" o( k* F- S3 d  tError in opening capture device for channel 0
; f. \" C+ j5 d

; C% I3 c- d# g: `- s* D- N
6 Q9 \8 n% a$ x  a8 p" Y" P这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。
7 Y* X: ]1 v  U$ Y6 R! H

本帖子中包含更多资源

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

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
) Q4 m" q+ G, N6 c6 @: l还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
* {% q6 C( h/ X: ~) Y5 J* \
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。, H* ]2 r# V2 C
第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
0 @5 ~9 r0 G3 u# }& H2 Z9 |6 D" A; @
我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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, L9 N2 D* f% [8 p3 ?* k2 N
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...

& h3 c4 j! ~6 h( U4 k谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
! M: {  e" b: ]7 q0 Froot@tl:~# cat /proc/cmdline
1 T' y/ B. D# g  E3 N: N% n+ Emem=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 q' I* V0 k+ U) [! u ) z( J# M& o8 ]) C
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
' C* M6 k$ J" ^& ?% N7 n7 a那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
" ?" x9 ]5 L8 A+ a / v8 C3 p, N/ d( v6 o5 L
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助- f# U/ w* i6 x8 p: Z
root@tl:~# uname -a
, @6 \1 D9 C8 K4 s$ r; }Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux

& v/ e  t- _/ Q% Y : H& o: P# y0 n6 a  s
' m. j' A) l! {7 V  Y& }

. G- y  Z0 }* H* k* q/ k5 D
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
6 }3 K' e, X' k' i( I第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;( ~1 w3 d- ]+ V: B/ p- f; E8 y; [3 b
第三步,重启板子,然后再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& T! b6 J; q3 F- C9 I1 c6 t( I0 C
第一步,确认你的u-boot版本是不是v1.5或以上版本;& @  F! I) r8 ^- i4 w! D/ V7 ?, J
第二步,可以在u-boot里面执行:nand erase 0 20000; ...
& s+ s0 I9 x; I, G/ o
您好,5 ^3 q  D% p* ^  i
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf8 s, E0 u( X9 `) |1 e; `
请问这个是什么版本的?
6 B; b/ M' \# x; I- Z( u( ]2 b( E
' v4 k+ q+ e6 A* O9 D! c% h- `另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
* H. i( \6 t, b我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
- l+ R1 a2 G3 f; c+ ?; A. a$ g 3 n- u9 M' Q3 L: ^
还有就是想问一下这个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 k/ N1 z; }2 t( y" ]+ j2 |. |8 E

# c* J$ ?1 Y1 E$ F1 S, [8 r% O( P问题有点多,希望大神好人做到底,多教教我,谢谢您!8 v! E( H* M1 h+ K2 [% y  a  a1 k5 }

8 Z0 z, K% k! F' W8 o
回复 支持 反对

使用道具 举报

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;$ {& q$ X# a8 {3 R" ~2 T

+ s8 x% s6 Z1 Z8 ^/ `: w8 @: _可以根据环境的光线强度,修改摄像头的亮度参数:
6 b+ G9 c1 A  ?* x2 p* Z3 |root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode : c0 U% T0 P% T+ I7 T
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode
- c2 X7 {5 J7 N: g( l: K# gCloudy
' G4 E$ U; ?# s1 O2 \* P. g7 x" N# Z. d
参数说明: - J1 S- L: a* K- |1 }9 R
light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
$ S% x3 r. x2 f6 r$ O. Z! v( n0 s# O2 |7 K6 Z
如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c  x: o% s7 ^5 K

7 P. q; V* v' S4 U4 j$ \' ^6 \vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 09:04 , Processed in 0.044619 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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