OpenHarmony标准系统mipi摄像头适配

news2024/9/20 6:43:05

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.10

patch -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_OV5648
    tristate "OmniVision OV5648 sensor support"
    depends on I2C && VIDEO_V4L2
    depends on MEDIA_CAMERA_SUPPORT
    help
      This is a Video4Linux2 sensor driver for the OmniVision
      OV5648 camera.

      To compile this driver as a module, choose M here: the
      module 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.coloradmin.cn/o/2148281.html

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

相关文章

苹果CMS插件:优化蜘蛛访问内容,提升百度收录率

确保蜘蛛抓取原始内容 专为苹果CMS设计的广告管理插件&#xff0c;能够智能识别搜索引擎蜘蛛与普通访客&#xff0c;确保蜘蛛访问时展示原始内容&#xff0c;从而提升被百度等搜索引擎收录的几率。 广告显示提升收益 对于普通访客&#xff0c;该插件则优先显示广告内容&#…

UnLua扩展C++函数和蓝图自定义事件

一、通过BlueprintImplementableEvent标记扩展C函数 1、 这个标记表示C不需要实现&#xff0c;让蓝图/Lua重写。 2、首先在C中将LuaImp函数标记为BlueprintImplementableEvent&#xff0c;不需要实现&#xff0c;然后再GetIndex中调用该函数。 MyBaseActor.h UFUNCTION(Bluepr…

电力电塔电线缺陷检测数据集 voc yolo

电力 电塔电线缺陷检测数据集 10000张 带标注 voc yolo 电力电塔电线缺陷检测数据集 数据集描述 该数据集旨在用于电力电塔和电线的缺陷检测任务&#xff0c;涵盖多种常见的缺陷类型。数据集包含了大量的图像及其对应的标注信息&#xff0c;可用于训练计算机视觉模型&#x…

DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读

文章链接&#xff1a;https://arxiv.org/abs/2308.01979http://arxiv.org/abs/2212.10505https://arxiv.org/abs/2308.01979 源码链接&#xff1a;https://github.com/cse-ai-lab/RealCQA Abstract 理解图表需要很强的推理能力&#xff0c;之前的最先进 &#xff08;SOTA&…

圆周阵列元件的间距增加操作方法

在进行器件圆周阵列时&#xff0c;内圈的角度和外圈的旋转角度都相同&#xff0c;由于内圈的圆周长小于外圈的圆周长&#xff0c;有可能在内圈造成部分元件之间有两个焊盘会有覆盖的情况&#xff0c;此时需要对内圈的元件位置进行微调&#xff0c;需要增加在同一半径位置的元件…

数据结构 ——— 算法的时间复杂度

目录 时间复杂度的概念 时间复杂度函数式 大O的渐进表示法的概念 大O的渐进表示法 时间复杂度的概念 在计算机科学中&#xff0c;算法的时间复杂度是一个函数&#xff08;数学上的函数式&#xff09;&#xff0c;它定量描述了该算法的运行时间&#xff0c;一个算法执行所耗…

Netty笔记10-Netty参数调优

文章目录 一、CONNECT_TIMEOUT_MILLISCONNECT_TIMEOUT_MILLIS设置为1秒超时CONNECT_TIMEOUT_MILLIS设置为5秒超时注意事项 二、SO_BACKLOG代码示例注意事项 三、ulimit -n(文件描述符)设置文件描述符限制在注意事项 四、TCP_NODELAY使用 TCP_NODELAY 的场景注意事项 五、SO_SND…

软件安全最佳实践:首先关注的地方

尽管组织拥有大量可用的工具&#xff0c;但应用程序安全性仍然不足。 最近的数据显示&#xff0c;在过去四到五年中&#xff0c;软件供应链攻击同比增长了 600-700%&#xff0c;超过一半的美国企业在过去 12 个月中遭受过某种形式的软件供应链攻击。 为何应用程序安全工作未…

签署《AI安全国际对话威尼斯共识》 智源持续推动人工智能安全发展

近日&#xff0c;由AI安全国际论坛&#xff08;Safe AI Forum&#xff09;和博古睿研究院&#xff08;Berggruen Institute) 共同举办的第三届国际AI安全对话&#xff08;International Dialogues on AI Safety&#xff09;在威尼斯举办。图灵奖得主Yoshua Bengio、姚期智教授&…

