做网站建设公司crm在线,南京建设监理协会网站,dw做网站字体 别人电脑显示,成都高薪seoCamera驱动框架
该驱动框架模型内部分为三层#xff0c;依次为HDI实现层、框架层和设备适配层#xff1a;
HDI实现层#xff1a;实现OHOS#xff08;OpenHarmony Operation System#xff09;相机标准南向接口。框架层#xff1a;对接HDI实现层的控制、流的转发#x…Camera驱动框架
该驱动框架模型内部分为三层依次为HDI实现层、框架层和设备适配层
HDI实现层实现OHOSOpenHarmony Operation System相机标准南向接口。框架层对接HDI实现层的控制、流的转发实现数据通路的搭建管理相机各个硬件设备等功能。设备适配层屏蔽底层芯片和OSOperation System差异支持多平台适配。
Camera模块主要包含服务、设备的初始化数据通路的搭建流的配置、创建、下发、捕获等。
基于HDF驱动框架的Camera驱动模型。 目前Camera驱动框架主要提供了两种适配方式V4L2和MPP。
MPP方式主要是针对海思系列的芯片MPP是海思自己实现的多媒体框架之前有介绍具体可参见《鸿蒙开发学习指南》V4L2方式主要是针对Camera驱动是基于V4L2接口实现的芯片平台比如Rockchip展锐等
如果其他芯片平台想适配OH的Camera驱动框架如果是V4L2实现可参考Rockchip的适配方式如果是私有实现比如ioctl方式则需要自己重新添加新的适配层。
下面是展锐SL8541E平台在OH下的Camera适配框图更详细参考Rockchip方案适配的都是基于V4L2所以很类似 Camera 驱动框架所在源码目录为drivers/peripheral/camera
由上可以看出Camera 驱动框架最核心的3部分
pipelinedevice_managerdriver_adapter pipeline控制管理各个硬件模块首先要获取对应设备的manager通过manager获取其对应的controllercontroller和对应的驱动进行交互
V4L2的适配
这里我们主要看下基于V4L2的适配以rk3568为例主要涉及到如下几块
platform平台通用公共代码: drivers/peripheral/camera/hal/adapter/platform/v4l2chipset定制化代码: device/board/hihope/rk3568/camera/hcs配置文件: vendor/hihope/rk3568/hdf_config/uhdf/camera
platform公共代码
platform为平台性公共代码如linux标准v4l2适配接口定义为v4l2框架适配的通用node.以及为v4l2框架适配的通用device_manager等
目录结构如下 device_manager
device_manager 目录存放着向北与pipeline向南与v4l2 adapter交互的代码。
driver_adapter
driver_adapter 目录中存放着v4l2协议相关代码。可通过它们实现与v4l2底层驱动交互。
pipeline_core
Pipeline_core 目录与 drivers/peripheral/camera/hal/pipeline_core中代码组合为pipeline框架。v4l2_source_node 和 uvc_node为v4l2框架适配的通用node。
chipset定制化代码
chipset为具体某芯片平台相关代码。
目录结构如下 device_manager目录下存放了rk3568适配过的sensor的相关配置文件适配的camera sensor 读取设备能力的代码及相关配置文件其中 project_hardware.h 比较关键存放了device_manager支持当前chipset的设备列表
pipeline_core路径下存放了由chipset开发者为满足特点需求增加的pipeline node等。
hcs配置文件
device_info
vendor/hihope/rk3568/hdf_config/uhdf/device_info.hcs config
vendor/hihope/rk3568/hdf_config/uhdf/camera hdi_impl下的 camera_host_config.hcs为物理/逻辑Camera配置、能力配置此处的物理/逻辑Camera配置需要在hal内部使用逻辑Camera及能力配置需要上报给上层需按照所适配的芯片产品添加其能力配置。pipeline_core下的 config.hcs为pipeline的连接方式按场景划分每一路流由哪些Node组成其连接方式是怎样的。使用或新增的node需要在代码中注册。param.hcs为场景、流类型名及其id定义pipeline内部是以流id区分流类型的所以此处需要添加定义。
因config配置文件里面内容比较多这里就举例了具体可自行看源码
总结
以上的内容只是简单介绍了OpenHarmony南向的Camera框架没有具体到代码分析移植等细节。
要想成为一名鸿蒙高级开发以上知识点是必须要掌握的除此之外还需要掌握一些鸿蒙应用开发相关的一些技术需要我们共同去探索。
为了节省大家一些查找的时间这边联合几位行业大佬为大家准备了一份《鸿蒙南北双向开发》的学习导图从入门到进阶再到南向开发实战的一整套完整体系想要学习了解更多鸿蒙开发的相关知识可以借鉴《鸿蒙开发学习指南》 除了上面整理的思维导图以外这里还特别整理的一份《鸿蒙 (Harmony OS)开发学习手册》给大家进行参考学习
一、入门必看
1. 应用开发导读(ArkTS)
2. …… 二、HarmonyOS 概念
1. 系统定义
2. 技术架构
3. 技术特性
4. 系统安全
5........ 三、如何快速入门
1. 基本概念
2. 构建第一个ArkTS应用
3. 构建第一个JS应用
4. …… 四、开发基础知识
1. 应用基础知识
2. 配置文件
3. 应用数据管理
4. 应用安全管理
5. 应用隐私保护
6. 三方应用调用管控机制
7. 资源分类与访问
8. 学习ArkTS语言
9. …… 五、基于ArkTS 开发
1. Ability开发
2. UI开发
3. 公共事件与通知
4. 窗口管理
5. 媒体
6. 安全
7. 网络与链接
8. 电话服务
9. 数据管理
10. 后台任务(Background Task)管理
11. 设备管理
12. 设备使用信息统计
13. DFX
14. 国际化开发
15. 折叠屏系列
16. …… 更多了解更多鸿蒙开发的相关知识可以参考《鸿蒙开发学习指南》