【基于IMX6ULL开发板开机摄像头的自启动】

2023-05-16

项目场景:

这里简述项目相关背景:

最近在准备暑期实习和秋招,准备一个Camera项目,涉及调试内核、优化开机——从启动到获取第一帧图像的时间,硬件平台为正点原子IMX6ULL开发板,摄像头为OV5640,内核基于正点原子出厂linux源码,根文件系统暂时选择正点原子出厂文件系统


项目小目标

首先实现开发板开机摄像头的自启动,后续再进行内核调试,优化开机

实现步骤如下:

一、驱动模块
1、准备工具
2、设备树配置
3、源码拷贝
4、配置文件
5、编译生成驱动模块
二、板子应用程序
三、上机实验

以上具体移植模块步骤参考大佬博客:LittleBear-原子源码驱动ov5640


项目Bug

起初根据博客指引移植OV5640模块,在开发板上加载模块成功,但是使用正点原子摄像头应用编程项目代码生成的v4l2_camera可执行文件,执行./v4l2_camera /dev/video1后,程序异常返回:

ioctl error:  VIDIOV_S_FMT: invalid argument

原因分析

查资料后得知这个问题很多人遇到过,原因是采取的编码与设备的支持的编码不兼容,又从正点原子的用户快速体验文档中得知:在正点原子出厂内核 v1.6 版本之前(请在 1.2.2 小节查看出厂内核历
史版本,检查用户所处的固件版本)是不支持 RGB565 和 JPEG 采集的
,可在开发板文件系统中执行如下命令查看摄像头支持格式、分辨率及帧率

v4l2-ctl --device=/dev/video1 --list-formats-ext

笔者使用的是正点原子驱动教程使用的Linux源码,有没有可能这份内核并不支持RGB565格式呢,试试就逝世:果不其然,笔者敲下这行命令后,显示仅支持YUYV格式,而LCD显示好像是需要RGB格式的数据,这就涉及到YUYV格式和RGB格式的转换,在博客上找到了相关代码,对摄像头应用编程代码进行修改,但遗憾未成功,毕竟摄像头V4L2编程这块的知识还没去系统学习过,这个转换暂时搁置,后面再来解决,害

解决方案:

此路不通,换条路呗

换用正点原子资料包中的出厂源码,经查是V1.6版本之后的

重复上述移植模块步骤,编译出mx6s_capture和ov5640_camera两个驱动模块,并将出厂源码编译后的镜像和设备树通过tftp挂载,经测试成功显示出摄像头画面!

开机自动加载模块

摄像头驱动需要的两个模块mx6s_capture和ov5640_camera是以模块的形式存在,我们还需要配置启动文件来加载内核模块:启动文件一般位于/etc目录下,我的文件系统中内核模块配置文件存放在/etc/modprobe.d/中,进入文件夹,vi打开文件,添加mx6s_capture和ov5640_camera,保存退出即可,重启系统执行lsmod发现,摄像头模块已加载

开机启动摄像头画面获取

成功加载摄像头模块后还需要执行摄像头应用软件来调用摄像头提供的设备文件/dev/video1:同样是在/etc目录下,在/etc/rc.local文件中,添加可执行文件调用命令:添加后保存退出

cd xxx(摄像头程序所在目录)
./v4l2_camera /dev/video1

