在imx6ull中加入ov5640模块
本来觉得是一件很简单的事情但是走了很多的弯路,记录一下调试过程。
- 先使用正点原子提供的出厂内核把摄像头影像调试出来,然后cat /dev/video1,看一下video1牵扯到哪些模块,可以看到需要ov5640_camera.ko和 mx6s_capture.ko这两个模块。
root@ATK-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_fileio+0x124/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_stack+0x10/0x14)
[ 234.812783] [<80012748>] (show_stack) from [<8081e1ec>] (dump_stack+0x84/0xc4)
[ 234.820061] [<8081e1ec>] (dump_stack) from [<80036bc0>] (warn_slowpath_common+0x80/0xb0)
[ 234.828196] [<80036bc0>] (warn_slowpath_common) from [<80036c8c>] (warn_slowpath_null+0x1c/0x24)
[ 234.837019] [<80036c8c>] (warn_slowpath_null) from [<80549ac8>] (__vb2_init_fileio+0x124/0x31c)
[ 234.845760] [<80549ac8>] (__vb2_init_fileio) from [<8054a51c>] (__vb2_perform_fileio+0x498/0x5e4)
[ 234.854685] [<8054a51c>] (__vb2_perform_fileio) from [<8054a680>] (vb2_read+0x18/0x20)
[ 234.862625] [<8054a680>] (vb2_read) from [<7f004c70>] (mx6s_csi_read+0x4c/0x64 [mx6s_capture])
[ 234.871303] [<7f004c70>] (mx6s_csi_read [mx6s_capture]) from [<80532818>] (v4l2_read+0x60/0x98)
[ 234.880046] [<80532818>] (v4l2_read) from [<800e9c90>] (__vfs_read+0x20/0xd4)
[ 234.887220] [<800e9c90>] (__vfs_read) from [<800ea428>] (vfs_read+0x7c/0x104)
[ 234.894392] [<800ea428>] (vfs_read) from [<800eacc8>] (SyS_read+0x44/0x9c)
[ 234.901280] [<800eacc8>] (SyS_read) from [<8000f480>] (ret_fast_syscall+0x0/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》第三十四章 实战小项目之视频监控,把影响调试了出来。

相关文章:
在imx6ull中加入ov5640模块
本来觉得是一件很简单的事情但是走了很多的弯路,记录一下调试过程。 先使用正点原子提供的出厂内核把摄像头影像调试出来,然后cat /dev/video1,看一下video1牵扯到哪些模块,可以看到需要ov5640_camera.ko和 mx6s_capture.ko这两个…...
Kafka中的auto-offset-reset配置
Kafka这个服务在启动时会依赖于Zookeeper,Kafka相关的部分数据也会存储在Zookeeper中。如果kafka或者Zookeeper中存在脏数据的话(即错误数据),这个时候虽然生产者可以正常生产消息,但是消费者会出现无法正常消费消息的…...
TCP/IP_整理起因
先分享一个初级的问题;有个客户现场,终端设备使用客户网络更新很慢,使用手机热点更新速度符合预期;网络部署情况如下: 前期花费了很大的精力进行问题排查对比,怀疑是客户网络问题(其他的客户现…...
CG-0A 电子水尺水导电测量原理应用于道路积水监测
CG-0A 电子水尺水导电测量原理应用于道路积水监测产品概述 本产品是一种采用微处理器芯片为控制器,内置通讯电路的数字式水位传感器,具备高的可靠性及抗干扰性能。适用于江、河、湖、水库及蓄水池、水渠等处的水位测量使用。 本产品采用了生产工艺技术…...
openEuler JDK21 部署 Zookeeper 集群
zookeeper-jdk21 操作系统:openEuler JDK:21 主机名IP地址spark01192.168.171.101spark02192.168.171.102spark03192.168.171.103 安装 1. 升级内核和软件 yum -y update2. 安装常用软件 yum -y install gcc gcc-c autoconf automake cmake make \zl…...
前端——html拖拽原理
文章目录 ⭐前言⭐draggable属性💖 api💖 单向拖动示例💖 双向拖动示例 ⭐总结⭐结束 ⭐前言 大家好,我是yma16,本文分享关于 前端——html拖拽原理。 vue3系列相关文章: vue3 fastapi 实现选择目录所有文…...
JVM 执行引擎篇
机器码、指令、汇编语言 机器码 各种用二进制编码方式表示的指令,叫做机器指令码。开始,人们就用它采编写程序,这就是机器语言。机器语言虽然能够被计算机理解和接受,但和人们的语言差别太大,不易被人们理解和记忆&a…...
js中数组对象去重的方法
前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 最近工作中需要用到数组对象去重的方法,我是怎么想也没想出来,今天稍微研究了一下,总算找到了2种方法。分享一下&…...
【送书活动四期】被GitHub 要求强制开启 2FA 双重身份验证,我该怎么办?
记得是因为fork了OpenZeppelin/openzeppelin-contracts的项目,之后就被GitHub 要求强制开启 2FA 双重身份验证了,一拖再拖,再过几天帐户操作将受到限制了,只能去搞一下了 目录 2FA是什么为什么要开启 2FA 验证GitHub 欲在整个平台…...
GO设计模式——13、享元模式(结构型)
目录 享元模式(Flyweight Pattern) 享元模式的核心角色: 优缺点 使用场景 注意事项 代码实现 享元模式(Flyweight Pattern) 享元模式(Flyweight Pattern)它通过共享对象来减少内存使用和提…...
Linux 网络协议
1 网络基础 1.1 网络概念 网络是一组计算机或者网络设备通过有形的线缆或者无形的媒介如无线,连接起来,按照一定的规则,进行通讯的集合( 缺一不可 )。 5G的来临以及IPv6的不断普及,能够进行联网的设备将会是越来越多(…...
【C语言】7-32 刮刮彩票 分数 20
7-32 刮刮彩票 分数 20 全屏浏览题目 切换布局 作者 DAI, Longao 单位 杭州百腾教育科技有限公司 “刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示: 每次游戏玩家会拿到一张彩票,上面会有 9 个数字,分别为数字 1 到数字 9…...
交叉验证以及scikit-learn实现
交叉验证 交叉验证既可以解决数据集的数据量不够大问题,也可以解决参数调优的问题。 主要有三种方式: 简单交叉验证(HoldOut检验)、k折交叉验证(k-fold交叉验证)、自助法。 本文仅针对k折交叉验证做详细解…...
css实现头部占一定高度,内容区占剩余高度可滚动
上下布局: <div class"container"><header class"header">头部内容</header><div class"content">内容区域</div> </div>.container {display: flex;flex-direction: column;height: 100vh; /*…...
redis主从复制模式和哨兵机制
目录 第一章、主从复制模式1.1)Redis 主从复制模式介绍1.2)Redis 主从复制实现、 第二章、哨兵机制2.1)容灾处理之哨兵2.2)Sentinel 配置 第一章、主从复制模式 1.1)Redis 主从复制模式介绍 ①单点故障:数…...
WebStorm:Mac/Win上强大的JavaScript开发工具
WebStorm是JetBrains公司开发的针对Mac和Windows系统的JavaScript开发工具。它为开发者提供了一站式的代码编辑、调试、测试和版本控制等功能,帮助你更高效地进行Web开发。新版本的WebStorm 2023在性能和用户体验方面都做出了重大改进,让你的JavaScript开…...
传世SUN引擎如何安装
大家在搭建的时候一定要理清思路一步一步来,否则一步错步步错。下面跟大家说一下搭建的顺序以及细节。 第一步:首先下载DBC2000进行安装,并按照里面的说明设置好。1、请把压缩包释放到D:\QMirServer目录下。2、在控制面板里找到BDC Administ…...
vue 生命周期
什么是生命周期,有什么作用 定义:vue 实例从创建到销毁的过程,在某个特定的位置会触发一个回调函数 作用:供开发者在生命周期的特定阶段执行相关的操作 生命周期分别有几个阶段 有四个阶段,每个阶段有两个钩子&…...
多开工具对应用程序性能的影响与优化
多开工具对应用程序性能的影响与优化 摘要: 随着计算机技术的不断发展,多开工具逐渐成为一种常见的软件应用。然而,使用多开工具可能会对应用程序的性能产生一定的影响。本文将探讨多开工具对应用程序性能的影响,并提供一些优化方…...
G1 GC基本逻辑
1 MixedGC基本过程 在G1GC中,有两种主要的垃圾回收过程:Young GC和Mixed GC。这两者都是为了回收堆内存中的垃圾对象,但是他们关注的区域和工作方式有所不同。 Young GC: Young GC主要负责回收Young Generation(包括…...
Zemax新手避坑指南:从零开始搞定一个F/4的单透镜设计(附完整操作截图)
Zemax光学设计实战:F/4单透镜从入门到精通的完整避坑手册 刚接触Zemax的光学设计新手,面对复杂的界面和繁多的参数设置,往往会感到无从下手。本文将以一个具体的F/4单透镜设计任务为例,手把手带你完成从零开始的设计流程ÿ…...
数据标注公司怎么选?从百度、阿里到龙猫、倍赛,聊聊2024年不同类型平台的合作门道
2024年数据标注平台合作指南:如何根据团队基因选择最优赛道 数据标注行业正在经历一场静默的革命。从传统的人工密集型标注到AI辅助的半自动化流程,从单一文本标注到多模态数据清洗,这个曾经被视为"AI流水线工人"的行业,…...
OpenClaw技能组合:GLM-4.7-Flash多功能集成方案
OpenClaw技能组合:GLM-4.7-Flash多功能集成方案 1. 为什么需要技能组合? 去年冬天,我接手了一个内容运营的兼职项目,需要每周整理行业动态、生成分析报告并发布到三个不同平台。最初我尝试手动操作,但很快发现这种重…...
LSM303DLHC六轴IMU硬件设计与磁场校准实战指南
1. LSM303DLHC 器件概述与工程定位LSM303DLHC 是意法半导体(STMicroelectronics)推出的一款高集成度、低功耗的六轴惯性测量单元(6-DoF IMU),由独立封装的三轴加速度计(LIS3DH 兼容架构)和三轴磁…...
想实现SpringCloud的负载均衡,需要实现哪些接口和规范
前几天有个大兄弟问了我一个问题,注册中心要集成SpringCloud,想实现SpringCloud的负载均衡,需要实现哪些接口和规范。既然这个兄弟问到我了,而我又刚好知道,这不得好好写一篇文章来回答这个问题,虽然在后面…...
别再被NFS的‘非法端口’拦住了!手把手教你用insecure选项解决mount.nfs: access denied
突破NFS端口限制:深入解析insecure选项的实战应用 上周在调试一个嵌入式开发环境时,遇到了一个典型的NFS挂载问题。当我在VirtualBox虚拟机中尝试挂载物理机上的NFS共享目录时,终端突然弹出mount.nfs: access denied by server while mountin…...
别再为HackBar许可证发愁了!手把手教你用Burp Suite社区版完成同类测试
从HackBar到Burp Suite:安全测试工具的高效迁移指南 在Web安全测试领域,工具的选择往往决定了工作效率的上限。许多初级安全研究人员习惯使用HackBar这类轻量级浏览器插件进行快速测试,但当遇到功能限制或商业授权问题时,往往会陷…...
2026 年 OpenClaw 生态选型指南:从「红色龙虾」到国产「小龙虾」
2026 年初,一只名为 OpenClaw 的「红色龙虾」长期占据 GitHub 热度前列,星标在公开页面上已达到 三十万量级(具体数字每日波动)。业界常把它描述为 AI 从「只会聊」走向「能替你办事」的一块试金石:不是多一个聊天窗口…...
Qwen3-TTS-Tokenizer-12Hz实操手册:音频峰值检测与动态范围压缩联动
Qwen3-TTS-Tokenizer-12Hz实操手册:音频峰值检测与动态范围压缩联动 1. 引言:音频处理的关键挑战 音频处理中经常遇到两个棘手问题:一是音频信号动态范围过大导致某些部分听不清,二是峰值过高造成失真。传统方法需要分别处理这两…...
TinySAM完整指南:如何在5分钟内实现高效图像分割
TinySAM完整指南:如何在5分钟内实现高效图像分割 【免费下载链接】TinySAM 项目地址: https://gitcode.com/gh_mirrors/ti/TinySAM TinySAM是一款革命性的轻量化"分割任何物体"模型,它通过知识蒸馏和量化技术,在保持强大零…...