电气设备施工现场风险状态判断ai模型训练数据集

电气设备施工现场风险状态判断ai模型训练数据集 id:18 电气设备施工现场工人人工智能学习数据和工作环境安全数据&#xff0c;建立系统化管理体系&#xff0c;改变全球EHS范式&#xff0c;预防工业事故。数据集记录了387709例子电力设施建设以及施工现场相关的灾害安全环境数据…

VM16安装macOS11

注意&#xff1a; 本文内容于 2024-09-17 12:08:24 创建&#xff0c;可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容&#xff0c;请访问原文地址&#xff1a;VM16安装macOS11。感谢您的关注与支持&#xff01; 使用 Vmware Workstation Pro 16 安装 macOS…

数字世界的新秩序:探索Web3的前景

在过去的几十年中&#xff0c;互联网已经彻底改变了我们的生活方式&#xff0c;推动了信息共享、全球互联以及数字经济的快速发展。然而&#xff0c;当前的互联网架构主要是中心化的&#xff0c;由少数大型科技公司控制数据、服务和基础设施。这种模式虽然高效&#xff0c;但也…

Golang | Leetcode Golang题解之第419题棋盘上的战舰

题目&#xff1a; 题解&#xff1a; func countBattleships(board [][]byte) (ans int) {for i, row : range board {for j, ch : range row {if ch X && !(i > 0 && board[i-1][j] X || j > 0 && board[i][j-1] X) {ans}}}return }

微服务注册中⼼2

5.Nacos配置管理 Nacos除了可以做注册中⼼&#xff0c;同样可以做配置管理来使⽤ 5.1 统⼀配置管理 当微服务部署的实例越来越多&#xff0c;达到数⼗、数百时&#xff0c;逐个修改微服务配置就会让⼈抓狂&#xff0c;⽽且很容易出错。我们需要⼀种统⼀配置管理⽅案&#xf…

idea生成类信息及快捷开发配置

目录 一、预言 二、在Java类的开头自动注释作者名字和日期等信息 2.1.各种预设变量 2.2.idea配置 2.3.成品展示 三、快捷开发 3.1.三种循环热键 3.2.if判断 3.3.instanceof运算 3.4.非空判断 3.5.测试打印 3.6. synchronized 3.7.异常抛出 一、预言 在…

Java运算符有哪些?深入解析Java运算符:从基础到进阶的全方位指南(超全表格)

&#x1f4bb;1.前言 在编程中&#xff0c;运算符是处理数据和变量的基本工具。它们不仅使得代码更加简洁&#xff0c;还能极大地提高编程效率。本文还提供了详细的 Java运算符参考表格&#xff0c;涵盖了算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、…

Dependency Check:一款针对应用程序依赖组件的安全检测工具

关于Dependency Check Dependency-Check 是一款软件组合分析 &#xff08;SCA&#xff09; 工具&#xff0c;可尝试检测项目依赖项中包含的公开披露的漏洞。它通过确定给定依赖项是否存在通用平台枚举 &#xff08;CPE&#xff09; 标识符来实现此目的。如果找到&#xff0c;它…

Arthas thread(查看当前JVM的线程堆栈信息)

文章目录 二、命令列表2.1 jvm相关命令2.1.2 thread&#xff08;查看当前JVM的线程堆栈信息&#xff09;举例1&#xff1a;展示[数字]线程的运行堆栈&#xff0c;命令&#xff1a;thread 线程ID举例2&#xff1a;找出当前阻塞其他线程的线程 二、命令列表 2.1 jvm相关命令 2.…

展锐平台的手机camera 系统开发过程

展锐公司有自己的isp 图像处理引擎&#xff0c;从2012 年底就开始在智能手机上部署应用。最初的时候就几个人做一款isp的从hal 到kernel 驱动的完整软件系统&#xff0c;分工不是很明确&#xff0c;基本是谁擅长哪些就搞哪些&#xff0c;除了架构和编码实现之外&#xff0c;另外…

Flask项目入门和视图

1、第一个项目的结构 以示例代码中的入口文件app.py为例子 &#xff08;1&#xff09;引入Flask以及创建Flask对象 from flask import Flask app Flask(__name__)&#xff08;2&#xff09; 路由route 视图函数 app.route(/index/) def hello_world():# 响应&#xff1a;…