在imx6ull中加入ov5640模块

news2024/10/5 18:34:08

本来觉得是一件很简单的事情但是走了很多的弯路,记录一下调试过程。

  1. 先使用正点原子提供的出厂内核把摄像头影像调试出来,然后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原厂内核基础上进行的, 这是为了学习

  1. 查看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.

  1. 当然,仅仅配置那两项肯定是不行的,经过了几次尝试后后发现能让影像输出的配置如下。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. NXP原厂提供ov5640.c文件也需要替换成正点原子出厂的ov5640.c。不然影像花屏,无法辨认物体。替换后影像清楚很多可以辨认物体了。

  3. 重新使用正点原子手册《I.MX6U嵌入式Linux C应用编程指南V1.4.pdf》第三十四章 实战小项目之视频监控,把影响调试了出来。在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1295628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K8s 入门指南(一):单节点集群环境搭建

前言 官方文档&#xff1a;Kubernetes 文档 | Kubernetes 系统配置 CentOS 7.9&#xff08;2 核 2 G&#xff09; 本文为 k8s 入门指南专栏&#xff0c;将会使用 kubeadm 搭建单节点 k8s 集群&#xff0c;详细讲解环境搭建部署的细节&#xff0c;专栏后面章节会以实战代码介绍…

Verizon股票分析:Verizon股票现阶段值得买入吗?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 近年来&#xff0c;Verizon股票的投资表现令人失望 有些投资者可能不太了解Verizon(VZ)这家公司。猛兽财经在这里给大家简单介绍一下&#xff0c;Verizon是一家美国领先的电话和互联网服务提供商&#xff0c;目前拥有近1.4…

Shell数组函数:数组——数组和循环(三)

数组统计性别 一、定义性别文件 [root192 ~]# vim sex.txt jack m alice f tom m 二、定义脚本统计性别 [root192 ~]# vim sex.sh #!/bin/bash declare -A sex while read line dotypeecho $line | awk {print $2}let sex[$type] done < sex.txtfor i in ${!sex[]} doecho…

Python自动化测试中yaml文件读取操作

什么是yaml 一种标记语言。yaml 是专门用来写配置文件的语言&#xff0c;非常简洁和强大更直观&#xff0c;更方便&#xff0c;有点类似于json格式yaml文件格式&#xff1a;test.yaml 安装yaml 1 pip install pyyaml yaml基本语法规则 大小写敏感使用缩进表示层级关系缩进…

思维链(CoT)提出者 Jason Wei:关于大语言模型的六个直觉

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 Jason Wei 的主页&#xff1a;https://www.jasonwei.net/ Jason Wei&#xff0c;一位于 2020 年从达特茅斯学院毕业的杰出青年&#xff0c;随后加盟了…

Vue 子路由页面发消息给主路由页面 ,实现主页面显示子页面的信息

需求 子页面进入后&#xff0c;能在主页面显示子页的相关信息&#xff0c;比如说主页面的菜单激活的是哪个子页面的菜单项 如上图&#xff0c;当刷新浏览器页面时&#xff0c;让菜单的激活项仍保持在【最近浏览】。 实现方式&#xff1a; 在子页面的create事件中增加&#xff…

思伟老友记 | 晋江市尚亿建材实业有限公司携手思伟软件16年

晋江市尚亿建材实业有限公司 晋江市尚亿建材实业有限公司成立于2006年&#xff0c;建有两个混凝土搅拌站&#xff0c;是晋江市成立时间最长的搅拌站之一。目前拥有25部搅拌车&#xff0c;5部泵送车&#xff0c;3部装载机&#xff0c;混凝土年产量超过50万m。 思伟软件与尚亿公…

分布式系统CAP理论与BASE理论

CAP理论 Cap理论又被称作布鲁尔定理&#xff08;Brewers theorem&#xff09;&#xff0c;它指出对于一个分布式系统来说&#xff0c;不可能同时满足如下三点&#xff1a; 一致性&#xff08;Consistency&#xff09; 可用性&#xff08;Availability&#xff09; 分区容错性…

第二十一章网络通信

网络程序设计基础 局域网与互联网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机。如下图所示 网络协议 1.IP协议 IP是Internet Protocol的简称&#xff0c;是一种网络协议。Internet 网络采用的协议是TCP/IP协议&#xff0c;其全称是Transmission …

