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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师," x+ @- M7 \& q1 F4 ~
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入( D+ S' j6 `* z9 C+ j0 o
"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:
! L# {. I* H- B: [/ a' y6 w: j/ _% q( yroot@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2# K+ |3 q, v% R; G
CAMERA capture  }+ A, \4 X6 I6 ~, L# s8 f
input_device /dev/video0
! e& N6 s" z4 t, n2 Z8 w. rCamera-Camera) o" N. Q6 S: c0 [1 w0 U5 [
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)" C) U8 q9 j9 ?7 ^1 @+ s4 S
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
" D9 x( @7 a3 i, C$ D3 \fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)7 M% i8 O8 x- `2 B6 a
capture_buff_info[0].length = 4147200" Z4 P) j6 T: E
capture_buff_info[0].index = 0: @# g: a/ J! n4 {- r4 \
capture_buff_info[0].start = 0xb6bec000
* Z& ?6 E' t: ?( \3 P0 @capture_buff_info[1].length = 41472005 o5 D. d2 I0 y2 m
capture_buff_info[1].index = 1
, b' e4 F& C' K1 Wcapture_buff_info[1].start = 0xb67f70002 ]& D( N, k/ k1 j  Y  ~( @( U3 h
[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
: l- |9 U+ s2 z" D7 R% n  }" Y1 MCannot mmap = 2 buffer4 _9 ]8 X. `# O- q# i: O
Error in opening capture device for channel 0
+ f& m6 B' F( ~3 r0 u; M
/ }/ k. }  Y7 p& G7 S4 Y9 a3 [
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!
1 O* Q. s7 D) b9 t
分享到:  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
- C4 Q( v5 }1 g您的还是默认的bufsize的,再检查一下配置吧

/ k+ f3 L7 \- N( B! W. @8 O+ \( [4 x2 m; e0 a

) {! D# W2 `5 n" e0 V7 }$ W" ^看一下,我把环境变量打印出来了,这样配置是对的吗?4 E0 B# O% J: i3 R# o
( ]% J3 @  o3 V! N8 r

0 v6 R. G. z( l, F' |root@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2( K, @* P/ Q9 p% W
CAMERA capture3 {8 N3 b) W! O9 Y  h
input_device /dev/video0
6 S. [5 T& _% z4 Z# {, f/ ZCamera-Camera; S4 A9 b. M8 x; X1 J
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)" G' {  s5 B% m8 l+ v
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
/ p! O; R+ ]4 Y* @$ T: c& Bfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)- g% |* u( T& H$ }% x
capture_buff_info[0].length = 4147200
; z* ?# s. @$ b: Y3 [4 p- Icapture_buff_info[0].index = 0
. v9 J4 V: e/ j( f. m* ]0 qcapture_buff_info[0].start = 0xb6b40000
5 ~* O- D) P* q0 w/ }[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0) P5 E! a) t7 M9 X% m6 }, n
[   74.323663] Backtrace: / \' r1 _' @+ E: h
[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)/ H8 U$ Z% b9 u& l9 @2 s( q
[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093
6 b: M# m: H! F/ c[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)
& K, i: T5 C( e[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)
9 s8 V5 D! p' m, v4 B3 r- U& q( Z" g[   74.406178]  r3:c71fbd1c r2:00000000: J! G& Z4 \8 I1 C3 N
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0
' o5 L/ |: P  m0 `. _# l( K6 B% k[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)
  Z% E( L( r4 O3 x- l& d; A, L[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)& H$ G: [8 V1 M
[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)
0 y0 T! b1 d, M! \[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0
, M1 F4 [3 t1 @. Y( Z* M" K( d% }[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)
8 [% r5 [6 g# e) x2 R, Z7 n[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90
; N% V. j8 S* T. a! @, l8 R; H% P  z- ~[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)
7 _( ~6 x6 D0 [4 T: {[   74.556197]  r5:c7ba8c00 r4:c72b69a06 I% ~8 K- s2 X0 @: s" P
[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)
( Z4 [% C  l, `[   74.587055]  r5:c71fe580 r4:c79c2e00
4 D& z6 l8 u8 C4 @[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)
% j2 y% u% O$ R  n7 s[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584; D$ O7 x" C- ]! \9 [. q- N
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)
% r. T- x7 v7 m8 S[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)( P; M' }, ]5 a6 C: x4 w
[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)
- F/ E6 d2 ~8 W' w6 ~6 G- V+ J[   74.688020] Mem-info:
- Y" f9 r2 e9 J. X* V: m[   74.690383] DMA per-cpu:* `; l$ L$ o1 S. i
[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17
3 n6 A* q/ L: G" S! l) w* r- }[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0
6 m8 L. X, W9 m0 y: N7 M, w* }[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24% H# p" q3 k! [8 d6 Z  Q# v( u. D: R
[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0: }  g- ]* B/ Z
[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739
* [1 J3 i/ ?* b4 H, @5 h3 u3 c[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0! P; b$ J) d" _
[   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" p. e# T; R3 V3 Q, c
[   74.846179] lowmem_reserve[]: 0 0 0# H+ k% m4 J, A0 d, B, [
[   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: U0 c' h5 k/ T1 ~4 A
[   74.871095] 5393 total pagecache pages
5 V9 Y% b8 |7 _; ^- E0 @[   74.874878] 0 pages in swap cache. p3 h# h9 D2 {2 b8 V
[   74.896156] Swap cache stats: add 0, delete 0, find 0/0
: m1 ~+ R0 \% c* j( |[   74.901444] Free swap  = 0kB$ ?8 r* _8 r" B
[   74.904346] Total swap = 0kB9 T7 a  V# f- n% n) p3 v# P
[   74.946799] 49152 pages of RAM. `9 ^: ~) M% w% {" [
[   74.949901] 25326 free pages5 l1 L$ j  t! J* w( d
[   74.952803] 3366 reserved pages
" K5 x: s! n4 B- s" s( U) O# @, L[   74.966186] 2124 slab pages
1 ~$ c- a! m; G3 |# q4 F; Z[   74.969063] 7387 pages shared+ j6 u- p5 G9 k& E
[   74.972058] 0 pages swap cached+ ?% _+ l  ?1 g
[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed3 V- S$ R3 ]' p3 a* z
Cannot mmap = 1 buffer% S  I. P# N& m; W8 e7 R
Error in opening capture device for channel 0

+ |: W2 Y( G4 ^, r+ i8 @ : n( F8 t5 S7 Y
- Y" Q1 `/ v7 \
这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。1 u# d; C6 I0 J  C! G

本帖子中包含更多资源

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

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" G5 W. a( S5 V7 k
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...

( Q4 N) T  Y- X0 D7 Q# R( _- k4 k我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。0 Y# _3 _  k1 o, w( T9 D' n
第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
1 M: _9 {+ C! {. g6 E# d6 h# c1 h5 g+ [6 t% |
我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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
0 {9 K% R2 }$ W. `, q在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
0 i) @6 K9 l% _- j1 D, p
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
- a/ e; U6 p1 J5 Y9 `9 Y- Croot@tl:~# cat /proc/cmdline
3 T! ^0 K8 O0 F: Q7 |1 o+ m1 K  mmem=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

  c) u0 G* J2 l3 V0 v4 f
; r0 U  i# Q- V我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
3 L$ |0 j/ `9 D: j6 E2 H. _$ A那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
) z+ a- W: ^, q , V/ e/ ~$ R; c% _
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助# ]4 v  f0 M. ]6 V9 f
root@tl:~# uname -a' D' ?% H9 W8 U. @. t, K, |# @  `7 D
Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux

0 \4 Q( m9 f, o0 {- V/ b7 R0 F
1 }$ p& i4 V( g- @# @3 Q8 ^ , M- Q/ t, w) t/ }/ J: E1 R- `
% Y) t+ t" c+ O* @
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
" T* w- R4 H' f+ Z/ F, q第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;, m( z, [6 W' T- J
第三步,重启板子,然后再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:128 z8 ?( p. ]4 Z9 E/ A0 [% ^  a9 d8 |
第一步,确认你的u-boot版本是不是v1.5或以上版本;  f. }: }7 \3 Q* |: f
第二步,可以在u-boot里面执行:nand erase 0 20000; ...
+ h1 A" w; H0 {
您好,
% ]0 g8 g. n- m2 c我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf
$ k8 j% @3 j6 r) T+ H请问这个是什么版本的?# ~; ^6 I: I1 G6 E- b; L( D9 ]4 p

+ E: D+ b) J7 M4 w& q另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?7 b0 A' L9 C5 j/ `; n- `+ Z; m4 O
我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
, k6 m5 ^5 h1 f: O; U) P
$ F# T/ B  e: W' W9 t) n还有就是想问一下这个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 ~( w- C' @& A" B6 }
! N) w" y6 c. R  x1 M9 p, m
问题有点多,希望大神好人做到底,多教教我,谢谢您!4 Y' b8 p7 z! S# `8 Q8 m
% W# j* M" _( r- ~
回复 支持 反对

使用道具 举报

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;  f( _4 R8 P; e, }

3 d; H3 E+ |4 p3 F5 C6 [# @' N可以根据环境的光线强度,修改摄像头的亮度参数:
  X/ Y( m- T$ X1 J: O* B0 y8 v& K" g, Troot@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode
4 k' _6 P; G- I( mroot@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode - L! m2 k" l% y$ b2 s
Cloudy
1 }- O. P$ \! j# h& y* Z7 M1 K9 z0 a: j4 \' L! A. m) F5 D
参数说明: # g  t4 t, g& n
light mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home : _) v1 F; c; O7 U

/ p5 ]5 C, o% D, f: n9 o如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c4 f1 z: x/ S2 g/ B, X% z3 Y
" b- K$ s+ F% L1 P
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 05:12 , Processed in 0.047688 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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