OpenHarmony标准系统mipi摄像头适配

OpenHarmony标准系统mipi摄像头适配

本文档以rk3568为例,讲述如何在OpenHarmony 标准系统rk设备上适配mipi摄像头。

开发环境

  • OpenHarmony标准系统4.1r
  • rk3568设备
  • 摄像头ov5648,ov8858

文档约定:
4.1r_3568为OpenHarmony标准系统源码根目录

1.适配准备:得到一份完整的kernel代码

OpenHarmony标准系统4.1r使用的是kernel 5.10的内核,在此基线基础上,回合CVE补丁及OpenHarmony特性,作为OpenHarmony Common Kernel基线。针对不同的芯片,各厂商合入对应的板级驱动补丁,完成对OpenHarmony的基线适配。

image.png

首先得有一份完整的rk3568 kernel5.10代码。所以我们需要手动把4.1r_3568/kernel/linux/patches/linux-5.10/rk3568_patch/kernel.patch打进/4.1r_3568/kernel/linux/linux-5.10内核中

cd 4.1r_3568/kernel/linux/linux-5.10patch -p1 < /home/jiajiahao/OpenHarmony/4.1r_3568/kernel/linux/patches/linux-5.10/rk3568_patch/kernel.patch

2.然后注释掉/4.1r_3568/device/board/hihope/rk3568/kernel/build_kernel.sh中的patch -p1 < ${KERNEL_PATCH}

image.png

然后就可以在4.1r_3568/kernel/linux/linux-5.10中得到一份完整的rk3568 kernel 5.10代码,

2.DTS配置

本文档以触觉智能Purple Pi OH开源rk3566为例修改设备树源文件包含文件添加摄像头

  • 设备树相关的教程可以参考泰山派3566:https://wiki.lckfb.com/zh-hans/tspi-rk3566/project-case/fat-little-cell-phone/device-tree.html

查阅触觉智能Purple Pi OH开源rk3566的原理图

image.png

1.i2c4配置

image.png

2.mipi配置

image.png

3.isp配置

image.png

3.驱动添加

1.内核添加ov5648.c编译,4.1r_3568/kernel/linux/linux-5.10/drivers/media/i2c/ov5648.c

2.修改4.1r_3568/kernel/linux/linux-5.10/drivers/media/i2c/Makefile

obj-$(CONFIG_VIDEO_OV5648) += ov5648.o

3.修改4.1r_3568/kernel/linux/linux-5.10/drivers/media/i2c/Kconfig,添加OV5648配置

config VIDEO_OV5648tristate "OmniVision OV5648 sensor support"depends on I2C && VIDEO_V4L2depends on MEDIA_CAMERA_SUPPORThelpThis is a Video4Linux2 sensor driver for the OmniVisionOV5648 camera.To compile this driver as a module, choose M here: themodule will be called ov5648.

4.在4.1r_3568/kernel/linux/config/linux-5.10/rk3568/arch/arm64_defconfig中添加配置

CONFIG_VIDEO_OV5648=y

4.修改iq文件

需要添加ov5648的iq文件到OpenHarmony,修复画面的偏绿问题。有两种方法:

方法1:第一修改源码,随着固件编译,
修改device/soc/rockchip/rk3568/hardware/isp/etc/iqfil.json的内容为ov5648_LMM248_YXC-M804A2.json的内容。然后添加ov5648_LMM248_YXC-M804A2.json到/device/soc/rockchip/rk3568/hardware/isp/etc/iqfiles目录下,然后修改device/soc/rockchip/rk3568/hardware/isp/BUILD.gn,将文件随着固件打包。

image.png

方法2:直接推到板子上(测试的时候可以使用),烧录好固件后,进入板子,将板子的vendor/etc/iqfiles/iqfil.json内容替换为ov5648_LMM248_YXC-M804A2.json的内容

5.安装调试hap

安装调试用的摄像头hap,MultiMedia_api9.hap

  • https://gitee.com/openharmony/applications_app_samples/tree/master/code/Solutions/Media/MultiMedia