粤能环保亮相迪拜COP28,智能技术铸就运河城市可持续未来

在全球应对气候变化的重要会议——迪拜COP28大会上&#xff0c;运河城市面临的独特环境挑战引起了广泛关注。随着城市化进程的加快&#xff0c;运河城市在处理固体废物、减少温室气体排放以及维持水资源安全方面面临着严峻考验。智能垃圾分类作为应对这些挑战的有效途径&#x…

Efficient physics-informed neural networks using hash encoding

论文阅读&#xff1a;Efficient physics-informed neural networks using hash encoding Efficient physics-informed neural networks using hash encoding简介方法PINN哈希编码具有哈希编码的 PINN 实验Burgers 方程Helmholtz 方程N-S 方程训练效率对比 总结 Efficient physi…

将项目代码上传到github

文章目录 1. 上传步骤1.1. 设置保存项目代码的文件夹1.2. 打开git1.3. 连接到github仓库1.4. 将本地文件上传到github 附录. git 常用命令 摘要&#xff1a;该文章主要从上传代码步骤讲起&#xff0c;关于git下载和其环境配置没有涉及到。 1. 上传步骤 1.1. 设置保存项目代码…

Java-网络通信总结

文章目录 网络程序设计基础局域网与互联网 网络协议IP协议TCP/IP 协议端口域套接字 TCP 程序InterAddress 类ServerSocket 类 UDP 程序DatagramPacket 类DatagramSocket 类 网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。Java 已经将网络程序所需要的元素…

【Pyqt】QObject::connect: Cannot queue arguments of type ‘QTextCursor‘

问题说明 文本框接收到新的数据 不会自动滚动&#xff0c;并提示警告 QObject::connect: Cannot queue arguments of type ‘QTextCursor’ (Make sure ‘QTextCursor’ is registered using qRegisterMetaType().) 原因 线程回来的槽函数里面 调用了ui的代码 我们不能通过线程…

刚刚,深兰科技在国际顶级会议EMNLP竞赛中再夺两冠

12月6日至10日&#xff0c;自然语言处理领域的国际顶级会议EMNLP(自然语言处理中的经验方法会议)在新加坡召开&#xff0c;研究人员、学者和业界专业人士齐聚一堂&#xff0c;展示和讨论该领域的最新研究成果、进展和创新。 会上公布了各项任务竞赛的获奖名单&#xff0c;深兰科…

JumpServer初探

JumpServer资产&#xff0c;用户关系如图所示。 资产管理下有资产列表和系统用户&#xff0c;系统用户分为特权用户和普通用户。资产列表下管理的是服务器&#xff0c;而特权用户就是JumpServer用来登录服务器的账号&#xff0c;因此特权用户需要拥有较高的权限&#xff0c;比…

计算机基础知识67--BBS

迁移表格 # 以后你写的每个python项目&#xff0c;都必须有一个txt文件叫 requirements.txt,里面放了当前项目所有的依赖&#xff0c;别人拿到项目---》需要执行 pip install -r requirements.txt # 装好该项目所有依赖 django3.2.20 # 模块 pillow mysqlclient # 主体项目功…

C语言精选——选择题Day39

第一题 1. 有下面的定义&#xff0c;则 sizeof(s) 为多少&#xff1f; char *s "\ta\017bc"; A&#xff1a;9 B&#xff1a;5 C&#xff1a;6 D&#xff1a;7 答案及解析 C 本题涉及到了转义字符 \t 是水平制表符&#xff0c;算一个字节 \017 是表示八进制数&#…

【开放集检测OSR】open-set recognition(OSR)开集识别概念辨析

开放集学习 Openset Learning 主动学习 Active Learning 例外检测 Out-of-Distribution open-set recognition(OSR)开集识别 anomaly detection和outlier detection 文章目录 OOD检测OSR开放集识别OSR开放集识别在训练和测试阶段的数据集使用数据分布似然函数OSR开放集识别的特…

VMware安装OpenEuler(安装界面)

本文中使用的OpenEuler版本&#xff1a;22.03 LTS SP2 VMware&#xff1a;17.0.0 一、下载镜像 根据CPU和场景&#xff0c;按需下载 https://www.openeuler.org/zh/download/?versionopenEuler%2022.03%20LTS%20SP2 二、初始化VmWare 三、配置操作系统 四、安装操作系统 …