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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,: c3 Y; R. I+ }& r. m) |2 F
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入- @6 ~5 b: S+ {& t
"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:1 {. R& @4 ^+ J
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
4 c! T( O$ B8 J+ oCAMERA capture
! o+ [7 N* c8 L2 k( kinput_device /dev/video0( s# t# {9 r. P$ K! ~( H
Camera-Camera- E6 Q: |5 F  `. M: A3 {
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
$ y7 v. u9 s; }3 i5 U* vfmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)% @, s2 x  \' |' T; r
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)! o( l: n' w$ H- X+ T- K4 t
capture_buff_info[0].length = 4147200
1 {0 }" D4 r6 g% lcapture_buff_info[0].index = 0
/ Z2 c% F7 K0 B0 Q$ |3 zcapture_buff_info[0].start = 0xb6bec000
( x' B) G2 a6 Z" }. jcapture_buff_info[1].length = 41472001 v$ a% ^9 X, W' y2 B
capture_buff_info[1].index = 1+ f+ ]% @( s8 m0 m' l
capture_buff_info[1].start = 0xb67f7000, V) U+ a0 h" Z1 d# F
[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed% P0 C5 |" ~# N: P% v
Cannot mmap = 2 buffer
0 W7 h$ T: Z' U! a- NError in opening capture device for channel 0
0 _# _% {4 i3 B- p" ?
  X' q# d! b- O6 ?$ _9 q
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!8 a- m8 d4 q$ q
分享到:  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
9 ]$ i& J7 i2 ^  j您的还是默认的bufsize的,再检查一下配置吧

/ z2 I& }+ I+ {8 k: o0 X7 b. y0 Z+ f# F
" L8 t8 Q  o) Z! |! W7 z0 u  O
看一下,我把环境变量打印出来了,这样配置是对的吗?
6 k8 M  m3 ~0 [$ V7 @6 J$ C0 q& W2 ?8 L+ T7 S

7 ?( T" N2 e& h7 ^$ J: M$ ]root@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
# Z! F0 l7 T$ |! |* P" NCAMERA capture4 d% g% `+ [& Z- w. }( O* k
input_device /dev/video0. `4 v+ t/ J, x. m
Camera-Camera
- m* t# a4 d/ x+ q" g; zfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000): Y. v; f/ ]2 d* W
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
  g( ?  |5 t1 X3 Jfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
) V1 B) V& @8 R6 u8 Lcapture_buff_info[0].length = 41472008 P) f0 D$ L4 l/ W4 w: i5 [
capture_buff_info[0].index = 0, i' v" F7 z) Y7 g  T  e
capture_buff_info[0].start = 0xb6b40000
1 C& J* q  ]% \  g[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd07 V: M( D0 P4 @
[   74.323663] Backtrace: ( ~& U0 B  p7 B! N
[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)
# R, S5 O- E( }. k) h& f; C5 f% x[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093
* k# R+ {5 L: Z" ~[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)7 n. ]& d/ D6 l7 w5 x4 a  x
[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)
5 n, J! X, M) l# F" w7 k( R; I[   74.406178]  r3:c71fbd1c r2:000000000 u5 C% x& v0 C4 Q
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0* j7 i- o2 w; D6 z: H8 W
[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)& n; k- i) a$ I5 u
[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)% O9 B  Q- `4 ~# l; ]
[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)
6 n. L8 w1 o9 k7 G/ g; o[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0
) w8 [9 E# Y5 n[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)$ z# D+ v7 N8 b1 Z/ ~0 n# y8 z
[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90) F, L. B4 J1 J  G- r' X7 c5 T" U
[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)
& T9 z# c  C6 Q8 D. U4 ]3 b[   74.556197]  r5:c7ba8c00 r4:c72b69a0$ k  Q7 E" R3 z9 @/ F
[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)1 V) v4 I/ _! }: {
[   74.587055]  r5:c71fe580 r4:c79c2e00
0 `' M. v$ _0 o- v" e) j9 N2 J9 f[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)
* t) U) Z. j/ g* t7 t[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584( s! I0 y6 b) E) R
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)
4 t5 V* n- i" b& U* w( z[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)% d: |) T' X' p8 a: Y
[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)# x! l0 \0 b0 I8 R4 x
[   74.688020] Mem-info:
9 _1 M" |& u9 a+ _" ?& o5 p[   74.690383] DMA per-cpu:
8 p4 P5 v7 |+ }% Z3 s4 k) \2 o[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17& {. A- t* k3 V0 Z" o+ L3 ?
[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0
8 a7 g- o" I6 M[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:247 b  H$ ~# f% v; W4 A
[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0
0 Q/ @- n. _$ X. W/ }6 y" w3 x1 ?[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739. O5 P$ K& @5 J( Z0 z5 k# G% c
[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0
8 a8 F( S) t$ _! O2 }# \8 p9 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
; Z2 |2 q3 I% _% @- L) H' B% W[   74.846179] lowmem_reserve[]: 0 0 0, L) u. ]0 S) h: C3 m
[   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
5 j, |# m0 P  c2 ]6 c4 n[   74.871095] 5393 total pagecache pages" V" ?' a* |6 ^2 V7 d
[   74.874878] 0 pages in swap cache; Z/ X+ G' r5 i- `- P+ e2 X; q
[   74.896156] Swap cache stats: add 0, delete 0, find 0/0
, N9 z* B1 n" a) _6 ]6 i[   74.901444] Free swap  = 0kB
2 C) B6 r% P- z4 f5 B[   74.904346] Total swap = 0kB
% D0 d& J! J" H! C3 t) k6 @[   74.946799] 49152 pages of RAM
6 l3 M, S- k+ a8 D! t[   74.949901] 25326 free pages; D& w* B' @9 i% c( m
[   74.952803] 3366 reserved pages
+ h) R; j+ f8 B% j6 m, d[   74.966186] 2124 slab pages
1 U# f7 @: H/ H6 s/ D- O" V[   74.969063] 7387 pages shared9 ?! [+ ?2 E6 {: I
[   74.972058] 0 pages swap cached( F* N0 |9 B% h. _/ G
[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed$ T" m4 X$ F# i' P
Cannot mmap = 1 buffer
' Q6 S0 B' m$ K4 t8 G6 zError in opening capture device for channel 0
# H0 b$ R, y. y, G% _

! E* J" Q. C0 K' X1 V. e " }' W! s! `& H8 p9 }6 l0 J* E
这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。: ~. ?3 F: H  m, c. n9 L& i

本帖子中包含更多资源

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

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
. p" o7 i% H* s6 ~还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...

9 |! J/ }) T# \$ I6 h; s; v; p我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
# g  w' M0 Y( }3 N; w/ x第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
5 {  k  L. J# f  E& _+ S( r7 _
0 M* W: C- M/ B4 W! q8 g) K我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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
9 n/ M# _& h1 z& E- q$ f7 R3 V( |在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...

. L7 R) }6 Z- a谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
+ A$ B% m7 k+ hroot@tl:~# cat /proc/cmdline
! C" e2 J& j% Z, i: {2 w/ m2 dmem=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

- U( g3 L: m/ t7 J' {6 n
: ]+ ]1 ~2 \& U3 @; d我是按照手册上设置的环境变量,为什么没有成功传递进去呢?2 e  }" b2 X; X0 o- u
那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
, _% A+ a1 `! G9 N% y; \ & A' I& ?) m2 C4 o+ E2 f
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助8 |' H+ c+ T5 ]; D& ]% {5 d
root@tl:~# uname -a
+ y- v2 J8 x7 iLinux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
) j$ j/ x6 O- ]% p9 j) @0 i! v' B

, `! b7 j- L* y  A: f/ ]* o * O& h. |! Q( p. M; @5 L6 w
4 K) M/ [* l! v3 q8 _
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;8 W5 u9 o8 R8 Y# b
第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;1 N$ k7 J8 T' h  g- W( H/ |
第三步,重启板子,然后再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 f  c/ d5 u# E7 i  k4 I第一步,确认你的u-boot版本是不是v1.5或以上版本;
4 K# b% V" U5 Y/ q- c* n( ^第二步,可以在u-boot里面执行:nand erase 0 20000; ...
: H' E/ Z& p5 v0 U2 P$ ~
您好,
4 g1 p% \2 _5 ?# y) y, m1 I$ K我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf
( I6 l$ I+ B) U; @2 ]( g3 o% R请问这个是什么版本的?
+ {0 L( h2 {: ?0 Y8 A# K, e
1 h1 R7 N# t' P% t另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
* d! P. B) y9 _4 |+ {9 m' {9 m4 @+ _; A. Q我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?' Y$ R$ ]: k9 |
0 ?# B: l8 M3 d! R2 v  S& A
还有就是想问一下这个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 的?) V1 p7 m4 P* h0 p0 N- m
$ R, p$ _8 t! K  n  r
问题有点多,希望大神好人做到底,多教教我,谢谢您!5 l/ L$ X: p$ Z. T: {, E
3 A( x/ X( W3 S6 u8 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;7 m9 m( ]9 K: y, f2 M

$ Q* ]0 K0 b+ |% c+ `9 N2 T3 j可以根据环境的光线强度,修改摄像头的亮度参数:   p6 P! V1 _! X# ^/ j# T% U
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode & G# w# y# [* {) Q  G
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode 1 ?' T3 _: u) n* q. E5 v
Cloudy 4 v  ^5 q( q2 h. K/ I" R& o6 ?
8 K4 I) R$ e8 t
参数说明: ; S8 }) ]3 m6 p' P& e
light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
" \$ _7 y) O/ @: y8 y) d$ P5 R5 e1 y: s' h. H: H/ I# i. N5 V
如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
3 E5 ?8 b& {; {. j1 q. X" |6 L. B* Q7 s2 \& g& e0 K# V8 x
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 06:51 , Processed in 0.049102 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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