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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,
2 A( j1 s0 _' F- Z    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入! a& }% T* ^3 [' @
"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:
0 f% x. o6 ]4 h/ L3 o# w, m( ~4 Rroot@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 20 A0 H- O3 s( M
CAMERA capture
* V+ Z! M2 j4 i6 F  V2 c" pinput_device /dev/video0! ?1 F( L/ L% |" H' ~, R
Camera-Camera
7 B( m5 m$ e' J) n/ y2 f, y6 ?fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)) P+ G+ P  f6 p: Z$ Y1 N5 b
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
4 r- @' V( e+ L# z- G7 T  lfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
4 K+ N8 f/ K: s" zcapture_buff_info[0].length = 4147200
5 H  K" m) M" R$ `9 g+ k, P$ Mcapture_buff_info[0].index = 0
# |! C% z1 K& q2 Ncapture_buff_info[0].start = 0xb6bec000; E; B/ @9 y! |
capture_buff_info[1].length = 4147200
" b4 B8 E- u& Y+ k. \% [) y( t5 Zcapture_buff_info[1].index = 1
8 @7 n7 a& Q  D$ y1 t  acapture_buff_info[1].start = 0xb67f7000
. V- W- D% p6 Q- l1 V[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
7 v' v3 d3 o8 w, F* Y! Y# n0 CCannot mmap = 2 buffer
5 `7 d& T+ W* O! tError in opening capture device for channel 0
" ^( D2 ^( O; ]4 b9 Y/ Q

$ U' G2 k, s. y. ~我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!4 }1 F/ ^7 g$ P7 J1 }) L8 L
分享到:  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: ^2 H5 ]" W/ @) A7 S
您的还是默认的bufsize的,再检查一下配置吧
) P7 N7 ]& A$ p: V! O8 |( S3 Z

& Z0 i+ _* L( L$ Z. ~0 \9 F, s. E; X8 [  ~
看一下,我把环境变量打印出来了,这样配置是对的吗?2 m6 m1 J( G2 ]* u) o) O8 `$ D
) N" X3 z' W& w" X

* p1 n3 W% m5 i8 Y7 h- |) r; Troot@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
: D) D& u. X& u( M  ^CAMERA capture  h! {  C( I& v: W
input_device /dev/video02 k& Z3 h/ R6 E
Camera-Camera
" u$ t: ^) v3 x8 ^$ a8 mfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000). m: j% a* o* ?8 Z8 p9 f% a
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
- B# O; c8 `5 _, c! i% ~0 _" Bfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)- V! m& U5 R% A- k: U9 E, p
capture_buff_info[0].length = 4147200  J1 d6 i5 k  }3 @; J- C% E' f
capture_buff_info[0].index = 0
6 v: v! a. p2 C3 |! _capture_buff_info[0].start = 0xb6b40000
( _, j; P7 w2 W/ L[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0$ x8 P3 C) J6 B
[   74.323663] Backtrace: 1 f, b# F- A; }) {8 T
[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)
. a' |, j+ j' [1 s[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:200000937 C) U: z0 V* l5 w+ E0 p
[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)
( c. ^# f5 p: d: [[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)
. B, G* I6 `$ B# X[   74.406178]  r3:c71fbd1c r2:00000000
. L' N5 D. @/ w/ z/ y9 y. Q[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0
$ y0 O7 G9 E0 p[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)0 v8 R1 e* M, F: T$ p$ q
[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)" P4 w/ o- n; ]; T* g8 ]; c. q8 \
[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180); Q5 |2 k9 w$ d* {4 ?( G! I
[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0
8 a3 L4 |) m3 s2 i0 g[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)1 l; R% n4 j3 I1 V
[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90
% o$ U% H. L' g5 Y[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)5 t) Y0 f3 I6 {4 J( C; t1 M
[   74.556197]  r5:c7ba8c00 r4:c72b69a0
4 m) \% b: C4 U$ e, J[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)/ |& c, s' d( O( j/ C
[   74.587055]  r5:c71fe580 r4:c79c2e00% b! |; d& T' G2 G* s# G
[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0): X! C; k$ W5 ~# o. v4 n8 p/ Q
[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584# T+ T6 p" r; a) v7 J& }) Z8 v; a
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318): c# y& z! n2 M2 L& }0 S
[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)
2 G8 h7 a, c. f5 _) l6 e3 u3 n[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)
/ L. ^' h- y% L- B- K; B+ X[   74.688020] Mem-info:. l/ Z# W0 a5 @- N, W% j- }! r) r. c/ w
[   74.690383] DMA per-cpu:1 O2 X% N1 m( }0 P9 f* n0 n+ J
[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17
4 m" ~+ b9 Y% u$ G: |, \& \( Y[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0
8 O' V- U5 b0 n# Z" S. ~$ D[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:249 t" \5 ]! E0 Y  R0 G) B
[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:00 H! h* m$ e' S7 `1 e$ @$ }9 M
[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739
. O+ U$ Y' O& J1 z4 O- K/ l[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0
  Q, m( N' E/ o  K3 k" T/ E. n[   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
& ~1 I8 \& I0 y: ][   74.846179] lowmem_reserve[]: 0 0 0+ Y+ m: ]: X' X& ?' ~, n
[   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
& h7 ^9 t" B$ `4 K1 @[   74.871095] 5393 total pagecache pages- `" j! q3 z, B/ B. n: P) T
[   74.874878] 0 pages in swap cache" F' {. P2 k% t7 h/ M7 K9 R
[   74.896156] Swap cache stats: add 0, delete 0, find 0/0& i) u3 P3 r" A* R- D
[   74.901444] Free swap  = 0kB
7 ^' \9 F. R$ F* l! l" m[   74.904346] Total swap = 0kB
" J8 R$ t! P% G3 E# w[   74.946799] 49152 pages of RAM
( S) J: N- D0 D: b[   74.949901] 25326 free pages
* L& S+ Y! @+ D[   74.952803] 3366 reserved pages- [$ l8 A8 A# d3 P% N# I
[   74.966186] 2124 slab pages
5 W& H5 V& J% {( i  }" y[   74.969063] 7387 pages shared
& M( K& S) L8 ]8 m& w[   74.972058] 0 pages swap cached
4 u8 B' |) Z5 e  W. p, x2 D' r[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed0 r/ f* u& V* f, t, E8 T
Cannot mmap = 1 buffer; L$ w1 q/ N. \- L6 u0 y3 j' V
Error in opening capture device for channel 0
8 [( i+ m& ~* d# V0 P' {, A
/ N$ A  I: _" J  b1 J/ ]2 R

$ n+ Q1 N& u; u( ^这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。
! w& p. p* `' o# P" q1 n

本帖子中包含更多资源

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

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:326 a/ `8 h* t6 c+ E+ }4 q
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
, P# r3 M* |' ~0 t+ ^1 E
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。* d% m: K! [  [+ z
第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
4 |  x( |+ d( T! i* v' F+ n: ]' [
8 O( ?+ x. T% K% s% ^1 J我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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:163 q# A, g) _4 h$ Y7 u% [
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
6 C! @' h. I) k% @: ]# x, {. x! J
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
0 K: V, n4 d* q) {& q3 {root@tl:~# cat /proc/cmdline 6 r! v. a! B" Q- u
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
0 m, N3 S* l2 m$ W, j# Z
7 d: p; h3 f; k5 [, s3 B3 g
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
& [* P% o) ]  [, |# E/ D' _- H那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!  }8 t; h! ]  z7 ]5 Y% Y: `  l
1 ^' _' m0 ?9 I. u# g2 o
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助
; t1 v. ~+ V* v  m* f2 k0 |root@tl:~# uname -a
, E$ H5 ^8 j/ a% I: Y# zLinux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
/ I! W# a0 Q5 c: ?* D

6 E8 p9 r- m; o- B
( G4 l# }, z* y; U( T4 J % n3 v' y" \) o
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;6 e5 `8 {6 M& d1 L( b$ G: f; |
第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;/ p4 |, R0 w' W7 q7 |6 T+ z
第三步,重启板子,然后再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
- U, i  q* B5 G# y0 j1 v第一步,确认你的u-boot版本是不是v1.5或以上版本;
  ~& V! D& k! r7 k7 G第二步,可以在u-boot里面执行:nand erase 0 20000; ...
0 @: P! S4 v1 D3 T; I/ J9 ^  ^8 n
您好,
+ I- y5 |/ C& W) f# \我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf4 u! {5 G/ P! ^; U9 g
请问这个是什么版本的?
$ O* l( @& P6 y6 t$ @8 Z% [2 ]) D9 W , q. [  p; M0 T5 V6 ^. B; z. \9 R  V
另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
/ \" F* a& L  p6 `' i  H我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
( `+ k7 a0 h- G  ]. K6 `" |
/ q/ q' e% R8 d" S. ~还有就是想问一下这个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 的?& \( m8 `; j; b8 o0 o& ?( C6 p. l+ I
' l$ ?* E" \+ M1 z0 F, b
问题有点多,希望大神好人做到底,多教教我,谢谢您!/ |% Y6 O- u6 d0 |) `( E

0 v3 j2 n  T  G( M3 U, i9 _& ~' ~
回复 支持 反对

使用道具 举报

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;
# u- g( M4 m4 B; l
- k& _8 X7 R; B" g可以根据环境的光线强度,修改摄像头的亮度参数: % h2 z! t6 @7 t- H+ h& x
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode 9 h* V9 w# r, A* [( Y  F. z
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode " [/ o, U' M% C
Cloudy
* A/ Z7 s5 k" T) d9 ^9 N/ F' G: x
参数说明: 5 w# V6 B: J) c7 I( B' k" Z
light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home % Z" m( ^9 o5 w) q/ e/ a" C
) g& l, z1 v5 D8 z5 _) k
如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
! j  k8 N; Y* k- Z; d. Y+ D7 E/ i" j
' E9 Z# X, E0 ?, ~/ cvpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-6 06:04 , Processed in 0.044075 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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