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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,  [( z: o  n/ K6 b
    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入7 X) {7 |; X/ x9 v7 g6 _4 K
"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:! p: i! U: w/ ^
root@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
$ Q; J5 ?4 s# l/ ZCAMERA capture
# ?- V$ e: G" y# |input_device /dev/video0
$ U% [# ~. b) `Camera-Camera
% o7 }1 F1 z, E+ T( k4 {" l- Yfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)5 O+ D" V- I, N* M
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
* G1 i- D0 G. d# R* G3 Zfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)8 ~4 v- y: t$ J9 V
capture_buff_info[0].length = 4147200
5 W& Q9 J# ^/ e9 d1 u0 x" k6 ccapture_buff_info[0].index = 0
) Y9 [4 a5 L! o- R- d9 \1 Ycapture_buff_info[0].start = 0xb6bec000" {& G  V' w6 X  h4 T$ \) @
capture_buff_info[1].length = 4147200+ Y& Q: n, u" a$ l+ D
capture_buff_info[1].index = 1& e: P: u& H) t5 S; M* d
capture_buff_info[1].start = 0xb67f7000% o3 L. m, b: P
[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed9 Z3 M4 f6 l! Q0 f4 F
Cannot mmap = 2 buffer) Y  z: N8 x/ D  K- ~, E% c
Error in opening capture device for channel 0
3 t9 g5 C* c& o" m- a3 R9 G1 j
' X! I! x# _0 W" T6 c- l
我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!
2 c4 q9 d0 L) @0 K" Z3 n
分享到:  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
# [$ I/ R( Z) [6 c+ ^" U& v您的还是默认的bufsize的,再检查一下配置吧

3 Q, R$ u, G0 G: v9 H- D
! A/ N3 X, W$ A0 ?) a
/ ]+ o! V$ i1 T8 g3 `- p% Y看一下,我把环境变量打印出来了,这样配置是对的吗?( k" t  s( {: _) B4 G

5 k0 A0 o4 o3 D  i; D" @+ T, }- j' T  B7 A+ G7 T
root@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 21 `0 J! A8 `1 U( C
CAMERA capture- B3 E1 i: {5 ~( E5 C. c- ?( M
input_device /dev/video0# b3 d; a: r3 g/ r8 d# n) ?
Camera-Camera+ `0 R$ Z( A6 x
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)9 S9 Y% ~  h) t7 m
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)
  [! t& ]# S6 V. |- u/ P: Tfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)& F9 {4 F; B8 F
