HarmonyOS驱动概述
|
HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理和驱动消息机制。旨在构建统一的驱动架构平台,为驱动开发者提供更精准、更高效的开发环境,力求做到一次开发,多系统部署。
一、HarmonyOS驱动概述 HarmonyOS驱动框架采用C语言面向对象编程模型构建,通过平台解耦、内核解耦,来达到兼容不同内核,统一平台底座的目的,从而帮助开发者实现驱动的“一次开发,多系统部署”。 为了达成这个目标, HarmonyOS驱动框架提供了: 1、操作系统适配层(OSAL,operating system abstraction layer):提供内核操作相关接口进行统一封装,屏蔽不同系统操作接口。 2、平台驱动接口:提供Board部分驱动(例如:I2C/SPI/UART总线等平台资源)支持,同时对Board硬件操作接口进行统一的适配抽象,开发者只需开发新硬件抽象接口,即可获得新增Board部分驱动支持。 3、驱动模型:面向器件驱动,提供常见的驱动抽象模型,主要达成两个目的: ● 提供标准化的器件驱动,开发者无需独立开发,通过配置即可完成驱动的部署。 ● 提供驱动模型抽象,屏蔽驱动与不同系统组件间的交互,使得驱动更具备通用性。 为了进一步简化HarmonyOS驱动开发,HarmonyOS驱动框架支持多种驱动加载方式: ● 支持驱动动态加载和静态加载,解除驱动代码和框架间的直接代码依赖,使得驱动程序可以独立编译和部署; ● 支持按需动态加载方式,避免设备驱动全量加载,可有效降低系统资源的占用。 本文主要分析HarmonyOS驱动加载过程,在正式介绍之前,首先了解HarmonyOS驱动架构的组成、工作原理和机制,从而了解驱动加载的细节。 官网相关介绍:https://device.harmonyos.com/cn/docs/develop/drive/oem_drive_hdfdev-0000001051715456 二、HarmonyOS驱动架构介绍 2.1 HarmonyOS驱动架构组成
图1 HarmonyOS驱动架构 HarmonyOS驱动架构主要由HDF驱动框架、驱动程序、驱动配置文件和驱动接口四个部分组成。 1)HDF驱动框架提供统一的硬件资源管理,驱动加载管理以及设备节点管理等功能。 驱动框架采用的是主从模式设计,由Device Manager和Device Host组成。 Device Manager提供了统一的驱动管理,Device Manager启动时根据Device Information提供驱动设备信息加载相应的驱动Device Host,并控制Host完成驱动的加载。 Device Host提供驱动运行的环境,同时预置Host Framework与Device Manager进行协同,完成驱动加载和调用。根据业务的需求Device Host可以有多个实例。 说明: Device Host顾名思义就是驱动宿主,提供驱动运行的环境。 当驱动部署在用户态时,Device Host可以由独立的进程进行承载。 当驱动在部署在内核态时,Device Host仅表示逻辑隔离。 Device Host的划分原则:Device Host属于一类设备聚合,如Camera,Audio,Display等。 驱动程序是部署在一个Device Host还是部署在不同的Device Host,主要考虑驱动程序之间是否存的业务耦合性,如果两个驱动程序之间存在依赖,可以考虑将这部分驱动程序部署在统一Host。 2)驱动程序实现驱动的具体功能,每个驱动由一个或者多个驱动程序组成,每个驱动程序都对应着一个Driver Entry。Driver Entry主要完成驱动的初始化和驱动接口绑定功能。 3)驱动配置文件.hcs主要由设备信息(Device Information)和设备资源(Device Resource)组成。 Device Information完成设备信息的配置,如配置接口发布策略,驱动加载的方式等。Device Resource 完成设备资源的配置,如GPIO管脚、寄存器等资源信息的配置。 4)驱动接口HDI(Hardware Driver interface )提供标准化的接口定义和实现,驱动框架提供IO Service和IO Dispatcher机制,使得不同部署形态下驱动接口趋于形式一致。 当驱动部署在RTOS(Real-Time Operating System)轻量化操作系统时,驱动接口和驱动程序之间采用的是Function Call方式调用,因此驱动接口仅提供定义,驱动接口实现由驱动程序提供。 2.2 HDF驱动框架工作原理
图2 HDF驱动框架工作原理 Device Manager提供了统一的驱动加载管理机制和驱动接口发布机制。 当Device Host环境加载完成时,Device Manager根据Device Information信息,请求Host加载相应的驱动程序,Device Host在收到请求时,进行以下操作: 1)根据请求加载设备信息,查找并加载指定路径下驱动镜像或从指定段地址(section)查找驱动程序入口; 2)查找驱动设备描述符,匹配对应的设备驱动; 3)当驱动匹配成功时,加载指定驱动程序镜像; 4)Host Framework在驱动镜像加载成功后,调用驱动程序(Driver Entry)的绑定接口和初始化接口,实现与驱动程序的服务对象绑定,同时初始化设备驱动程序; 5)当Device Information配置中的服务策略要求对外暴露驱动接口时,驱动框架就将驱动程序的服务对象添加到对外发布的服务对象列表中,外部客户端程序就可以通过此列表来查询并访问相应的服务接口。 2.3 驱动接口工作机制
图3 驱动接口工作机制 驱动接口主要存在以下几种实现: ● 当驱动以内核组件部署时,客户端程序访问驱动程序需要通过system call方式调用,驱动接口通过IO Service请求将消息通过system call方式调用到内核,并将消息分发到IO Dispatcher处理。 |
相关文章
热销商品
天Nespresso奈斯派索胶囊咖啡机家用小型进口Pixie含咖啡胶囊50颗
Nespresso奈斯派索胶囊咖啡机家用小型进口Pixie含咖啡胶囊50颗
¥1500 领券购买
天德国格丹力咖啡机家用小型半自动研磨意式浓缩萃取一体机迷你礼物
德国格丹力咖啡机家用小型半自动研磨意式浓缩萃取一体机迷你礼物
¥651.95 领券购买
天【自营】Delonghi/德龙 ECAM22.110.SB 家用全自动意式咖啡机
【自营】Delonghi/德龙 ECAM22.110.SB 家用全自动意式咖啡机
¥2179 领券购买
天摩巧K1小天秤意式半自动咖啡机家用小型萃取奶泡研磨一体节日礼物
摩巧K1小天秤意式半自动咖啡机家用小型萃取奶泡研磨一体节日礼物
¥889 领券购买
淘家用电动跑步机安全磁扣开关方形安全钥匙磁性锁扣通用适用于亿健
家用电动跑步机安全磁扣开关方形安全钥匙磁性锁扣通用适用于亿健
¥4.69 领券购买
淘国行Apple/苹果iPad11 2025新款ipad10平板电脑正品A16芯片11英寸
国行Apple/苹果iPad11 2025新款ipad10平板电脑正品A16芯片11英寸
¥2428 领券购买
天孕妇托腹带专用孕中期晚期托肚子辅助神器护腰肩背带护胎隐形冬季
孕妇托腹带专用孕中期晚期托肚子辅助神器护腰肩背带护胎隐形冬季
¥17.4 领券购买
天马登工装美式复古Boro古布短袖衬衫vintage印花牛仔衬衣外套男夏
马登工装美式复古Boro古布短袖衬衫vintage印花牛仔衬衣外套男夏
¥154.9 领券购买
淘红风TYPE3全黑色双染牛仔外套男原牛美式复古夹克赤耳丹宁牛仔衣
红风TYPE3全黑色双染牛仔外套男原牛美式复古夹克赤耳丹宁牛仔衣
¥341 领券购买
天HM男装牛仔外套2026夏季新款水洗美式利落牛仔衬衫夹克1326421
HM男装牛仔外套2026夏季新款水洗美式利落牛仔衬衫夹克1326421
¥351 领券购买
淘VIISHOW黑色牛仔外套男秋季复古翻领工装夹克ins潮牌潮牌休闲上衣
VIISHOW黑色牛仔外套男秋季复古翻领工装夹克ins潮牌潮牌休闲上衣
¥95 领券购买
天【商场同款】Levi's李维斯男士美式宽松休闲牛仔夹克外套003MP
【商场同款】Levi's李维斯男士美式宽松休闲牛仔夹克外套003MP
¥339 领券购买
淘Lee正品 2026款男士翻领原色牛仔夹克外套LMT012638211053-898L00
Lee正品 2026款男士翻领原色牛仔夹克外套LMT012638211053-898L00
¥583 领券购买
淘网红新款小冰块哑光12色唇膏口红不易脱色裸色豆沙色粉口红套装
网红新款小冰块哑光12色唇膏口红不易脱色裸色豆沙色粉口红套装
¥6.9 领券购买
淘新款无线蓝牙耳机单耳夹耳式迷你运动降噪开车跑步超长续航大电量
新款无线蓝牙耳机单耳夹耳式迷你运动降噪开车跑步超长续航大电量
¥38 领券购买
淘摩洛哥皮墩蒲团坐垫懒人坐垫蒲团坐墩极有家榻榻米垫北欧手工坐墩
摩洛哥皮墩蒲团坐垫懒人坐垫蒲团坐墩极有家榻榻米垫北欧手工坐墩
¥86.2 领券购买

