你好:
1: 我现在用的是EZSDK的代码,8168的板子。我把TVP5158的驱动写好后,该如何拿5158捕获的数据。
2: 是否可以使用V4L2的应用程序的写法(发IOCTL命令)来调用我的驱动。如果可以的话为什么在向设备节点发送streamon IOCTL命令是出现Backtrace。如下:
=============================================================
Capture Format:
================================————[ cut here ]————
WARNING: at kernel/softirq.c:159 local_bh_enable+0x54/0xc4()
Modules linked in: ti81xxvin at24cxx bufferclass_ti omaplfb pvrsrvkm ipv6 ti81xxhdmi ti81xxfb vpss syslink
Backtrace:[<c004acf8>] (dump_backtrace+0x0/0x110) from [<c0396f9c>] (dump_stack+0x18/0x1c)
r7:00000000 r6:c0075208 r5:c0460ee1 r4:0000009f
[<c0396f84>] (dump_stack+0x0/0x1c) from [<c006fc8c>] (warn_slowpath_common+0x54/0x6c)
[<c006fc38>] (warn_slowpath_common+0x0/0x6c) from [<c006fcc8>] (warn_slowpath_null+0x24/0x2c)
r9:c050fad0 r8:d308c780 r7:0000000d r6:d26a4c00 r5:c04ea698
r4:c053af40
[<c006fca4>] (warn_slowpath_null+0x0/0x2c) from [<c0075208>] (local_bh_enable+0x54/0xc4)
[<c00751b4>] (local_bh_enable+0x0/0xc4) from [<c0069b84>] (omap_mbox_msg_send+0xcc/0xdc)
r5:c04ea698 r4:00000000
[<c0069ab8>] (omap_mbox_msg_send+0x0/0xdc) from [<c02d7eb8>] (notify_shm_drv_send_event+0x1c8/0x208)
r5:00000001 r4:00000000
[<c02d7cf0>] (notify_shm_drv_send_event+0x0/0x208) from [<c02d5648>] (notify_send_event+0x114/0x26c)
[<c02d5534>] (notify_send_event+0x0/0x26c) from [<bf149a08>] (vps_fvid2_queue+0xe4/0x21c [vpss])
[<bf149924>] (vps_fvid2_queue+0x0/0x21c [vpss]) from [<bf152cfc>] (capture_queue+0x50/0x64 [vpss])
r8:bf21842c r7:60000013 r6:d2736d00 r5:00000000 r4:d1f0e800
[<bf152cac>] (capture_queue+0x0/0x64 [vpss]) from [<bf2171d4>] (ti81xxvin_buffer_queue+0x9c/0xe8 [ti81xxvin])
r5:d1fe7400 r4:d1f0e800
[<bf217138>] (ti81xxvin_buffer_queue+0x0/0xe8 [ti81xxvin]) from [<c02b7494>] (videobuf_streamon+0x80/0xd0)
r7:60000013 r6:d1fe75c4 r5:d1fe7504 r4:d2736d00
[<c02b7414>] (videobuf_streamon+0x0/0xd0) from [<bf216c4c>] (vidioc_streamon+0x244/0x400 [ti81xxvin])
r7:d1849600 r6:00000001 r5:d1fe7400 r4:d1fe7504
[<bf216a08>] (vidioc_streamon+0x0/0x400 [ti81xxvin]) from [<c02acd9c>] (__video_do_ioctl+0x1618/0x3f34)
r6:40045612 r5:00000000 r4:00000001
[<c02ab784>] (__video_do_ioctl+0x0/0x3f34) from [<c02ab574>] (__video_usercopy+0x2e4/0x428)
[<c02ab290>] (__video_usercopy+0x0/0x428) from [<c02ab6e8>] (video_ioctl2+0x30/0x38)
[<c02ab6b8>] (video_ioctl2+0x0/0x38) from [<c02aa728>] (v4l2_ioctl+0xe8/0x11c)
r5:d1849600 r4:d1f8cf00
[<c02aa640>] (v4l2_ioctl+0x0/0x11c) from [<c00d535c>] (vfs_ioctl+0x28/0x44)
r9:d1808000 r8:be9e6c38 r7:00000003 r6:00000003 r5:d1f8cf00
r4:00000000
[<c00d5334>] (vfs_ioctl+0x0/0x44) from [<c00d5a6c>] (do_vfs_ioctl+0x500/0x540)
[<c00d556c>] (do_vfs_ioctl+0x0/0x540) from [<c00d5b04>] (sys_ioctl+0x58/0x7c)
[<c00d5aac>] (sys_ioctl+0x0/0x7c) from [<c0046f40>] (ret_fast_syscall+0x0/0x30)
r8:c00470e8 r7:00000036 r6:00008530 r5:00000000 r4:00009868
—[ end trace 6f8c46d22a3e586a ]—
=============================
3: TI提供PSP有什么用。如何进行开发。是不是我以前在EZSDK里所写的驱动都不能用,必须放入PSP里。这个EZSDK代码和PSP的代码有什么区别。
谢谢!
Chris Meng:
你好,
就我的理解,EZSDK采集使用的是V4L2,而V4L2是不支持多路采集的。对于采集,Linux上的V4L2驱动最终是会调用M3上控制的HDVPSS驱动的。
PSP就是Linux的驱动。
建议使用DVR RDK,里面有TVP5158的支持。