capture_buff_info[0].length = 4147200
  m& b: Z% e! F2 y9 d* [, X1 B; lcapture_buff_info[0].index = 0
% s! s$ Q) }- Z+ M! W$ B( wcapture_buff_info[0].start = 0xb6b40000
8 A6 \( |; N9 U1 O, h3 \0 h% \[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0) R( g, c7 t# ?4 b
[   74.323663] Backtrace:
9 K7 v% c( [) u- x5 P8 ~( J1 G3 k* ^[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)9 R* t* c( ?1 X6 z
[   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093
6 x, m6 T7 L% p4 g; }* `[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)3 ^0 W* O1 ?" I; b
[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)
& g+ Y. }  J* X$ @- Z; q  d[   74.406178]  r3:c71fbd1c r2:00000000
* n/ b* u2 M3 X* s& [+ \$ p& R, b[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d03 q7 l4 k' }3 a0 m" R. g
[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)
( `9 l3 f( W4 L1 j1 M6 z- i[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)# B4 m. n- t! E7 D0 O* y3 h
[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180)4 e; B. Q' M1 I
[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0
# S5 [/ R; v' u! f) m( E[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)
+ F* P) f% _  H$ v9 V6 s) s[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90
& P; P; R! s) \7 M! d* r' P- X[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)1 t4 x( m6 [; \7 O+ s. H7 a
[   74.556197]  r5:c7ba8c00 r4:c72b69a0
2 x. d. L; ]' _* W2 C2 w[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)
5 g+ A7 A" h6 f[   74.587055]  r5:c71fe580 r4:c79c2e007 [) r+ Q# ]5 v; Y3 _
[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)
* K# E7 L! o  ^8 ^4 Y[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584
+ |: m" H' `! r. x/ m, V* X[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)
. P7 }& X0 O/ t8 |5 s9 l[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)
) ?. m6 u8 M( e9 V) v[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c). i" M( Z# N& `: ?
[   74.688020] Mem-info:2 ^" t* a6 z' d# g. _
[   74.690383] DMA per-cpu:
9 U) O% ?5 o7 D7 V3 I7 @$ g8 a( m8 |[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17
- R- r1 f, o! T4 @/ e4 A  i[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0* J2 L. c' }5 x8 Q9 \1 v& H
[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24
' W1 ^4 e$ z* ~$ M8 U, V5 J3 s: l[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0
  Q- O# P. _* I' J5 l. g[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:7391 B+ n0 W! z9 c  N! R3 H) N/ m
[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0# V% y2 B! ]/ S/ j3 h9 F+ z7 e3 ~5 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
3 e" Z6 e* F+ s2 v$ J5 \  ~0 D[   74.846179] lowmem_reserve[]: 0 0 0
) H- G$ H1 X8 s0 c[   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
  N6 \% P" }/ O% j[   74.871095] 5393 total pagecache pages9 g* b4 W5 c  Q/ [
[   74.874878] 0 pages in swap cache
, z. e/ _8 A1 i9 p1 S[   74.896156] Swap cache stats: add 0, delete 0, find 0/0
, J# ^2 j3 X5 h- I. C# Z[   74.901444] Free swap  = 0kB
* }/ ]: m( S/ b3 J[   74.904346] Total swap = 0kB/ u" O2 h. j1 x
[   74.946799] 49152 pages of RAM
6 H; D$ o/ T5 S' q7 G+ D1 n6 `[   74.949901] 25326 free pages$ ?0 p2 M& A. \" s2 T7 c# ~* h  n
[   74.952803] 3366 reserved pages
  j: \# T* O  W  b" W& k# m& j; R[   74.966186] 2124 slab pages
* U. U8 p9 n+ r7 v" e[   74.969063] 7387 pages shared
5 S1 t+ `- r  r[   74.972058] 0 pages swap cached
$ q' m# Y0 F" m! J[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed3 I* v, D3 _& L8 I  t' @
Cannot mmap = 1 buffer. H8 c% Q5 |" a  u. b0 _) ]
Error in opening capture device for channel 0

/ i# c1 i7 t2 a
) A" X3 w' Q' f1 @' m2 H0 n6 {
( T3 N9 L2 }: C# m- U! ^这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。
7 a" B+ H7 w) y

本帖子中包含更多资源

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

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: r6 y. U4 P8 y% ^% T% E( ~7 P
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...
% b3 x  {& q, l7 c- _2 Z& u
我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。7 ~% n  F) v4 g. s' _6 v
第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
& G4 \/ g: d+ H8 g+ i# U  v" ]" q" Y' g, v6 P  a
我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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
" L* Y8 \6 \  u2 M0 P; B在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...

' \' q% D1 x" \, T谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
. U4 O% H& }+ k; o: [9 s7 W0 }0 ]. jroot@tl:~# cat /proc/cmdline 6 @! W6 [! F! F/ a- {, @0 m
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
" S: I4 h+ Q& n/ B% L6 z3 c

0 _- T- e9 j+ y' }5 H# r我是按照手册上设置的环境变量,为什么没有成功传递进去呢?6 j* J1 e3 D8 [& M1 f" D" |0 @
那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
  X" `  |% A2 _5 v+ s. r& A2 U/ X
8 a7 Q' Y3 Q' @" e  w: g  b2 p以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助! A: D! \% @5 e
root@tl:~# uname -a
/ O- [$ c0 G; J$ J8 B! I) D2 SLinux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
4 |6 b1 V9 E9 ]/ X. k, Q$ c4 j6 B: o

: Y' G8 l: K' e. o7 s2 X 0 o# z  L. B0 b4 i7 ?
5 {" D6 B. H9 Y5 Y
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;
' `: n$ I( u: d6 m5 S第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;
8 E* _3 K8 N8 Y9 k第三步,重启板子,然后再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
; G6 A9 x! D; l1 B+ a3 d# ^8 ]8 j第一步,确认你的u-boot版本是不是v1.5或以上版本;" K5 P) D* |- T3 n/ f
第二步,可以在u-boot里面执行:nand erase 0 20000; ...

% N8 ^' V6 J& R3 g您好,
9 D  l1 M$ r2 V, j) A  s我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf# G! n  Z: y: N
请问这个是什么版本的?) ^0 ]8 Q+ Z7 Z% Q

3 t  H0 L5 N8 v0 Y另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?
8 G; A/ E+ Y& h1 Z$ ?  `我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?
0 r& m" S  Y" I8 @0 i: u
4 b5 `' A. O0 `$ Y6 M0 I# B还有就是想问一下这个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 的?, F6 j2 A) Z5 Y+ m; L

) d3 k3 a7 ]9 a' L( y' [问题有点多,希望大神好人做到底,多教教我,谢谢您!/ U# t$ y/ m8 K2 H: H9 s4 ]

& p! U# L) Y8 u7 A
回复 支持 反对

使用道具 举报

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;
% {, }8 t! b& P+ @7 Z# o4 d, `+ D- `% q0 {
可以根据环境的光线强度,修改摄像头的亮度参数: ; o- E( p% Y& v  [$ Q; T# q/ E
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode
& y2 n) t' z& Q" Uroot@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode * l0 I5 \3 m$ M6 c
Cloudy
# d" g  ]5 r8 a) P& U' K" p9 y* Z
% k2 X' T6 f( {- R参数说明:
! y8 ]' l: w3 f$ Nlight mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home
0 E% w( V1 U- i- f
4 y' K* m9 f. D. o5 S# D如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c$ @& i% I' I/ Q

& c2 p; T0 A) w- c7 o* |vpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 14:46 , Processed in 0.047153 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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