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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,
0 c& x6 X1 H5 ?  Q9 B    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入1 P* _+ I( j7 }
"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:" A+ g& @7 R3 X$ O
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2$ X2 p8 c: j0 J% D  i2 R
CAMERA capture) t+ d8 c, ?8 @- L% u2 J
input_device /dev/video0
6 H" B) p) q; i+ p1 _7 Q& cCamera-Camera
, t. d- F& p* g( }fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)1 f9 [6 o5 w5 O$ }: y$ [
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)) L0 e3 @, c3 K- T2 X# W: W9 p
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)0 J8 B' z- k8 I& q! o: o3 W
capture_buff_info[0].length = 4147200
0 @+ Y, k' X. y, mcapture_buff_info[0].index = 0
" a! f# C+ l+ E' jcapture_buff_info[0].start = 0xb6bec000
* h. R1 K3 u' {capture_buff_info[1].length = 4147200
  Y! R6 L+ x0 R# `capture_buff_info[1].index = 1
4 r% R2 [" _+ V2 \" ?  g. lcapture_buff_info[1].start = 0xb67f7000
* ]1 K9 e( @6 R[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed/ P$ p+ U1 W; D9 B$ {+ {0 c# F
Cannot mmap = 2 buffer
; b1 o5 O7 `* K2 cError in opening capture device for channel 0

- Y% ]/ @* g/ {
. {" V* S9 d! [7 \4 T2 N我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!
) `2 n" `7 ]9 X/ H( C
分享到:  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
* `4 G) _* l1 W8 s6 ~$ m您的还是默认的bufsize的,再检查一下配置吧

$ Z1 b2 b& a8 k5 M- @( O
. a( t% j2 a9 H$ S; j& J: h, q5 R- X% [+ W: k
看一下,我把环境变量打印出来了,这样配置是对的吗?
2 \" D6 m9 Q+ Q1 |# G. Y: ?  |. X% f; w
. Q4 o. V; I2 G0 H* \: S
4 N2 |. ?, D) d& x: ]2 S8 b. wroot@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" {; l9 u' s5 F: ^
CAMERA capture
1 w: T, \1 I/ \1 B) Winput_device /dev/video0- {! b. T" U# i, h- b
Camera-Camera, P! p9 ?6 v8 c( T$ ~+ a
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)/ T  l- c7 U* @3 m% S
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)/ ]$ f0 @6 `/ J8 i# l
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
8 A+ k6 K: J- E& `capture_buff_info[0].length = 4147200- r, s5 P9 X& N8 |
capture_buff_info[0].index = 05 T0 J! `% G2 i& l1 s
capture_buff_info[0].start = 0xb6b40000/ e. A, e# ^, ^! N! B
[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd00 d! x& F% |) Y- G3 O+ |
[   74.323663] Backtrace:
) m" b( [2 X, U, g( d* b0 {; n[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)$ u! @& L) G) F; V
[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093
8 S7 D7 v$ n9 b0 }: p& N[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)
+ S0 v3 j. g4 Y/ v8 `[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)
. o6 d! y2 \  p  E" V+ H8 v[   74.406178]  r3:c71fbd1c r2:00000000
# }- B) s5 \6 O* S0 ^5 \2 K; Q$ y[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0
5 f8 T$ U* [& x9 ?1 S) ?[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)
7 o5 [# i7 t: \; r[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)
( @# M; l7 p4 ~; V1 b5 ^( a[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)
# N- `' S2 }2 X+ N- E3 I5 C7 S3 N[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0
6 G, b* W4 N# C[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)
! @6 B2 u- t4 T2 f9 K0 _[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90( H0 }5 r! b% a) @' F( ]8 J* a! Y
[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)) U, [  H9 x4 O
[   74.556197]  r5:c7ba8c00 r4:c72b69a05 o/ g  T" A$ [0 s) T% w
[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)0 E3 e/ Z& F8 i, |
[   74.587055]  r5:c71fe580 r4:c79c2e00! k: T: J/ M% N. k: o$ }& ^, D$ D
[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)" n: E6 T1 t- o( F# |
[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584; h: u! f8 m% l* `0 A8 T. ^  b, e
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)
7 r+ X  p) E9 B$ \' h  s% v[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)2 X1 Y$ K+ V& e: l% [  [
[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)
- b, j* R# t7 z# Q: c5 s[   74.688020] Mem-info:
7 m. }0 [1 D5 w% T  m7 D* ][   74.690383] DMA per-cpu:! E' I1 `* V6 s( t  p4 M
[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17
6 A- h' T, G& [" u& w4 E8 s[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0
& e* k4 j0 [$ f: e[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24
% C. B/ T; q& t- F$ T( s[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0
1 U  t5 n4 j" [8 \7 K[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739
9 n0 |# ^1 T6 }3 \8 W; `[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0* y7 }8 A* Q; _5 p, z' [
[   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" A2 g( i7 h. p# O+ z. U3 _% _) A3 A$ \
[   74.846179] lowmem_reserve[]: 0 0 0& E& E, R- ~- y% C' e$ F
[   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
# v5 Z. V! C( B+ o  h+ b% r[   74.871095] 5393 total pagecache pages
2 T( o( y1 _: r* |[   74.874878] 0 pages in swap cache1 M. K6 [* h: x6 ^5 y, K
[   74.896156] Swap cache stats: add 0, delete 0, find 0/0
  ^) y( o5 p- a8 e8 ^3 R3 N" q[   74.901444] Free swap  = 0kB
6 ^- G" m2 l- I3 K, S: `& f[   74.904346] Total swap = 0kB
1 }$ U: M3 J+ D, Q6 h" W[   74.946799] 49152 pages of RAM
! r8 K* c9 ^( ]1 N1 o& Y[   74.949901] 25326 free pages
1 S5 M( e1 |: j1 P) _[   74.952803] 3366 reserved pages( D+ X5 _+ f  i9 ~4 R
[   74.966186] 2124 slab pages; K+ y  }  f. d/ L$ g/ J  t
[   74.969063] 7387 pages shared- J$ I$ i5 z0 l+ |
[   74.972058] 0 pages swap cached. U# G. F* D- a: b! }% P
[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed8 J: o( C  U. Y& n
Cannot mmap = 1 buffer2 ~4 t% p$ b& X8 l+ K) q
Error in opening capture device for channel 0
- }0 ?. i' Z- O5 ~. J5 }
, v% r$ r3 n) V% S8 {
/ g) z' t( _/ T( w7 o  U
这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。1 M' w0 t8 A: l

本帖子中包含更多资源

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

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
  t8 g1 A0 q' s3 K7 C7 @还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
  |  p: a5 s! m9 w
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
, C5 O% N; q5 b$ o' @第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
4 I# T: I0 W( R% h3 K. O" u, m" e  M8 \" p0 Z, K3 n
我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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  g0 }( b, ?% v% e. o% ~
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
4 z7 S. H. P2 _) l4 Z7 R- s7 J
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:+ q1 r% C; ]9 k. s; l9 f
root@tl:~# cat /proc/cmdline , D6 G2 i1 P3 M
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
& b" s7 }5 X" Y4 w. E- x
9 U4 [: l# F& }" e  h2 ?
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?& l* J, W; t4 G. J/ o' ?% ~- k
那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
% g, ]- p' ^& N: W
' j0 L$ u" v! S* I  @以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助4 N- y- ?# n* P' O
root@tl:~# uname -a3 c" C1 @& G4 K/ F$ L4 e6 w/ H
Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
3 Z( D0 A$ z/ h& s( F2 G; m, H

7 Y3 G: U' `! r' U. z7 W $ `: E3 e6 L! l% ]8 p
5 t  f; L' m4 ?( M
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
& w( N$ t. T: M6 A, |1 D/ A第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;# b. h+ t$ n4 T+ N* r! B/ 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
8 _( }6 K- o$ H3 D第一步,确认你的u-boot版本是不是v1.5或以上版本;
  \/ [8 t- E; S1 {" M  u$ f1 ~第二步,可以在u-boot里面执行:nand erase 0 20000; ...

& s7 l2 l* S# b3 e8 X/ M1 {您好,* [. H5 m" b7 Q' ~  V0 `2 d
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf
7 m9 \( J; g+ w. ]- t" _; V1 V; H请问这个是什么版本的?+ p( F/ {! L( }, L

8 F; [! K3 r% Y! _4 n1 m8 r' Z另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?1 Q* L" i8 r2 G! p7 F0 Z
我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?; A, x7 @, H6 p( m# X- ]& V7 m3 t8 [

/ G" Q- F2 O6 q! M还有就是想问一下这个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 的?
7 C3 ?* b) j$ F; _+ Z7 A% l 2 h2 K- w3 I3 f; C5 k  b
问题有点多,希望大神好人做到底,多教教我,谢谢您!' o3 X' F" `! b3 r0 R4 B
& y! v& H. @* @, h
回复 支持 反对

使用道具 举报

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;# D$ a2 ^" b  ~+ b9 [2 T$ ~
: S6 r# ~/ `6 T- J
可以根据环境的光线强度,修改摄像头的亮度参数:
2 N- h3 w4 N; Q9 ^- k) \% X. h( Vroot@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode ' `2 U; O0 C8 ?/ n4 Y& C% l( W
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode
, {2 m0 _3 y. U. _0 O% E  nCloudy
! a4 I, L! L" O5 s3 w3 L+ Y- G6 Z$ e( ?& G- ^
参数说明: 2 n0 w/ r& [! K6 ]
light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
% Q( P9 @  t. J( @8 y* R6 z( i, K4 b# x: F% }* ]3 o! {
如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
9 `4 r4 H4 P" m% {* r4 F
$ i/ X3 @# i2 x$ [! qvpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 23:17 , Processed in 0.045225 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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