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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

TL2640-COMS摄像头测试 问题

[复制链接]

2

主题

10

帖子

109

积分

注册会员

Rank: 2

积分
109
跳转到指定楼层
楼主
发表于 2016-1-26 14:44:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位工程师,
: }+ d/ n2 x# Y. P    我在用TL138-EVM-A3开发板,摄像头为TL2640,在开发板快速体验中的 TL2640-COMS摄像头测试,不能实现,我用的Linux3.3内核,U-BOOT 环境变量也已经设置好了,在输入
  ]; ^' h, n2 V  R1 X9 e1 B"vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2" 命令后,出现如下错误提示:
& b- S# G- H% ?% jroot@tl:/home/ip_camera# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2! H5 i+ F4 S( M2 @) z
CAMERA capture6 X! s2 K9 \% E' M
input_device /dev/video0" q" J- o$ A* m
Camera-Camera
% G, b9 [* u' z) S% Yfmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)
* Y! L  \7 _) \8 n  sfmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)# u- {6 }5 z$ s3 f1 _9 P0 X
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)) H% T) k; ~4 g
capture_buff_info[0].length = 4147200; i7 Y+ h7 v5 i) o, n! I% {) T9 N; H
capture_buff_info[0].index = 0+ k9 D. ~0 j( h- @/ O
capture_buff_info[0].start = 0xb6bec000' H& }7 k  S4 k) _* I% e. j- \
capture_buff_info[1].length = 4147200
0 q" H# |7 x  T5 p7 q5 a" g6 ncapture_buff_info[1].index = 1  x7 j) W6 i- l. e
capture_buff_info[1].start = 0xb67f7000
( p0 \2 L  B& j" N; W0 L[   19.078114] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed/ l* V5 M) C6 x' A
Cannot mmap = 2 buffer' }! J# G/ u% e& N; I; m0 h; D
Error in opening capture device for channel 0
- G! U% r  t1 V2 P" m4 K+ h. f8 S

( r& `% a$ S0 a& ]% l我是按照开发板快速体验手册操作的,请帮我看看是哪里出了问题,谢谢!
! |! h0 F' z7 Y5 c" c! _
分享到:  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
' p1 g/ X' x" u& C' x您的还是默认的bufsize的,再检查一下配置吧
) M  l& \1 Q2 ^% ~
' j  [; D4 R1 b2 V' m' w1 ]' ^- `

2 g8 F4 h, R4 J看一下,我把环境变量打印出来了,这样配置是对的吗?
( ^1 B6 O# K: _; G+ x) x, y
2 x+ y" }  P0 ~- S1 R, ?- B  G
3 E8 n2 T/ H) j9 I& W  c4 a4 groot@tl:/home# ./vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 26 j/ ^" d% P; H; q/ T0 v5 M
CAMERA capture5 l/ X: }" z% {, e/ }
input_device /dev/video0
; z! c5 Z7 F5 A' Y' l/ NCamera-Camera* D# a8 [1 S1 x' h: [; [
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)/ \, V: k  L; J6 |3 N( E
fmt->fmt.pix.pixelformat(50424752),V4L2_PIX_FMT_YUV422P(50323234),V4L2_PIX_FMT_RGB565(50424752)& |% h$ `6 n& D/ l. P0 [, }
fmt->fmt.pix.bytesperline(1600),fmt->fmt.pix.sizeimage(960000)7 d. z4 M5 t( \; `( A# i+ b
capture_buff_info[0].length = 4147200* \; Z. I2 w1 s3 O7 a# ]3 Q
capture_buff_info[0].index = 0
  y, z2 e! u( c1 K8 V- ~capture_buff_info[0].start = 0xb6b40000* f; ^+ p) |) t# P
[   74.316779] vpif_mmap_loopb: page allocation failure: order:10, mode:0xd0
: r& z% a% {2 P- y0 c! w2 x2 |* I! ^[   74.323663] Backtrace: # k  ^5 [3 U9 U+ u! @) y: L* d
[   74.333553] [<c000c1a8>] (dump_backtrace+0x0/0x110) from [<c0408194>] (dump_stack+0x18/0x1c)
: e) W1 h4 O% A' ][   74.356223]  r6:00000000 r5:000000d0 r4:00000001 r3:20000093
1 r- ^8 m: R6 \* C  w; d4 t9 `" @[   74.362055] [<c040817c>] (dump_stack+0x0/0x1c) from [<c005dc50>] (warn_alloc_failed+0xf4/0x118)
& R% l( ~  N+ Y! L5 p. u4 [[   74.386451] [<c005db5c>] (warn_alloc_failed+0x0/0x118) from [<c0060764>] (__alloc_pages_nodemask+0x578/0x5d8)7 [4 z6 @) k0 T% v; y! I  n: t
[   74.406178]  r3:c71fbd1c r2:00000000+ Z# |% F2 _2 H: X8 `9 U" g
[   74.409822]  r7:c05bd478 r6:c71fa000 r5:0000000a r4:000000d0
! `) Y& @9 i1 {+ T  y[   74.415828] [<c00601ec>] (__alloc_pages_nodemask+0x0/0x5d8) from [<c000df0c>] (__dma_alloc+0xd8/0x2ec)
, Z$ j  _5 r+ b, o2 v: L7 k[   74.447742] [<c000de34>] (__dma_alloc+0x0/0x2ec) from [<c000e1b0>] (dma_alloc_coherent+0x5c/0x68)
5 }/ {3 R- [5 k7 v) m[   74.467181] [<c000e154>] (dma_alloc_coherent+0x0/0x68) from [<c02d5a20>] (__videobuf_mmap_mapper+0xa8/0x180): m0 H5 W& s9 K8 l5 c+ o) X
[   74.496167]  r7:c7182920 r6:c7ba8d90 r5:c71feee4 r4:c72b69a0# J8 V; O( X, d! }& S7 U6 ~
[   74.502044] [<c02d5978>] (__videobuf_mmap_mapper+0x0/0x180) from [<c02d36c4>] (videobuf_mmap_mapper+0xc0/0x110)
3 j) q4 R, h; i8 c- ^$ B[   74.527223]  r8:c708d300 r7:b674b000 r6:c72b69a0 r5:c72b69a0 r4:c7ba8d90: H9 D6 w4 j! T
[   74.534166] [<c02d3604>] (videobuf_mmap_mapper+0x0/0x110) from [<c02de0bc>] (vpif_mmap+0x40/0x50)
+ x/ z  D( o! U4 }[   74.556197]  r5:c7ba8c00 r4:c72b69a0
4 s; c' _7 z  _+ Q[   74.559945] [<c02de07c>] (vpif_mmap+0x0/0x50) from [<c02c55f4>] (v4l2_mmap+0x70/0x90)
1 x- f+ p" O2 ]. c3 T# j[   74.587055]  r5:c71fe580 r4:c79c2e00
- F+ z$ P" \6 B" t% V4 r  {[   74.590771] [<c02c5584>] (v4l2_mmap+0x0/0x90) from [<c007846c>] (mmap_region+0x268/0x4c0)' j  y: `- D9 Y: J: a+ g
[   74.616153]  r6:c71fe580 r5:000000ff r4:c72b69a0 r3:c02c5584
/ E6 S4 P  [9 x( W4 G1 R" w[   74.621976] [<c0078204>] (mmap_region+0x0/0x4c0) from [<c007897c>] (do_mmap_pgoff+0x2b8/0x318)
. `6 H# R, n! n: Q, F[   74.646297] [<c00786c4>] (do_mmap_pgoff+0x0/0x318) from [<c0078a74>] (sys_mmap_pgoff+0x98/0xd0)
1 e8 k, ^9 A, T2 S" p[   74.655109] [<c00789dc>] (sys_mmap_pgoff+0x0/0xd0) from [<c0009440>] (ret_fast_syscall+0x0/0x2c)
* M( j# a$ E% U5 n[   74.688020] Mem-info:
6 w# M; f6 D! C' M8 a$ R3 Y- \[   74.690383] DMA per-cpu:
! o; ~: G% i8 d( }# y4 K: j[   74.692955] CPU    0: hi:   18, btch:   3 usd:  17
) i" t7 [1 M+ _  p3 k[   74.700640] active_anon:3001 inactive_anon:46 isolated_anon:0
. @& [4 ?3 S' U$ x[   74.700664]  active_file:2684 inactive_file:6310 isolated_file:24
0 h0 s( _+ F5 S5 Y9 n[   74.700684]  unevictable:0 dirty:67 writeback:0 unstable:0
) N6 Q) o- L" k3 m5 F  E5 }[   74.700700]  free:7432 slab_reclaimable:505 slab_unreclaimable:739
/ V8 ~1 Z1 ]5 K8 b- U" L8 h[   74.700718]  mapped:2376 shmem:141 pagetables:143 bounce:0* m3 y$ m+ c' G2 h# 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; h7 y. z: x) V# f( z1 g
[   74.846179] lowmem_reserve[]: 0 0 0
1 ]# X# p! _# w; G( Q- b2 w+ N[   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
4 R; |8 q( Z# @6 C0 |) K. m[   74.871095] 5393 total pagecache pages
. N- T- j' P0 G/ ][   74.874878] 0 pages in swap cache
! }' q" D8 ~& o, O4 X" H[   74.896156] Swap cache stats: add 0, delete 0, find 0/0- K0 d6 V% E7 ^/ g
[   74.901444] Free swap  = 0kB
/ J, f: ^& I" C  _[   74.904346] Total swap = 0kB
6 Z) U  |  d  X[   74.946799] 49152 pages of RAM
1 }9 q5 I' I( H0 t+ v/ a$ N2 ][   74.949901] 25326 free pages
9 }5 ^1 b; N9 G. t: n. X[   74.952803] 3366 reserved pages% m# r+ b' [% f( c
[   74.966186] 2124 slab pages
6 v) ~- t9 g3 J0 [2 G/ q+ ][   74.969063] 7387 pages shared! }+ e: _6 a0 h4 Q2 C: O9 d/ g
[   74.972058] 0 pages swap cached
) ~1 |' b$ z( I2 \/ L4 f4 p[   74.975243] vpif_capture vpif_capture: dma_alloc_coherent size 4149248 failed
8 ]7 |/ V1 z# {' s+ xCannot mmap = 1 buffer1 t5 \0 t0 H6 m+ d# ~6 M2 j" R
Error in opening capture device for channel 0

7 \! L& ]# T: u( @6 ~) } / \- j+ a  C6 }, l1 x5 J

: Q! B* ~0 N1 w& k0 L这上面是新的错误提示,请再帮我看看是哪里出了问题,谢谢。( `* H0 O1 o" A7 ?) l

本帖子中包含更多资源

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

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:322 B" r9 U9 u: |7 U: ]3 k
还是没对的,直接按手册的步骤仔细对一下吧,改后应该是960000,您的还是4147200的 ...

$ t! e2 w6 ^0 m我改了的,你看我的printenv 里面,那里设置就是960000,我是按照手册的步骤做的。第一步,先修改U-BOOT里的环境变量,setenv optargs ${optargs} 'vpif_capture_format=RAW vpif_capture.ch0_bufsize=960000' 保存:saveenv。
% }- T, X* s% ]" R3 e第二步,执行vpif_mmap_loopback_sd -c 2 -d 0 -w 1 -m 2
( `. U0 p' m5 y, V: p# [' W( b% Y& Z& \0 b
我这应该没错吧,或者你给我说下正确的步骤,最好把所有要执行的命令也给我发一份过来,谢谢。
回复 支持 反对

使用道具 举报

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) R. F# i4 ^在内核里面可以查看u-boot真正传递到内核的参数:使用cat /proc/cmdline,看看设置的参数是否有正常传递给 ...

& o! `# w% l1 |, O% N谢谢您的回复,我查看了,确实没有把vpif_capture的参数传递进去,以下是cmdline里的参数:
# V1 S2 [; I5 Lroot@tl:~# cat /proc/cmdline 4 l; G, s* k& a+ g0 T
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

+ l4 G; Y. G' X2 N* v1 B; @1 ^ 1 U8 w- A# A. u8 x
我是按照手册上设置的环境变量,为什么没有成功传递进去呢?
* d4 P' t; k; k3 Q那我现在怎么才能把这个环境变量参数传递进去呢?望大神多指教!
, D+ f% Z" Z  S+ N9 Z$ k7 s 5 I$ F! [: ]% u$ a6 Y4 G) i7 R' c
以下是我内核的参数,是按照手册里制作的SD卡系统,希望对解决这个问题有所帮助9 |- a5 Z; ?) {, F0 @
root@tl:~# uname -a
; Y/ Z6 ]6 J* G' _Linux tl 3.3.0+ #1 g74e120f PREEMPT Fri Mar 13 00:15:15 HKT 2015 armv5tejl GNU/Linux
) D4 Z, Z1 @- P( j
1 s1 `) Y3 X  k
5 v! X3 j5 k: L# S% n

: K5 g5 X* F8 Z: P
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
8#
发表于 2016-2-1 10:12:10 | 只看该作者
第一步,确认你的u-boot版本是不是v1.5或以上版本;: t* A& `2 O$ ]$ z5 i- `0 l
第二步,可以在u-boot里面执行:nand erase 0 20000;擦除之前的环境变量;
/ ]! ^$ q3 r, J; L第三步,重启板子,然后再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
" |# m2 c( \5 A9 x第一步,确认你的u-boot版本是不是v1.5或以上版本;8 a6 J# s4 C; u5 T( L& Z& [
第二步,可以在u-boot里面执行:nand erase 0 20000; ...

, t' y1 y3 H- k" [) ~8 r您好,, c5 J7 |' h/ X8 U' c
我不知道怎么查看uboot版本号,百度了一下也没找到方法,这下面是uboot 启动后打印了参数:U-Boot 2012.04.01-00059-g7363edf
( _) O4 V# J* o2 s) e& s请问这个是什么版本的?
/ @, r, R: x% e' N: r  Y ' O4 w# |% {: @
另外,为按照您说的把环境全部擦了,然后从新写了一下,现在已经有图像了,但是非常的模糊,我这里也有C6748的核心板,我之前用C6748的调过(修改了ov2640的配置寄存器),很清晰,那我现在想把TL138上面的画面也调清晰一点,请问怎么弄呢?  \( n) D7 M1 @' W1 L
我看了vpif_mmap_loopback_sd.c的源码,感觉里面是按v4l2的框架写的,没有找到调节摄像头参数的函数,请问为怎么才可以自己去配置TL2640的参数呢?- N- A3 G& `* k. T6 W

