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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,, R& F7 ]. ]5 \, m0 {/ R- f) B
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入
0 t3 `% m1 ^0 I- o4 l2 `; K" a( s"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:4 \! I$ s# ]& G8 J4 |2 V
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
- G  o" P2 H* P" ]/ l) FCAMERA capture
9 @$ J- T  k1 s' ^  E3 g) F- x7 q$ |. Binput_device /dev/video06 q" e: y1 k/ x+ n4 J5 h: p
Camera-Camera0 v! [6 x" G3 `, M7 P* _
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)" z; ]$ j2 r( ^; c+ |& v' O5 @
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)  V, {( U/ o  o3 t- A9 u6 ~
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
7 u( r0 J+ W! l  l" H$ z4 Ucapture_buff_info[0].length = 41472008 C# d5 B) {+ V0 X
capture_buff_info[0].index = 0
& D1 s. c0 k( V5 w2 R/ E4 wcapture_buff_info[0].start = 0xb6bec0001 r, P2 }3 Q' n
capture_buff_info[1].length = 4147200
4 m9 c0 p% D5 O, C. r2 \capture_buff_info[1].index = 1/ T( D, D  `% [0 f
capture_buff_info[1].start = 0xb67f7000
/ ]# v0 Y# G" }7 g5 i& }[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
/ p- L* R& h# Y9 OCannot mmap = 2 buffer2 n9 A6 ]& R- ~& U
Error in opening capture device for channel 0

" G3 Y7 O% t0 C2 U 8 P/ P/ U$ _& H8 ^: Y! t* L+ c) ]' w9 v
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!' _$ c* x7 r  Q  e1 y& m
分享到:  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:464 i$ V" L0 F' D
您的还是默认的bufsize的,再检查一下配置吧

5 y0 m& o$ E/ l9 @. |1 n8 V3 l$ z, k" Y0 c3 f
  K" J& G9 r9 O1 K3 Z% l* o
看一下,我把环境变量打印出来了,这样配置是对的吗?
8 U# |) I+ i5 Z1 S* M) R0 ?/ t" [
- j8 f! s( J) E  t+ ^5 }& h
) T. E1 E' ]6 p8 h) froot@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
" @- ]' V2 z7 S) K' UCAMERA capture
9 c7 X; q3 h" W5 p( g  a5 w% Iinput_device /dev/video0
* o( y+ t6 [$ t# Q2 w" ?Camera-Camera; G- E: C( e' g8 n& z
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)6 K8 F" J: ]6 ]3 @
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
. L8 O  q9 ]2 Efmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
7 u0 t! V7 u4 V& u8 Ccapture_buff_info[0].length = 4147200
+ ?! n: d6 H. s, ?' E  [: mcapture_buff_info[0].index = 0
0 P: L6 y$ ?$ W+ a  w  [capture_buff_info[0].start = 0xb6b40000
6 C4 H& U% f/ V1 M0 y[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0) x% V7 g8 X  r' d' L4 L
[   74.323663] Backtrace: * e  \; y4 U  P* {6 e( N4 ?
[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)# M6 U! K6 i1 `" [
[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093' }/ I3 Q$ P% J/ |
[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)
; t6 I' c1 ?9 X' r7 f[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8): E! ?" @  F( j& \* H: q2 H
[   74.406178]  r3:c71fbd1c r2:00000000/ p# J& L& V  q! V* n9 U
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0" e3 t; C  s9 _3 H
[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)' }+ k. |) \) L( a# e
[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)# J$ w/ f7 i& l
[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)) x/ L; `+ G! Y# ~% x
[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0
' D; U7 m- Q" u7 M& o[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)1 q" n2 K; }& j
[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90
/ f% G: z$ M) J3 X% E$ j* n1 |: n) M[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)7 T; N1 T+ r. Q6 V
[   74.556197]  r5:c7ba8c00 r4:c72b69a0' ?3 F) i7 \0 L: T3 W% x
[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)/ ?8 b7 D; z6 z& }. u. I4 G
[   74.587055]  r5:c71fe580 r4:c79c2e001 I3 C$ x. n+ |3 C8 n
[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)
" v3 K! z! |9 u" W" C  M( @5 k; D[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584
4 o9 Z. K: N& w4 j$ @[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318): X- o/ X& I( P
[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)9 L' x- g- a; q: U: d2 f
[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c), M4 N& W7 ~+ P2 C! `! x
[   74.688020] Mem-info:* f+ l/ K2 y2 J
[   74.690383] DMA per-cpu:
) V5 Z* T7 c! s7 Q% G4 ~% h[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17
' f  Z) R' a$ B0 A' b9 ]6 l[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0" ~' U  n/ @: {/ {
[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24. z3 o& P# J$ r' U
[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0
$ C* \: v8 |7 M% n  `5 P) o8 v[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739
1 m7 _* f0 f# m5 [) ^  ^0 S[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0
+ t* |# g# ^( q4 r( S[   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
+ \) t* y2 _" v4 }: s* v% E0 G[   74.846179] lowmem_reserve[]: 0 0 0
' k' z- z0 @4 ^: B$ L  O! Y  y  q[   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& N0 W2 r& P# ]  a
[   74.871095] 5393 total pagecache pages4 {2 d* F/ a, F# T! F/ m0 [3 c/ I' n
[   74.874878] 0 pages in swap cache
! Z# S5 X4 W* ^( Z[   74.896156] Swap cache stats: add 0, delete 0, find 0/0
) f6 }, S- k' S' W; f# _[   74.901444] Free swap  = 0kB
6 Y  F1 ]  A4 B5 a% Q[   74.904346] Total swap = 0kB
' [1 h7 K0 l/ h3 P; @+ c* [+ `. A; e[   74.946799] 49152 pages of RAM
3 E( ?  N" U! \: e2 d, u6 a[   74.949901] 25326 free pages9 T& }! v' b1 \0 R" n
[   74.952803] 3366 reserved pages
+ Z# u7 t6 M1 t; h[   74.966186] 2124 slab pages
  {+ \. U1 H4 V4 Q[   74.969063] 7387 pages shared
) q/ E1 w) v2 L3 r: [: A2 L[   74.972058] 0 pages swap cached1 y( T: J7 V1 Q& \- Q
[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed* S  L  I0 p4 F! d! [
Cannot mmap = 1 buffer
7 G0 |7 L$ P0 b: QError in opening capture device for channel 0
% f# U' ?/ M1 b+ o2 P  `

) }; \" E4 k. O- B2 ]- P" K
! E- X% X" |& E9 C+ ~7 C% ^- c+ D这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。' o% t% }" b- t4 A2 y  b

本帖子中包含更多资源

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

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
9 U9 t) I- k( P% Z还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
, ?7 b  m5 e4 U2 A+ ^- I3 @
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。& m' K6 P' y2 J6 [+ ^0 t5 c; A3 n
第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2. J7 k7 z9 P7 `& z7 _9 h

' P1 z. `6 p% w# P" H" i我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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# f' w8 h% p% Q* s7 V9 c; y
在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...
* z% N; [: E- u" J4 O( X
谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
& S1 b1 X, [- r0 ]( Uroot@tl:~# cat /proc/cmdline
# e3 w/ G5 U8 I! n& H. jmem=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

. D; b: E1 [& ]3 r1 K( z' e 3 l# I/ o* l0 O2 y
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
- o) i( d% a$ }6 t5 j2 b那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
; i. g8 D' Y" \* B9 z: w : A: Z3 G9 C/ P
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助) o1 v0 c6 J5 _" [0 J  I- L
root@tl:~# uname -a( S2 h% i' a: o0 |! V1 f5 L, {4 B
Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
2 j" F- O1 l: T4 r6 c  _1 E
$ s& M1 d. N5 V

" _- S7 i5 M0 F+ B, S/ _3 X* e
* x" u! r5 S# y' w
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
+ [$ R, Z' a8 u$ A第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;
3 K8 r# p, x/ p9 |3 B* a第三步,重启板子,然后再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 d& y; e. B" N% r' O6 o$ k7 H第一步,确认你的u-boot版本是不是v1.5或以上版本;3 f% }$ i6 K+ X5 F: j2 Y4 r
第二步,可以在u-boot里面执行:nand erase 0 20000; ...
0 b( w5 a( A) U7 @" T" U  \
您好,- \9 T, @; {2 e7 }' K8 Y0 l
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf
, f* B. `5 E. h5 y% @请问这个是什么版本的?7 p( R) m4 K5 j8 D3 Y3 K
# r6 W1 T) q( ?, g  c" T
另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
" J2 N6 d0 ], d我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
4 f2 c5 z& N; ]( O) ~
8 N8 K. @. }- |! r1 M7 Y% F还有就是想问一下这个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 的?, [3 Z6 l( Y' K8 q5 g& q$ }
6 ~8 w3 c9 F+ l: `8 p8 y* W0 q
问题有点多,希望大神好人做到底,多教教我,谢谢您!
/ t6 ~$ M" E  j
, ^+ q# q1 J2 X1 q3 k( C+ n1 g
回复 支持 反对

使用道具 举报

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;
' B9 ?( a/ k: S1 w, ]
. a9 I, ^' Y  S# b( R8 V: f可以根据环境的光线强度,修改摄像头的亮度参数:
# E2 r5 I* w3 droot@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode
+ Z. s% c+ q, d+ S8 `9 Lroot@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode : }$ v5 y( H% d5 O( I8 Z% j
Cloudy
6 M9 O  ^2 I- j$ }+ `. X/ P  |2 s% \9 k
参数说明:
5 Y7 M2 C' o, y( H9 z9 E- L& Q/ Llight mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home 6 y; H3 j' y- @

) ]$ v. W) h7 M( h( ?如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c
5 N* V8 {$ v6 c8 S. J
, x) r+ F, y; wvpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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