沧州网站建设培训,wordpress维护费用,免费获取资源的公众号,wordpress意见反馈功能本来觉得是一件很简单的事情但是走了很多的弯路#xff0c;记录一下调试过程。
先使用正点原子提供的出厂内核把摄像头影像调试出来#xff0c;然后cat /dev/video1#xff0c;看一下video1牵扯到哪些模块#xff0c;可以看到需要ov5640_camera.ko和 mx6s_capture.ko这两个…本来觉得是一件很简单的事情但是走了很多的弯路记录一下调试过程。
先使用正点原子提供的出厂内核把摄像头影像调试出来然后cat /dev/video1看一下video1牵扯到哪些模块可以看到需要ov5640_camera.ko和 mx6s_capture.ko这两个模块。
rootATK-IMX6U:/mnt/mxc/subdev# cat /dev/video1 [ 234.765777] ------------[ cut here ]------------ [ 234.770851] WARNING: CPU: 0 PID: 1362 at drivers/media/v4l2-core/videobuf2-core.c:2822 __vb2_init_fileio0x124/0x31c() [ 234.783858] Modules linked in: ov5640_camera mx6s_capture icm20608(O) [ 234.791720] CPU: 0 PID: 1362 Comm: cat Tainted: G W O 4.1.15 #1 [ 234.798753] Hardware name: Freescale i.MX6 Ultralite (Device Tree) [ 234.805019] [80015dbc] (unwind_backtrace) from [80012748] (show_stack0x10/0x14) [ 234.812783] [80012748] (show_stack) from [8081e1ec] (dump_stack0x84/0xc4) [ 234.820061] [8081e1ec] (dump_stack) from [80036bc0] (warn_slowpath_common0x80/0xb0) [ 234.828196] [80036bc0] (warn_slowpath_common) from [80036c8c] (warn_slowpath_null0x1c/0x24) [ 234.837019] [80036c8c] (warn_slowpath_null) from [80549ac8] (__vb2_init_fileio0x124/0x31c) [ 234.845760] [80549ac8] (__vb2_init_fileio) from [8054a51c] (__vb2_perform_fileio0x498/0x5e4) [ 234.854685] [8054a51c] (__vb2_perform_fileio) from [8054a680] (vb2_read0x18/0x20) [ 234.862625] [8054a680] (vb2_read) from [7f004c70] (mx6s_csi_read0x4c/0x64 [mx6s_capture]) [ 234.871303] [7f004c70] (mx6s_csi_read [mx6s_capture]) from [80532818] (v4l2_read0x60/0x98) [ 234.880046] [80532818] (v4l2_read) from [800e9c90] (__vfs_read0x20/0xd4) [ 234.887220] [800e9c90] (__vfs_read) from [800ea428] (vfs_read0x7c/0x104) [ 234.894392] [800ea428] (vfs_read) from [800eacc8] (SyS_read0x44/0x9c) [ 234.901280] [800eacc8] (SyS_read) from [8000f480] (ret_fast_syscall0x0/0x3c) [ 234.915272] —[ end trace ed21faed4da06c6d ]—
以下调试都是在nxp原厂内核基础上进行的, 这是为了学习
查看ov5640_camera.ko和 mx6s_capture.ko相关的Makefile和config配置可见内核需要配置VIDEO_MXC_CSI_CAMERA和MXC_CAMERA_OV5640两个配置项。
Makefile: obj-$(CONFIG_VIDEO_MXC_CSI_CAMERA) mx6s_capture.o
ov5640_camera-objs : ov5640.o obj-$(CONFIG_MXC_CAMERA_OV5640) ov5640_camera.o
Kconfig: config VIDEO_MXC_CSI_CAMERA tristate “CSI camera support” depends on VIDEO_MXC_CAPTURE VIDEO_V4L2 —help— This is the video4linux2 capture driver based on CSI module.
config MXC_CAMERA_OV5640 tristate “OmniVision ov5640 camera support” depends on VIDEO_MXC_CAPTURE I2C —help— If you plan to use the ov5640 Camera with your MXC system, say Y here. 当然仅仅配置那两项肯定是不行的经过了几次尝试后后发现能让影像输出的配置如下。 NXP原厂提供ov5640.c文件也需要替换成正点原子出厂的ov5640.c。不然影像花屏无法辨认物体。替换后影像清楚很多可以辨认物体了。 重新使用正点原子手册《I.MX6U嵌入式Linux C应用编程指南V1.4.pdf》第三十四章 实战小项目之视频监控把影响调试了出来。