《鸿蒙智能互联设备开发(微课版)》 课件 第6章 HDF驱动框架.pptx

《鸿蒙智能互联设备开发(微课版)》 课件 第6章 HDF驱动框架.pptx

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

6.1.1HDF驱动框架介绍

通过本节学习,您可以:了解HDF驱动框架

HDF驱动框架介绍HDF驱动框架介绍:HDF驱动架构采用C语言面向对象编程模型构建,通过平台解耦、内核解耦,来达到兼容不同内核,统一平台底座的目的,从而帮助开发者实现驱动一次开发,多系统部署的效果。

HDF驱动框架介绍HDF驱动框架架构组成:OSAL:操作系统抽象层(OperatingSystemAbstractionLayer),提供统一封装的内核操作相关接口,屏蔽不同系统操作差异,包含内存、锁、线程、信号量等接口。

HDF驱动框架介绍HDF驱动框架架构组成:1.HDF驱动基础框架:提供统一的硬件资源管理,驱动加载管理以及设备节点管理等功能。驱动框架采用的是主从模式设计,由DeviceManager和DeviceHost组成。

HDF驱动框架介绍HDF驱动框架架构组成:2.驱动程序:实现驱动具体的功能,每个驱动由一个或者多个驱动程序组成,每个驱动程序都对应着一个DriverEntry。

HDF驱动框架介绍HDF驱动框架架构组成:3.驱动配置文件.hcs:主要由设备信息(DeviceInformation)和设备资源(DeviceResource)组成。

HDF驱动框架介绍HDF驱动框架架构组成:4.驱动接口:HDI(HardwareDriverinterface,硬件设备接口)提供标准化的接口定义和实现,驱动框架提供IOService和IODispatcher机制,使得不同部署形态下驱动接口趋于形式一致。

谢谢

6.1.2HDF驱动模型介绍

通过本节学习,您可以:了解HDF驱动模型

HDF驱动模型介绍HDF设备驱动模型的组成:Host(设备容器)、Device(设备)、DeviceNode(设备节点)、Driver(驱动程序)。HDF框架将一类设备驱动放在同一个Host里面,用于管理一组设备的启动加载等过程。Device对应一个真实的物理设备。DeviceNode是设备的一个部件,Device至少有一个DeviceNode。每个DeviceNode可以发布一个设备服务。每个DevicdNode唯一对应一个驱动,实现和硬件的功能交互。

HDF驱动模型介绍在划分Host时,驱动程序是部署在一个Host还是部署在不同的Host,主要考虑驱动程序之间是否存在耦合性,如果两个驱动程序之间存在依赖,可以考虑将这部分驱动程序部署在一个Host里面。Host有两种属性:hostName,priority属性取值描述hostName字符串设备集合的名称。Priority整数,0-200设备集合的优先级。数值越大,优先级越低;如果优先级相同,则不能保证加载顺序。

HDF驱动模型介绍HDF驱动框架给DeviceNode设备节点定义的属性:属性取值描述moduleName字符串每个设备节点所对应的驱动程序被称为一个module,每一个module都有一个moduleName。preload整数驱动被HDF加载的方式Priority整数,0-200驱动的优先级。数值越大,优先级越低;如果优先级相同,则不能保证加载顺序。serviceNamen字符串驱动对外发布的服务的名称,必须唯一。policy整数驱动对外发布服务的策略。permission整数设备节点的读写权限,一般采用以0为前缀的8进制整数,类似于linux的文件权限的概念。deviceMatchAttr字符串用于匹配设备节点的自定义属性。

HDF驱动模型介绍驱动的加载方式如下:typedefenum{DEVICE_PRELOAD_ENABLE=0,DEVICE_PRELOAD_ENABLE_STEP2,DEVICE_PRELOAD_DISABLE,DEVICE_PRELOAD_INVALID}DevicePreload;preload字段配置为0(DEVICE_PRELOAD_ENABLE),则系统启动过程中默认加载。preload字段配置为1(DEVICE_PRELOAD_ENABLE_STEP2),当系统支持快速启动的时候,则在系统完成之后再加载这一类驱动。preload字段配置为2(DEVICE_PRELOAD_DISABLE),则系统启动过程中默认不加载。

谢谢

6.1.3HDF驱动开发步骤

通过本节学习,您可以:了解HDF驱动开发步骤

HDF驱动开发步骤HDF框架的驱动开发的组成部分:驱动实现、驱动编译脚本编写和驱动配置。1.驱动实现:驱动实现包含驱动业务代码实现和驱动入口注册,具体写法如下:(1)驱动业务代码模板#includehdf_device_desc.h//

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档