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处理。 |
相关文章
热销商品
天九阳电磁炉家用炒菜锅智能爆炒多功能学生宿舍小型火锅新款电池炉
九阳电磁炉家用炒菜锅智能爆炒多功能学生宿舍小型火锅新款电池炉
¥142.41 领券购买
淘电动实木百叶窗帘办公室书房客厅餐厅卧室遮光升降隔断中古风卷帘
电动实木百叶窗帘办公室书房客厅餐厅卧室遮光升降隔断中古风卷帘
¥52.2 领券购买
淘抽绳褶皱半身裙女夏季设计感高腰显瘦辣妹包臀裙裤防走光百搭短裙
抽绳褶皱半身裙女夏季设计感高腰显瘦辣妹包臀裙裤防走光百搭短裙
¥34 领券购买
天韩国26夏季新品女士简约休闲宽松圆领款短袖衬衫MUSINSA STANDARD
韩国26夏季新品女士简约休闲宽松圆领款短袖衬衫MUSINSA STANDARD
¥183.1 领券购买
天娅丽达通勤缎面雪纺短袖衬衫女夏季新款飘带上衣优雅气质衬衣
娅丽达通勤缎面雪纺短袖衬衫女夏季新款飘带上衣优雅气质衬衣
¥186 领券购买
淘汪小沫 雪纺格子防晒衣夏季港风复古宽松过膝长款薄款衬衫外套女
汪小沫 雪纺格子防晒衣夏季港风复古宽松过膝长款薄款衬衫外套女
¥57.8 领券购买
天毛绒热水袋注水暖水袋灌水被窝专用热敷暖宝宝暖脚暖手宝2025新款
毛绒热水袋注水暖水袋灌水被窝专用热敷暖宝宝暖脚暖手宝2025新款
¥16.8 领券购买
淘全遮光窗帘100不透光卧室高级感客厅飘窗隔音隔热2026新款法式
全遮光窗帘100不透光卧室高级感客厅飘窗隔音隔热2026新款法式
¥80 领券购买
天睡觉专用空调房睡眠帽春秋成人男女款纯棉遮光保暖孕妇月子帽头套
睡觉专用空调房睡眠帽春秋成人男女款纯棉遮光保暖孕妇月子帽头套
¥16.9 领券购买
淘charholo月子帽纯棉月子发带防头风头巾帽子孕妇产后可爱产妇帽
charholo月子帽纯棉月子发带防头风头巾帽子孕妇产后可爱产妇帽
¥22.8 领券购买
天安可新月子帽产后纯棉头巾发带产妇坐月子孕妇防风保暖
安可新月子帽产后纯棉头巾发带产妇坐月子孕妇防风保暖
¥13.5 领券购买
天老北京布鞋男2026夏季新款帆布鞋薄款潮鞋青少年潮流百搭休闲板鞋
老北京布鞋男2026夏季新款帆布鞋薄款潮鞋青少年潮流百搭休闲板鞋
¥33 领券购买
天【送礼礼盒】正官庄红参速溶粉韩国原装进口人参茶-26年9月到期
【送礼礼盒】正官庄红参速溶粉韩国原装进口人参茶-26年9月到期
¥19.9 领券购买
淘小鸟鹦鹉手偶娃娃玩具布偶腹语鸟类大嘴鸟安抚毛绒玩具幼儿园女孩
小鸟鹦鹉手偶娃娃玩具布偶腹语鸟类大嘴鸟安抚毛绒玩具幼儿园女孩
¥20.2 领券购买
淘可爱蔬菜系列零钱包萝卜趣味耳机迷你硅胶收纳包茄子书包钥匙挂件
可爱蔬菜系列零钱包萝卜趣味耳机迷你硅胶收纳包茄子书包钥匙挂件
¥14.2 领券购买
天北京移动流量充值20GB 4G/5G手机流量加油包叠加包20gb 7天有效
北京移动流量充值20GB 4G/5G手机流量加油包叠加包20gb 7天有效
¥14.8 领券购买

