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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,
# M( p; k# t$ Q% b; h$ E) r    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入
( f* @, g! L$ V+ {  T0 g) _"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:* A: s" s% ?' ?0 G
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2( W/ c% u& p# ]! \8 \- ?
CAMERA capture, e0 i) j0 S3 R
input_device /dev/video0
7 O! ~2 P. x$ F0 zCamera-Camera# B9 B3 O3 ]/ D: C8 B
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)3 H! O* d7 `: [8 B4 W* B
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752), X# j! y% k* `6 ^( m; U9 i* H
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)9 U9 R/ U; L6 Y% g9 r
capture_buff_info[0].length = 4147200
0 {8 A- p) p( L  d" P* @/ Mcapture_buff_info[0].index = 0, x- z/ S( ~8 m) o6 v* W% s
capture_buff_info[0].start = 0xb6bec000
5 a0 Q* q7 `2 v1 bcapture_buff_info[1].length = 41472006 w' V0 F' ^8 K
capture_buff_info[1].index = 1  b* h# q' W6 v6 l4 [$ f
capture_buff_info[1].start = 0xb67f7000
* r' F8 J& l7 Q( o; o1 V. C$ H[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
+ I& t0 Z" p, z" lCannot mmap = 2 buffer
9 z1 Y9 S% |1 ?+ w2 kError in opening capture device for channel 0
; P; Z0 k0 s6 l1 d, y

7 W& E' c9 m0 B9 z, C, D' e5 C我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!5 d2 Y# W( z' l& P& k4 N
分享到:  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# q/ v5 ^) p/ p% I
您的还是默认的bufsize的,再检查一下配置吧
7 P( c. i5 \/ O2 Y. x6 e; Q/ ?
! k0 m8 o0 e6 A& F, M! x( B
: w7 }7 X1 b- Q7 h" q
看一下,我把环境变量打印出来了,这样配置是对的吗?, |3 G5 l" x5 P( Q

% a0 I; f9 X9 ]" ]. h
: @, v0 e' [) J8 H/ ?$ A9 k/ broot@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2- X$ d" r" }+ O- i* O! J5 o
CAMERA capture
$ \# G+ j, M9 Oinput_device /dev/video0/ S2 `$ P: Y# e, F& v. \
Camera-Camera# N2 Z+ R# {) _. @
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)% O7 r2 Z  Y/ W- e& W
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)# z/ i; d1 m/ t3 D9 }
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)/ t- H$ W: x6 z; L2 V
capture_buff_info[0].length = 41472000 P% z' }" j( D' s' N, E
capture_buff_info[0].index = 0
1 J4 |8 d) I( k2 c1 Scapture_buff_info[0].start = 0xb6b40000% A7 N* D4 }1 e; X8 B' y1 e# a
[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0+ M% |& j: K) Z0 `9 M- q
[   74.323663] Backtrace:
6 i0 Z( k, \4 ^+ [- _4 h! `$ W[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)
' K% f! V3 Y* C5 w; X[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093  f  p( z0 D2 R4 A5 R4 v7 f
[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)+ y6 e8 [. ~4 J6 c+ r2 K
[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)
2 b1 z! V6 Q' D" E( W' _& X2 _[   74.406178]  r3:c71fbd1c r2:00000000
. Y0 H/ i+ q  v; R[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d09 Y; ]& v( U) d" j% X
[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec); P7 M4 Z/ D5 [/ p
[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)
5 K5 Y7 M/ }9 d: a" }# l[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)
  e: R1 ~  E8 v. q+ o5 J7 F  Q( T9 O[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0; l, ]0 \, j% _& ~  w/ G! f
[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)+ `- I2 E. {2 s' T/ W
[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90; Y; X7 g6 q2 j
[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)
  F( a& G5 h1 }) M# X  V/ _[   74.556197]  r5:c7ba8c00 r4:c72b69a0" `% ~- h! }' ]( K+ |( R
[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)
& Y# W2 t3 S/ @9 K[   74.587055]  r5:c71fe580 r4:c79c2e001 a" O" F, ?4 ^: D$ G% ]5 i
[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)$ D5 Y9 e7 m/ n: `( ^) g* I2 ~
[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584- G+ V8 C  s* o% ]2 E% g9 m
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)
' O. }, t* s- s) y& \4 f! ][   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)
& g/ o0 L9 B6 l! @2 z) J: J[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)
1 }: y+ U$ \6 x' L6 @* G& c[   74.688020] Mem-info:+ T9 e# I0 [% X+ M& M, ~  a. R: ~" _6 M
[   74.690383] DMA per-cpu:
1 f  S. n7 g+ B. D! t[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17/ M: F3 M% @# U! r
[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0
' f1 U/ i) h4 x8 \0 ]; C[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24
6 e2 ~1 v9 G& Y4 O1 M[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0
6 E& a. B) I6 [$ T5 K6 o6 f[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739
0 Q  y0 y" @0 W, g( P) y[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0
0 a+ _! U" Z, a[   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! K! @& s4 S& u! v3 i8 Z
[   74.846179] lowmem_reserve[]: 0 0 0
8 V. H6 r! I& g; ^& i- H8 J[   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
* B! e/ A& y7 b" `% b0 U; k[   74.871095] 5393 total pagecache pages
# v& b3 I1 ]; `8 m4 t/ N[   74.874878] 0 pages in swap cache
3 {3 w2 i- u# G[   74.896156] Swap cache stats: add 0, delete 0, find 0/03 m6 C4 b7 p; p; H
[   74.901444] Free swap  = 0kB, N9 C  K% d2 u
[   74.904346] Total swap = 0kB
, z7 F# C2 C2 G/ z' }3 y[   74.946799] 49152 pages of RAM3 s* v+ @1 ?. \$ D3 i; O6 j
[   74.949901] 25326 free pages, c" M5 {! |. o+ D# R% P( o1 @
[   74.952803] 3366 reserved pages, n6 Z' r* w, `- @3 y' r# J. E$ h
[   74.966186] 2124 slab pages
6 j: J2 w+ a/ J' J, a8 G[   74.969063] 7387 pages shared1 Z# o' _! Z* |) P/ _' n
[   74.972058] 0 pages swap cached
* O7 N3 `& w4 F4 P* `( v[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed2 L+ R; {( o. e2 N5 D' K
Cannot mmap = 1 buffer
- b) }' o1 I, E- c# `% o, hError in opening capture device for channel 0
, f1 {& T. q/ q( B2 X

& q8 }& H; @' b
0 P2 h) m8 E$ }. m: ~9 L/ q这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。8 f& u- i/ n, V

本帖子中包含更多资源

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

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/ Y6 v: [" r+ V. Y. U
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
& L. D. i( }5 t
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。* i1 ^# r0 |* w( G4 D/ {/ i. w
第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2- b$ f: `. n+ x' v1 b- r* I

) i3 m. J) ?' r9 x我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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' r3 E7 |. s6 f& z$ V5 o% [
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
' o, i: _) p$ `( x9 _- B
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
# n6 n- o) Z$ J" ~root@tl:~# cat /proc/cmdline
% C& o$ Y8 i2 z* |  T/ H( a- d8 fmem=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

* O' z2 t) J, U1 F$ }: y# E
8 v- e" @# O, K0 B2 X我是按照手册上设置的环境变量,为什么没有成功传递进去呢?5 v% G# |& ]0 z  g4 }1 L- p
那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
4 B( h- W6 }1 ^( M1 O 6 ]! w; v9 U, Q4 S) y- I
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助3 ^1 E: E( H! i- W
root@tl:~# uname -a2 R/ A# k& Y. A7 a: x, w5 p, z
Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
7 p* e: |: T; \
! [9 L( p8 }% |- b+ g/ j4 d. Y0 n
7 |" {3 E/ r  |% R5 x! c

& w; G' f# u3 s( K  x
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
  `" j4 N" L  p& X% l' Z. ~第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;5 H1 N% `) j& S' B9 }9 ]
第三步,重启板子,然后再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
' [+ D4 d0 {. N5 O. ^! r5 R第一步,确认你的u-boot版本是不是v1.5或以上版本;% b# I3 a# h. u8 y! }$ F
第二步,可以在u-boot里面执行:nand erase 0 20000; ...

8 S: j7 D4 D9 }( |0 i4 c; i4 l您好,4 n# T; ~1 Z6 s/ n/ _  e
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf, ]8 j- }3 y+ \+ b% [
请问这个是什么版本的?
9 A0 C% N/ l9 m% Y& n0 z ! ^6 A" r" I' {& T3 W$ a# [$ f
另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?- s5 r& F1 |) K
我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
2 d% P) ~5 Y) r; J  ^
5 m1 h8 ]3 U' |还有就是想问一下这个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 z) _6 A' b8 f( ^1 |0 ?
8 m% L- ]0 `! Z2 C" m* [问题有点多,希望大神好人做到底,多教教我,谢谢您!
( J5 t' W- h! W- E 0 X' \' d- [0 W: o1 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;# y6 E" y9 w1 }' |7 |

/ p* B  o+ \  k# W1 m7 o+ [* [可以根据环境的光线强度,修改摄像头的亮度参数: * e" r5 g8 U( V
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode # o4 u' k" ?3 A9 g
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode
4 }: z$ U; v6 u3 YCloudy 0 U0 g, t& l/ d# d9 I) v

2 Z. p: Y1 T) o1 `4 \参数说明:
# T( \2 V9 U. flight mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home 8 O3 v+ K4 ?% J& X# {0 O* e2 g6 i( [
7 I* c5 Z0 l1 w! f) {/ f
如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c8 m9 ^6 a/ ]. G+ K, T8 d/ T
9 z: v0 ^/ u9 q
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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