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处理。 |
相关文章
热销商品
天耐克官方正品男士运动斜挎包新款便携休闲包小单肩包女生随身背包
耐克官方正品男士运动斜挎包新款便携休闲包小单肩包女生随身背包
¥129 领券购买
淘台球桌袋口配件台球网兜网袋用品 桌球跑道台球袋口接球轨道套装
台球桌袋口配件台球网兜网袋用品 桌球跑道台球袋口接球轨道套装
¥9.8 领券购买
天蒂凡尼花瓣台灯卧室床头灯复古民国书房灯具结婚长明灯装饰氛围灯
蒂凡尼花瓣台灯卧室床头灯复古民国书房灯具结婚长明灯装饰氛围灯
¥129.2 领券购买
淘夏季薄款棉麻短袖衬衫男士商务休闲格子衬衣亚麻宽松微弹大码寸衫
夏季薄款棉麻短袖衬衫男士商务休闲格子衬衣亚麻宽松微弹大码寸衫
¥39 领券购买
天中年妈妈凉鞋女士夏季平底舒适软底中老年防滑真皮凉鞋老人女鞋子
中年妈妈凉鞋女士夏季平底舒适软底中老年防滑真皮凉鞋老人女鞋子
¥95 领券购买
天PRICH简约智性七分袖商务西装套装夏季清爽显瘦气质通勤外套女
PRICH简约智性七分袖商务西装套装夏季清爽显瘦气质通勤外套女
¥452.85 领券购买
淘七匹狼男士纯棉袜子全棉抗菌中筒袜春秋透气吸汗休闲商务男袜礼盒
七匹狼男士纯棉袜子全棉抗菌中筒袜春秋透气吸汗休闲商务男袜礼盒
¥29.9 领券购买
天白色衬衫女长袖工作服高级夏天衬衣职业夏季纯棉洋气通勤新款上衣
白色衬衫女长袖工作服高级夏天衬衣职业夏季纯棉洋气通勤新款上衣
¥159 领券购买
淘高档棉质运动背心男士夏季内穿2026新款无袖坎肩打底青年马甲汗衫
高档棉质运动背心男士夏季内穿2026新款无袖坎肩打底青年马甲汗衫
¥19.9 领券购买
淘韩系慵懒系带V领七分袖衬衫女2026夏季新款时尚百搭显瘦防晒上衣
韩系慵懒系带V领七分袖衬衫女2026夏季新款时尚百搭显瘦防晒上衣
¥71.1 领券购买
天轻奢多层叠戴珠珠项链女2025新款爆款锁骨链高级感秋冬长款毛衣链
轻奢多层叠戴珠珠项链女2025新款爆款锁骨链高级感秋冬长款毛衣链
¥6.96 领券购买
淘夏季飘窗垫凉豆豆窗台垫2026新款阳台垫子防滑冷感冰丝加厚海绵垫
夏季飘窗垫凉豆豆窗台垫2026新款阳台垫子防滑冷感冰丝加厚海绵垫
¥22 领券购买
天北京现代领动朗动名图瑞纳ix25悦动ix35悦纳途胜汽车钥匙包套壳扣
北京现代领动朗动名图瑞纳ix25悦动ix35悦纳途胜汽车钥匙包套壳扣
¥21.8 领券购买
淘板栗西西【满杯啵脆】温柔风收腰波点无袖连衣裙女秋显瘦背心长裙
板栗西西【满杯啵脆】温柔风收腰波点无袖连衣裙女秋显瘦背心长裙
¥109.99 领券购买
天欧诗漫珍珠白BB霜晶彩焕颜修容霜遮瑕隔离裸妆粉底旗舰店官方正品
欧诗漫珍珠白BB霜晶彩焕颜修容霜遮瑕隔离裸妆粉底旗舰店官方正品
¥69.9 领券购买
天潮色绘-HelloKitty猫纯银999项链女款生日礼物七夕送女生精致礼盒
潮色绘-HelloKitty猫纯银999项链女款生日礼物七夕送女生精致礼盒
¥139 领券购买