6.最后效果

image.png

参考文档

1.https://forums.openharmony.cn/forum.php?mod=viewthread&tid=617

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

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

相关文章

旺店通ERP集成用友U8(用友U8主供应链)

源系统成集云目标系统 用友U8介绍 用友U8是一套企业级的解决方案&#xff0c;可满足不同的制造、商务模式下&#xff0c;不同运营模式下的企业经营管理。它全面集成了财务、生产制造及供应链的成熟应用&#xff0c;并延伸客户管理至客户关系管理&#xff08;CRM&#xff09;&a…

[PTA]7-1 谁管谁叫爹

[PTA]7-1 谁管谁叫爹 输入格式&#xff1a; 输入第一行给出一个正整数 N&#xff08;≤100&#xff09;&#xff0c;为游戏的次数。以下 N 行&#xff0c;每行给出一对不超过 9 位数的正整数&#xff0c;对应 A 和 B 给出的原始数字。题目保证两个数字不相等。 输出格式&…

解决 Prettier ESLint 错误

解决 Prettier ESLint 错误 在 Vue.js 项目中使用 ESLint 和 Prettier 时&#xff0c;你可能会遇到类似以下的错误&#xff1a; frontend\src\views\dashboard\MobileConfigPanel.vue1:25 error Delete ␍ …

2024国庆节不容错过的好物分享,精选五款入手不亏的单品好物

国庆假期即将来临&#xff0c;这是一场属于“购物狂”的年度盛宴。每年这个时候&#xff0c;各大电商平台纷纷推出丰富的促销活动&#xff0c;吸引无数消费者踊跃参与。对于热衷于寻找优质商品的人来说&#xff0c;国庆节无疑是一个不容错过的机会&#xff0c;国庆好物应有尽有…

传统软件应用技术的价值转换率越来越低

为什么感觉到卷&#xff1f;可能的一个原因是大家都在进步&#xff0c;用户和竞争对手也在进步&#xff0c;而自己却没有进步&#xff0c;也谈不上思维模式的改变。 我们不谈理论、不谈理想、不谈市场环境不好&#xff0c;就谈与用户接触过程的案例&#xff0c;这是最有说服力的…

threejs加载高度图渲染点云,不支持tiff

问题点 使用的point来渲染高度图点云&#xff0c;大数据图片无效渲染点多&#xff08;可以通过八叉树过滤掉无效点增加效率&#xff0c;这个太复杂&#xff09;&#xff0c;但是胜在简单能用 效果图 code 代码可运行&#xff0c;无需npm <!DOCTYPE html> <html la…

网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据

在数据爬取领域&#xff0c;百度云盘作为国内领先的云存储服务平台&#xff0c;拥有海量的用户和数据资源。因此&#xff0c;对于技术开发者而言&#xff0c;如何高效、稳定地对百度云盘中的公开资源进行数据抓取成为了一个值得探讨的课题。本文将结合 PHP 的 set_time_limit()…

网络编程:掌握TCP Socket和UDP Socket

IP地址&#xff1a; 两台计算机通信&#xff0c;双方都必须有IP地址。 IPV4地址有32位&#xff0c;由四个8位二进制组成&#xff0c;因为不好记所以我们把二进制转化为十进制&#xff0c;比如192.168.0.20&#xff0c;这称为点分十进制。 IPV6有128位&#xff0c;由8个16位的…

Python精选200Tips:151-155

实战项目 P151--气象数据爬取技术栈:数据爬虫P152--求解数独问题技术栈:代码逻辑+回溯法P153--疾病传播模型的100天模拟技术栈:SIR 模型(易感-感染-恢复模型)P154--复杂函数的最值求解技术栈:粒子群优化算法P155-- 评论情感分析技术栈:snownlp和jieba的应用运行系统:ma…

Ubuntu 64系统信息查看

一、查看系统基本信息 uname -a 显示系统内核名称、主机名、内核版本号、发布日期等信息。 Linux ubuntu 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux 内核版本&#xff1a;这是一个基于 Linux 的 Ubuntu 系…

