当前位置: 首页 > news >正文

北京迅为RK3568开发板OpenHarmony系统南向驱动开发内核HDF驱动框架架构

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。

【本文摘自】【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动开发

【相关视频】OpenHarmony学习开发系列教程(第1期 北向基础篇一)

OpenHarmony学习开发系列教程(第2期 南向基础篇一)

第2章 内核HDF驱动框架架构

本篇实战我们将要配置HDF驱动控制LED,在配置之前,我们首先要明白什么是HDF,以及HDF驱动开发的相关概念。

2.1 驱动架构

下面的视频——OpenHarmony功能框架

P2_OpenHarmony功能框架_哔哩哔哩_bilibili中提到了HDF(Hardware Driver Foundation)。接下来我们了解一下什么是HDF。

HDF(Hardware Driver foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载,驱动服务管理和驱动消息机制。旨在构建统一的驱动架构平台,为驱动开发者提供更精准,更高效的开发环境,力求做到一次开发,多系统部署。

HDF驱动架构采用C 语言面向对象编程模型构建,通过平台解耦,内核解耦,来达到兼容不同内核,统一平台底座的目的。HDF驱动框架架构如图所示:

HDF驱动架构主要组成部分:

HDI(Hardware Device Interface,硬件设备统一接口)层:通过规范化的设备接口标准,为系统提供统一、稳定的硬件设备操作接口。

HDF驱动框架:提供统一的硬件资源管理、驱动加载管理、设备节点管理、设备电源管理以及驱动服务模型等功能,需要包含设备管理、服务管理、DeviceHost、PnPManager等模块。

统一的配置界面:支持硬件资源的抽象描述,屏蔽硬件差异,可以支撑开发者开发出与配置信息不绑定的通用驱动代码,提升开发及迁移效率,并可通过HC-Gen等工具快捷生成配置文件。

操作系统抽象层(OSAL,Operating System Abstraction Layer):提供统一封装的内核操作相关接口,屏蔽不同系统操作差异,包含内存、锁、线程、信号量等接口。

平台驱动:为外设驱动提供Board硬件(如:I2C/SPI/UART总线等平台资源)操作统一接口,同时对Board硬件操作进行统一的适配接口抽象以便于不同平台迁移。

外设驱动模型:面向外设驱动,提供常见的驱动抽象模型,主要达成两个目的,提供标准化的器件驱动,开发者无需独立开发,通过配置即可完成驱动的部署;提供驱动模型抽象,屏蔽驱动与不同系统组件间的交互,使得驱动更具备通用性。

2.2 平台驱动

OpenHarmony平台驱动(Platform Driver)是为平台设备(Platform Device)提供驱动支持的接口,帮助系统和外设之间的互通。这里的平台设备包括总线接口(如I2C、UART)以及特定硬件资源(如GPIO、RTC等)。平台驱动框架是OpenHarmony驱动框架的核心部分,基于HDF驱动框架、操作系统适配层和驱动配置管理,提供一个统一的标准模型,帮助开发者实现各类平台设备驱动。

平台驱动框架的主要特点包括:

统一的平台设备访问接口:为平台设备操作提供统一的接口,屏蔽不同硬件平台(SoC)和操作系统(OS)的差异。

统一的适配接口:为平台设备驱动提供统一的接口,让开发者只需关注硬件控制,而无需关心设备管理或其他公共流程。

提供公共能力:提供设备注册、管理、访问控制等功能,且与特定SoC平台无关。

平台驱动框架支持的设备类型包括但不限于:ADC、DAC、GPIO、HDMI、I2C、I3C、MIPI_CSI、MIPI_DSI、MMC、Pin、PWM、Regulator、RTC、SDIO、SPI、UART、WatchDog等。

2.3 外设驱动

OpenHarmony在HDF驱动框架和平台驱动框架的基础上,为外设设备提供了标准化的驱动模型。这些驱动模型可以帮助开发者减少重复开发工作,并提供统一的抽象层,屏蔽了驱动与系统其他组件之间的复杂交互,使得驱动更加通用、易于移植。

目前,OpenHarmony支持的外设设备类型包括但不限于:音频(Audio)、摄像头(Camera)、编解码器(Codec)、人脸识别(Face_auth)、指纹识别(Fingerprint_auth)、LCD屏幕(LCD)、灯光控制(Light)、运动传感器(Motion)、引脚认证(Pin_auth)、传感器(Sensor)、触摸屏(Touchscreen)、USB、用户认证(User_auth)、振动器(Vibrator)、无线局域网(WLAN)等。

2.4 HCS简介

HCS(HDF Configuration Source)是HDF驱动框架的配置描述源码,内容以Key-Value为主要形式。它实现了配置代码与驱动代码解耦,便于开发者进行配置管理。HC-GEN(HDF Configuration Generator) 是HCS配置转换工具,可以将HDF配置文件转换为软件可读取的文件格式。在高性能环境中,HCS经过HC-GEN编译生成HCB(HDF Configuration Binary)二进制文件,HDF驱动框架中的HCS Parser模块会从HCB文件中重建配置树,HDF驱动模块使用HCS Parser提供的配置读取接口获取配置内容。HCB配置使用流程图如下图所示:

接下来介绍一下HCS的语法,HCS配置语法保留了以下关键字。

(1)保留关键字

(2)基本结构

HCS主要分为属性(Attribute)和节点(Node)两种结构。

属性

属性是最小的配置单元,表示一个独立的配置项,语法格式如下:

attribute_name = value;

attribute_name:由字母、数字、下划线组成,且必须以字母或下划线开头,字母区分大小写。

value:可以是以下几种类型:

数字常量:支持二进制、八进制、十进制、十六进制,具体类型参考数据类型部分。

字符串:使用双引号("")括起来。

相关文章:

  • 《无线网络架构与人工智能实时性:深度融合与未来展望》
  • 电商数据分析 电商平台销售数据分析 电商平台数据库设计 揭秘电商怎么做数据分析
  • 插入排序算法优化
  • Yolo-Uniow开集目标检测本地复现
  • Kotlin学习笔记之类与对象
  • 【ISP】ISP的pipeline的几种关键算法
  • mysql忘记root密码
  • 企业安全—对数据和资产进行识别和分类
  • 数据结构与算法效率分析:时间复杂度与空间复杂度详解(C语言)
  • 【赵渝强老师】PostgreSQL的模板数据库
  • 【C#学习笔记03】进制转换与反码、补码、原码
  • 数字人源头技术saas厂家开发
  • 木马查杀之AST初识篇
  • UE5.5 Niagara发射器更新属性
  • 迅为RK3568开发板篇Openharmony配置HDF控制UART-实操-HDF驱动配置UART-UART应用开发-UART驱动API接口介绍
  • 四层协议攻防手册:从SYN Flood到UDP反射的深度防御
  • 从前端视角理解消息队列:核心问题与实战指南
  • cesium1.126显示等高线
  • 深度学习基础:线性代数本质2——线性组合、张成的空间与基
  • Linux进程管理15 - CFS调度器2 - 数据结构关系
  • 联合国秘书长欢迎中美经贸高层会谈成果
  • 工人日报评规范隐藏式车门把手:科技美学须将安全置顶
  • 盖茨说对中国技术封锁起到反作用
  • 中国一直忽视欧盟经贸问题关切?外交部:事实证明中欧相互成就,共同发展
  • 淡马锡辟谣:淡马锡和太白投资未在中国销售任何投资产品或金融工具
  • 被取消总统候选人资格,金文洙:将采取政治法律措施讨回公道