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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,
/ T5 C& o. z8 t# Y4 y    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入# y6 ]# I; j5 u- U
"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:- `+ z* ]) l- |, l/ G
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
# c. Z  {# o" @1 T5 l2 RCAMERA capture, o' ]( |7 N; o# {
input_device /dev/video0- _: G8 n, m! J; v- Q$ Q5 ~
Camera-Camera
  B& N6 b) n, U8 W) [7 \/ l* efmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)" T' J' O! W9 J8 i2 V2 @
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
# I7 V; |% B; }  W, Gfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
$ X5 b* Z4 b) R3 zcapture_buff_info[0].length = 4147200
: h8 Q# U9 j( h8 k* D  o) ecapture_buff_info[0].index = 0
, ^: b" s- F7 n/ lcapture_buff_info[0].start = 0xb6bec000! a) h  ^  Q- v: c/ s1 K  z1 u8 E3 [
capture_buff_info[1].length = 4147200
& ]; V2 ]8 I/ C8 u- Ccapture_buff_info[1].index = 1  c$ j0 O7 V/ ]- Q( Y
capture_buff_info[1].start = 0xb67f70007 E4 n5 B; {3 ^6 \- W$ }6 `: X/ J
[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
% E* f; M( G: |! B, r% C* ECannot mmap = 2 buffer
/ r: a- N* C& ~) M  X0 kError in opening capture device for channel 0
; J; a  n: Q  Z" {

* s; q) M' |: d+ X. |' \% p我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!  h! A" q: m* V4 `4 j2 y) U  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
" g1 q5 A- ?4 ^- |+ n! L您的还是默认的bufsize的,再检查一下配置吧

$ q2 X8 H( [5 C* t  B+ X  Q
  i0 V+ |3 O- b4 |0 i, f4 A: V: }* X* p
看一下,我把环境变量打印出来了,这样配置是对的吗?  x: r0 W, }/ W& |