NC65使用UAP客开主子单据以及NC65常见的开发技术(超级详细附带图和源码)

NC65使用UAP客开主子单据以及NC65单据相关的开发技术&#xff08;超级详细附带图和源码&#xff09; 本篇主要讲述使用UAP开发工具客开主子单据包括&#xff1a;创建项目发布、创建发布元数据、生成主子单据、以及相关报错和打补丁。在单据相关技术主要包括&#xff1a;增加空按…

力扣 42.接雨水

文章目录 题目介绍解法 题目介绍 解法 法一&#xff1a;通过计算每个位置 i 能够捕获的雨水量&#xff0c;然后将他们相加。 具体做法是&#xff1a;创建两个数组&#xff1a;preMax 和 sufMax 分别用来存储每个位置左边和右边的最大高度&#xff0c;则每个位置 i 可以捕获的…

Snowflake的“AI + 数据” 模式,如何颠覆传统数据处理!

Snowflake的“AI 数据” 模式&#xff0c;如何颠覆传统数据处理&#xff01; 前言Snowflake的“AI 数据” 模式 前言 Snowflake是一种基于云的数据平台&#xff0c;拥有着强大的能力&#xff0c;能够帮助我们存储、管理和分析海量的数据&#xff0c;就像是我们的得力助手&am…

骨传导耳机哪个牌子好?盘点口碑最好的5款骨传导耳机!

在快节奏的现代生活中&#xff0c;耳机成为了我们与外界沟通的重要桥梁&#xff0c;无论是在通勤路上、健身锻炼&#xff0c;还是在工作学习中&#xff0c;耳机都扮演着不可或缺的角色。而在众多耳机类型中&#xff0c;骨传导耳机以其独特的声音传导方式和健康舒适的佩戴体验&a…

【Python报错已解决】 OSError: [Errno 22] Invalid argument

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

灯塔:JavaScript

Web标准也称为网页标准&#xff0c;由一系列的标准组成&#xff0c;大部分由W3C&#xff08;World Wide Web Consortium,万维网联盟&#xff09;负责制定。 三个组成部分&#xff1a; HTML&#xff1a;负责网页的基本结构&#xff08;页面元素和内容&#xff09;。 CSS&…

作品集生成链接或二维码:设计师求职

在竞争激烈的设计行业&#xff0c;如何让自己的作品集脱颖而出&#xff0c;成为打开理想职业大门的关键钥匙&#xff1f;今天&#xff0c;我们就来聊聊将作品集生成链接或二维码这一强大功能&#xff0c;它正逐渐成为设计师们求职申请和作品展示的新利器。 一、传统作品集的困境…

SwiftData 共享数据库在 App 中的改变无法被 Widgets 感知的原因和解决

0. 问题现象 我们 watchOS 中的 App 和 Widgets 共享同一个 SwiftData 底层数据库&#xff0c;但是在 App 中对数据库所做的更改并不能被 Widgets 所感知。换句话说&#xff0c;App 更新了数据但在 Widgets 中却看不到。 如上图所示&#xff1a;我们的 App 在切换至后台之前会…

Mysql事务相关

什么是事务 事务是指是程序中一系列严密的逻辑操作&#xff0c;而且所有操作必须全部成功完成&#xff0c;否则在每个操作中所作的所有更改都会被撤消。可以通俗理解为&#xff1a;就是把多件事情当做一件事情来处理&#xff0c;好比大家同在一条船上&#xff0c;要活一起活&a…

置换排列的数学表达与Benes网络

摘要 本文主要讨论如何使用Benes网络完成排列的置换操作&#xff0c;介绍Benes网络的构造&#xff0c;以及具体的路由方式。 置换排列 这里的排列指一个n个不同元素的序列&#xff0c;不同的顺序代表不同的排列。比如 [ 1 , 2 , 3 , 4 ] [1,2,3,4] [1,2,3,4]和 [ 2 , 1 , 4 …