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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,5 i( ?& K# Q) k) F& I  B: K/ t2 ?
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入
$ m6 @3 J, r# i" Q"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:) t) I+ o  \, N3 M9 _7 E
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 22 h5 k( b2 i4 e3 w/ V
CAMERA capture4 Q4 C8 G3 k: Y  Y
input_device /dev/video0
# }( s* `6 ^3 H! PCamera-Camera
/ P- Q7 n* k% Efmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)' L* d) K  `/ h. d
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752). F; Y& p2 a1 @
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
' P  j) W  e  E# c! X% \1 Vcapture_buff_info[0].length = 4147200; }9 H8 l0 f5 o1 d
capture_buff_info[0].index = 0( `) Z3 n5 v# b- d9 X
capture_buff_info[0].start = 0xb6bec000
* K9 Y/ r- @! k) y3 C- p( A, `9 vcapture_buff_info[1].length = 4147200( `. X" d& M; \$ H" j3 G
capture_buff_info[1].index = 1: o6 ~7 i' ?' J
capture_buff_info[1].start = 0xb67f7000
3 }# j, m, V5 U" R) p8 F7 r! p& c( E[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
5 s* l5 T- u3 e: h- hCannot mmap = 2 buffer
6 [& d! @1 R! x$ U5 @4 O2 LError in opening capture device for channel 0

8 O5 m. R0 ?7 X& X7 |0 V 2 D5 a1 X3 N; K6 p: n
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!
# i, P3 l5 f7 _& \% w
分享到:  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' m9 J) h  ?$ c4 W* K% L
您的还是默认的bufsize的,再检查一下配置吧
3 ~0 J* h6 G1 p6 U% Z9 C9 R3 p

2 d" [$ y- Z# Q6 {1 X
' A/ z1 M! E1 ~看一下,我把环境变量打印出来了,这样配置是对的吗?
+ ^& F8 e4 g7 o& g4 ?1 S2 F  |
/ y* i; [. [% a; r: K
0 ?7 O2 A7 g/ Y" `) s. `! Hroot@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
0 F6 G" g. R2 W! F' L; MCAMERA capture
( ^% q1 O/ q! k$ E. e3 u" Rinput_device /dev/video0
) G+ u' `3 t' d( ~+ T# I$ X' UCamera-Camera$ A# J* a/ B' F& N3 x
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
" H5 n, f! H- G& n9 Sfmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
# M$ p' {5 q) afmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)1 r. s$ Q$ l* y$ Z4 A
capture_buff_info[0].length = 4147200
. H% N$ Z4 Q/ o+ c; D* Bcapture_buff_info[0].index = 0/ \/ b* N5 h$ {( S1 i/ w
capture_buff_info[0].start = 0xb6b40000
( h% b, y- f( I. c8 K# T[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd05 J; m/ ]  h1 t4 `! d( v9 g
[   74.323663] Backtrace:
0 w" [# v2 k! f  x[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)
  n2 t$ u% n+ R; k1 O/ H+ d[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093
! b( R  F( h1 d4 {5 P$ [7 w[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)4 I# J6 A5 F: ?' a
[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)" ^6 v  S+ |8 [8 G& o5 g2 G
[   74.406178]  r3:c71fbd1c r2:00000000, y+ z7 p0 G; U
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0; _' n3 a8 T/ V. r- Y; w( J' H
[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)/ D2 N8 U! \9 Q4 Q" x( |
[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)
# [! \+ }4 T- h0 A1 H( Z% O[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)
- G" J! ?( g& d  ~[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0
) g+ ?1 Z$ p$ u& S' A[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)
: @% Z0 q5 J. O6 j# P4 c% [[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90
2 @& }) V. l: o, \; \* {  [1 b[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)
5 s# [$ ~; V( d" S- E. k[   74.556197]  r5:c7ba8c00 r4:c72b69a05 ~9 I4 G$ U+ p
[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)
5 u* I. q5 |6 ~8 ?$ K8 s[   74.587055]  r5:c71fe580 r4:c79c2e00
; F2 ^# J: F# G! _# G: A[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)
: b) _1 ?5 l6 l0 D% E! ~[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584; K! Z+ j. v  y. {5 U
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)
% A2 J2 R2 ]/ r4 n9 A[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)7 v! g3 `1 \/ ^( j0 ~$ n8 C
[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)
3 @' s- m6 r) q) g[   74.688020] Mem-info:, U. L: e' E  ^. v5 K9 y
[   74.690383] DMA per-cpu:; w/ _# [' n2 B
[   74.692955] CPU    0: hi:   18, btch:   3 usd:  177 s$ P4 ~: m, J: p- e( n/ i& g. r
[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0
3 x, |& j4 j' J  A! X3 ]  s[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24
/ R* b4 _7 V9 _( c[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0$ I% A$ J# p% z6 [; F
[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739, ?& J2 C% w# F( o/ Y6 F) ~
[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:01 K5 X8 f. [! p5 y/ \! L
[   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
7 V. T. f  |5 v$ R# y[   74.846179] lowmem_reserve[]: 0 0 0& U! M- |% ^' }. |. L3 F1 Z
[   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
8 N4 S8 a, T4 a9 \[   74.871095] 5393 total pagecache pages0 W( w9 ]6 H# ~- _# I1 _4 S
[   74.874878] 0 pages in swap cache
) Y) r0 f+ F; h9 [4 a[   74.896156] Swap cache stats: add 0, delete 0, find 0/0; w4 H+ o6 z9 [. d: p
[   74.901444] Free swap  = 0kB
( x% Z1 e+ l5 o0 H$ W0 b6 d. ][   74.904346] Total swap = 0kB
% s; t, F% M/ ^* H2 C: n[   74.946799] 49152 pages of RAM
3 I  h, E, D0 G$ D9 Y* Q# `[   74.949901] 25326 free pages$ f/ d/ T! m- J8 P
[   74.952803] 3366 reserved pages. p9 P; S. F( [  U% p& f& E
[   74.966186] 2124 slab pages
/ J7 N4 O9 |9 ~2 k* Q% D/ y[   74.969063] 7387 pages shared$ \; e, I% h& h' ~( n( ~
[   74.972058] 0 pages swap cached
4 I3 r0 r5 Q+ a. n' t( a; f7 Y' V[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
: ]! j; e# E" U0 A- c2 [Cannot mmap = 1 buffer% E6 H& S. O$ z5 n& i* _3 i( k4 G
Error in opening capture device for channel 0

6 d$ E( [4 q) {+ V
. V: e; W# _/ b) F" d* i! s2 p) y 8 N% `% f: A! J8 f! n
这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。0 ]8 `* H) B# K: L# [; s% l9 B5 ^

本帖子中包含更多资源

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

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
2 {% B6 O. J& z% F还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
. S" a: U% v- @9 M( i4 m' W
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
& h3 l% X3 z8 r+ G第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2- O+ n7 G! ?) g  F8 h

# l  j2 O! ^' ^. d我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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
5 D2 w# j4 u; N, W在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
1 o+ ^* M8 g# n  g
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:  n" `; N/ w/ D
root@tl:~# cat /proc/cmdline 7 Z/ y' q' G  `% {3 n& D3 M: c: k# 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
3 y. j2 C; V- N8 `

$ e/ U8 D/ L7 U' y* x我是按照手册上设置的环境变量,为什么没有成功传递进去呢?4 R$ h1 [* y+ ]* F, R7 \
那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
3 G6 Z5 f/ J* E0 K2 L5 a. H( l% T
- T. t8 e; ]: }$ L8 X以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助
2 m! s5 W+ r. J' _root@tl:~# uname -a5 A' J+ b3 W/ |0 I" a
Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
+ p1 M6 w4 I3 b- j( F! q
, [& Q( O2 r. v  P2 V% x

& O7 P, c  X6 O7 G: ]! b! Y 6 v: R7 A7 k5 j! `- j! a
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
9 n  N" R8 L8 F( l) e第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;
: Z5 V5 @; }8 e- \+ |2 C# _) o第三步,重启板子,然后再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
: }3 w' ], O3 N第一步,确认你的u-boot版本是不是v1.5或以上版本;( A) _; D9 Z  d( m
第二步,可以在u-boot里面执行:nand erase 0 20000; ...
7 {- l, n3 _2 k, l2 }, F
您好,- l9 S) ~$ c! J8 S" J/ d0 c/ `$ b1 J- r
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf
- W# B2 H- \  D; s# R, H请问这个是什么版本的?: [) o/ d! ?- g  F% Q9 R

! c+ j3 v1 M5 P. z另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
  M( D6 `, V, f1 U3 l我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?7 S1 x  a- I, Z. o, k0 y. A

' N, V7 v, a6 ^. d: \还有就是想问一下这个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 Q. o4 u' R5 U6 S$ F 5 K6 L+ n# V) `' r; ?
问题有点多,希望大神好人做到底,多教教我,谢谢您!
* {- m( k- D' I/ }' c 2 B; T% l  A% k8 P: Y! M' E
回复 支持 反对

使用道具 举报

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;
1 U! L4 D3 V; \- y2 W6 D% y/ I9 \; s, T
可以根据环境的光线强度,修改摄像头的亮度参数: * J& Q4 J! D2 p$ y/ A- \" ]2 d
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode
! ?) c2 b2 A! o5 V; Proot@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode + z7 Z' C: H3 D3 T  K
Cloudy
1 F+ W+ D$ z! M% x1 C) \4 j1 F
+ q: w) t3 T! t* i参数说明:
  d+ Y' I- f% P& d: xlight mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home ) e- [6 e" E7 A+ a; J1 k0 m. u4 e3 j$ j' l
$ E: x, ^& W5 P# J! Y
如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
  E- _& D" {: }# |  b% Y1 n/ o9 T( J1 P" O& R) O( @
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 00:59 , Processed in 0.045240 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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