# \. {) @. }; Z7 D1 }5 Z/ a
* Q; l4 X$ l. |/ Kroot@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 28 U0 z8 j; G2 G  |8 V) f
CAMERA capture# A; R, C  ]  q5 g, V
input_device /dev/video04 y$ P3 r- ^0 N( U
Camera-Camera4 y2 {- G9 X$ _8 o! a) L. W9 h
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)6 B; I1 R9 @5 A& |
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
/ I  z3 s5 c/ S+ kfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
2 x9 i& e5 t: z( p, Gcapture_buff_info[0].length = 4147200& D- b2 T9 k! o. P3 y+ |
capture_buff_info[0].index = 0% c" [0 U( J3 v; N( Z- J
capture_buff_info[0].start = 0xb6b40000# E+ R5 M7 e  C) S! V  h( @
[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0
' k3 Z) X3 n# U4 y/ d( F[   74.323663] Backtrace:
9 v/ _* R- B4 }6 m! S[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)
& Q* x) ~0 T9 t, h/ y; [  U$ m2 W[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093$ K3 G3 V0 }% M1 @- H
[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)% l+ f! i% A6 k" Y
[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)$ \6 u. C7 y0 R  O/ Q2 j2 A- k2 i: ]
[   74.406178]  r3:c71fbd1c r2:000000006 \* Y, v- h( Z' ], P8 p3 O% F
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0
3 M6 ?( d2 v" e/ `0 w$ r[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)  l: m$ g; N/ H7 Q% D
[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)& @; K* T# W" T/ z
[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)4 u  v  @* ^& _6 p" L3 U1 {: Z
[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0, g2 {4 i; q% V
[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)
9 A; z1 }+ |/ ]" N[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90' \2 g  w) z' ?8 j& I5 B
[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)
+ y( ?9 b0 c; Z[   74.556197]  r5:c7ba8c00 r4:c72b69a0
/ k: }6 L8 }# ^! ^& b' M9 Z[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)- e( \/ Y  W5 {  @
[   74.587055]  r5:c71fe580 r4:c79c2e00
* F# j! w+ d' @; z[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)
- y6 |/ Z: U' Z: J5 v  w[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c55842 ^' H1 b2 ~3 T  N2 p
[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)& `9 h; T9 K7 a0 M7 _
[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)
: t) d; E% P2 L: K8 D# K[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)7 z4 K( x9 j5 U( W( X) S6 R% j8 T
[   74.688020] Mem-info:
' Q0 {# @* r# l# ]3 }2 b% Z4 c' G[   74.690383] DMA per-cpu:) a7 {, S3 k( O# r8 Q: ]2 m8 n
[   74.692955] CPU    0: hi:   18, btch:   3 usd:  174 q* m  C  _9 i4 S. w  e+ P' N
[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0
' P+ h  J/ @( p4 {/ E" C$ F[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24
$ T" G+ n" z. q3 s9 a; x[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0, @8 o8 }8 }9 U& C6 R% J* E0 a$ {9 p& l
[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739' m+ L0 K4 a/ i* C6 Q8 r
[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:02 j% ?& G1 b: g- }
[   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" {% ^3 R1 h3 L' p9 p0 [
[   74.846179] lowmem_reserve[]: 0 0 0# Z4 p5 t5 @" p, h+ [
[   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 = 42616kB0 M/ l( l( h& Q: M+ g: d* l
[   74.871095] 5393 total pagecache pages
( x6 K. E/ X: ]( I# a' |[   74.874878] 0 pages in swap cache% @3 }5 ]  U7 d/ o3 V  c
[   74.896156] Swap cache stats: add 0, delete 0, find 0/0
3 I# Z6 s, X( f2 K) M+ X$ h[   74.901444] Free swap  = 0kB
* n& G8 O8 |6 D3 K' @$ @. Z/ M[   74.904346] Total swap = 0kB% B: w+ ^0 y9 Y
[   74.946799] 49152 pages of RAM% c  J% M; O% P& g
[   74.949901] 25326 free pages
/ R! y# ]$ V( b[   74.952803] 3366 reserved pages+ ~! i) ^* T& z7 b
[   74.966186] 2124 slab pages
" b/ q# a# P# a; N% r' j[   74.969063] 7387 pages shared' `- G( }) y" k" z' O5 }
[   74.972058] 0 pages swap cached, j! r. X" q; b$ s; ~
[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
- b$ F+ z/ j% ]+ [1 Q0 r" N. W$ UCannot mmap = 1 buffer5 H# q. x  B( G; ?
Error in opening capture device for channel 0
9 U' R) ?6 i: ]0 J
, [& Y& f9 b. e8 b$ K: s6 T; l7 H

/ G% Q; v/ p! F这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。
# n, @7 D8 w! ~4 }" h

本帖子中包含更多资源

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

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
/ k, l, g3 O: T9 f2 ]还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...

' T7 p: Z; g6 Y* b2 q4 J8 N3 b我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
; v& g1 @- H* U+ V第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
! H3 c6 D& P% a
" ~4 c8 O2 r  I* V& E; E, h3 Z我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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! W% Z# P+ f5 t0 p
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...

  i% S4 }) @2 [谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:  i, c. |$ t5 E. Z& e% S9 G; l; W
root@tl:~# cat /proc/cmdline & K2 E% L' F# Q" c8 @4 K
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

5 E% a% Y0 X  [4 A3 D$ L$ m
/ ~# N& m6 x: y9 M, z' ^  q4 V我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
) k7 @& h6 v, s( s) v那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!& p8 t1 U; z6 V, H* x' v8 {
* {# }) |7 j' G% \0 n
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助
- L" }# P/ Y! x) Vroot@tl:~# uname -a
- p4 _8 p* h+ M( S( e% ]0 ?Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
8 w# a: H1 o4 e- C

2 g& \1 }; ~: q' x
3 _& {- }: c( \+ A- A ' W" B2 ^7 B* G1 Q* R
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
9 c; E: `; g- H% A第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;5 z4 x. V2 u: k9 i" x* t2 D8 ^
第三步,重启板子,然后再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
( ?" m0 p' M: }. G( q" w! D第一步,确认你的u-boot版本是不是v1.5或以上版本;
/ W1 C0 I7 `4 i6 t2 L( l) @: o; U第二步,可以在u-boot里面执行:nand erase 0 20000; ...
+ u1 b8 ?' M  e, \4 ~
您好,
' a, R6 o2 i6 |0 N7 W我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf
0 j9 j" T6 T0 K) E0 `/ S7 s5 s请问这个是什么版本的?
$ x" t( c& W- F( ~- X9 D
) \7 V+ _3 _$ s" d) n# Z2 D9 o另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
' D( ]8 A. f; }# q5 x3 \8 R" M我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
7 m; o" ^9 o6 ?  V
6 ]; D$ X, v; N  d1 c还有就是想问一下这个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 ^6 f6 |; {$ j! ~/ N+ t7 q% l . p% {) k9 x: ^8 a* \
问题有点多,希望大神好人做到底,多教教我,谢谢您!
. w* N2 D. v0 p8 Y0 ^# [3 ?
& a- A3 z1 y6 e0 Y# O" U
回复 支持 反对

使用道具 举报

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;
+ [& M0 D4 |" F" R' M( J
! O! ~" R. \; F; v可以根据环境的光线强度,修改摄像头的亮度参数: 4 U, `, o. X- V$ ~' }
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode
, ]  G7 U7 ]2 P5 [0 Y1 E: hroot@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode
9 I7 H1 A: L; u8 JCloudy
! H$ ]; Z* a" J/ Q' ?# v5 y3 `$ ^; E; H* i# O7 Y
参数说明:
# x+ S5 }4 I+ @+ slight mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home ) [) v# o9 c. Q4 ^8 |  b; z
+ ]8 v* N" y4 ?* u# U) v7 {6 X( d- b
如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
9 a% A$ g: }' K5 z- y5 i, [/ ?) b6 r) g5 v4 v! U( v" D3 X
vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 03:56 , Processed in 0.046308 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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