4 E. b+ A9 m' C3 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 的?
8 w& k1 K" o/ Q: K. _* ]' e: ^2 w" o
" r, ?; @7 x9 f0 A7 {+ i7 ^问题有点多,希望大神好人做到底,多教教我,谢谢您!& m& t& K8 Q; ^" I6 Q
) ^) ?& |. @# [( G1 L0 d3 ^5 K& Q
回复 支持 反对

使用道具 举报

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;
1 }5 }  X3 y$ k9 H; T" Y0 [! X" G) ~
可以根据环境的光线强度,修改摄像头的亮度参数: 4 Y, q" d: \+ m  e6 @4 z
root@am180x-evm:~# echo "Cloudy" > /sys/module/ov2640/parameters/lightmode ; W+ l; b) u" h
root@am180x-evm:~# cat /sys/module/ov2640/parameters/lightmode - ?, q8 `1 b: H: d' H5 v
Cloudy
  n$ N# R4 b$ I
8 h! m% M/ L; z' Q, l( C# J7 A参数说明:
9 q! _' y, T4 F1 A1 n  Plight mode (default:Cloudy): Auto,Sunny,Cloudy,Office,Home : X9 h; k& t9 Z/ r# M

/ v2 ]: D( G7 O9 q如果要自己优化参数,需要修改ov2640的驱动程序:drivers/media/video/ov2640.c" E0 Z. R- {# c: f# o1 b8 {( B/ Q

* f0 u) _# f. Nvpif_mmap_loopback_sd.c可以像你那样编译,如果出错,可以通过错误提示判断具体是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 22:10 , Processed in 0.054335 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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