配置文件修改完后,执reboot命令重启系统,摄像头开机自启动成功!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【基于IMX6ULL开发板开机摄像头的自启动】 的相关文章

  • day 3

    用栈来做是最简便的 栈 stack 是一种数据结构 xff0c 遵循先进后出的原则 最常用的方法为stack pop弹出最顶部的元素并删除 stack peek弹出最顶部的元素查看 xff0c 但不删除 stack push 添加一个元素
  • java方向笔试强训day6

    分别使用字符串和数组的方式 xff0c 数组更简便一些 import java util Scanner public class test26 将字符串转化为数字 public static int function26 String s
  • equals和==的区别

    equals和 61 61 经常用来去比较两个值或者两个对象 61 61 如果只是用来比较基本数据类型常量 的话 xff0c 那么比较的就是两个常量的值 xff0c 如果用来去比较两个对象引用 xff0c 那么比较的是两个对象的地址 equ
  • java训练day 17 ①杨辉三角(二维数组)②二叉树的镜像(数据结构+递归)

    目录 杨辉三角 二叉树的镜像 杨辉三角 import java util public class Main public static void main String args Scanner scanner 61 new Scanne
  • Linux系统项目部署常见问题

    目录 进入数据库 修改数据库密码 未设置或忘记 部署操作 使用jar包部署和修改操作 使用war包部署 修改端口号 ssm项目打包war包可能遇到问题 进入数据库 没有设置数据库密码则使用 mysql uroot 设置了数据库密码则使用 m
  • 音乐web网站搭建思路

    目录 项目所涉及的页面及对应功能 项目设计思路 数据库设计 Http响应数据格式设计 页面各个功能的请求响应格式设计 1 登录功能 2 上传音乐功能 3 删除音乐功能 4 批量删除音乐 5 查询音乐信息 6 收藏音乐 取消收藏音乐 7 播放
  • 五子棋项目

    目录 核心技术 主要模块和功能 基本思路 注册 登录接口 具体实现 匹配功能接口 具体实现 用户对战接口 具体实现 项目源码Gitee地址 网页版五子棋的基本思路及实现 核心技术 Spring SpringBoot SpringMVCWeb
  • Redis笔记

    Redis 内容来自菜鸟教程 redis部分 REmote DIctionary Server Redis 是一个由 Salvatore Sanfilippo 写的 key value 存储系统 xff0c 是跨平台的非关系型数据库 Red
  • Jmeter接口测试实战练习题及答案(本博客原创·全网首发)

    接口地址 Post xff1a http 10 9 15 72 8093 Api PayGateway 接口参数 参数名 参数值 说明 SystemCode Alipay 系统代码 plateformCode Alipay 平台代码 ser
  • 《操作系统》-生产者消费者问题

    什么是生产者消费者问题 xff1f 系统中有一组生产者进程和一组消费者进程 生产者进程每次生产一个产品放入缓冲区 xff0c 消费者进程每次从缓冲区中取出一个进程并使用 xff0c 那么他们之间具有这样一层关系 生产者 消费者共享一个初始为
  • 普通类和抽象类的区别

    普通类和抽象类的区别 抽象类普通类普通类和抽象类的区别总结 抽象类 含有抽象方法的类就叫抽象类 而抽象方法就是被abstract修饰的方法 xff0c 这个方法可以没有具体的实现 在抽象类的子类中必须对抽象方法进行重写 xff0c 当其子类
  • PowerShell 安装、配置和美化

    文章目录 安装 Windows TerminalPowerShell 7安装 PowerShell 7查看版本Winget 安装安装 MSI 包 配置开启 PSReadLine 2 1 预测性 IntelliSense其他配置 美化手动安装
  • c++学习笔记(八)程序一闪而过怎么办?如何让命令提示符暂停?

    在使用控制台输出的时候 xff0c 你可能经常遇到还没有看清楚输出结果如何就自动退出的情景 这很令人头疼 xff0c 下面我就介绍几种方式避免控制台退出 当然你使用CLion可以不写 xff0c 节约时间 xff0c 但是也要知道 xff0
  • Zabbix 6.0 图文安装部署讲解---LNMP环境

    Zabbix 6 0 图文安装部署讲解 LNMP环境 简介环境需求部署环境关闭系统防火墙一 Mysql8 0 30 部署 二 nginx 部署三 PHP 部署四 zabbix server 部署五 Web端初始化六 解决zabbix 6 0
  • Hive 不同级别日志配置 hive-log4j2.properties

    span class token comment Licensed to the Apache Software Foundation ASF under one span span class token comment or more
  • 飞机订购票系统(数据库课程大作业)

    一 需求分析 nbsp 1 1 功能需求及描述 nbsp nbsp nbsp nbsp 通过对机票预定业务的调查 明确了飞机订购票系统共包括乘客信息模块 航班信息模块 机票订购模块 机票退票模块以及取票信息模块五个模块 图1 1 总体功能模
  • 本地与linux服务器文件互传(超简单)

    利用系统自带的命令行窗口powershell上传 xff08 win10以上系统自带的 xff0c 系统级应用 xff0c 十分推荐使用 xff09 在这Linux 用户名 xff1a hadoop ip 192 168 53 20 打开搜
  • 【剑指offer系列】剑指offer 03-06

    这次我们来讲解剑指offer的全部题目 xff0c 今天是第一天 xff0c 我们来讲解第三题到第六题 xff08 我也不清楚为什么力扣上查不到第一题和第二题 xff09 一 剑指offer 03 题目链接 xff1a 力扣 题目描述 xf
  • 什么是scrum中的3355

    scrum的3355是指 xff1a 3个工件 xff1a 产品Backlog Sprint Backlog 潜在可交付软件增量 3个角色 xff1a PO Master 团队 xff08 最适合人数为7 2到7 43 2之间 xff09
  • 搭建ant+jenkins+jmeter自动化接口测试框架(详细篇)

    引言 为什么要持续集成 1 减少风险 2 减少假定 3 减少重复过程 4 增强项目的可见性 5 持续集成可以带来两点积极效果 xff1a 1 有效决策 xff1a 持续集成系统为项目构建状态和品质指标提供了及时的信息 xff0c 有些持续集

随机推荐