Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
49b3ebac
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
49b3ebac
编写于
3月 25, 2022
作者:
O
openharmony_ci
提交者:
Gitee
3月 25, 2022
浏览文件
操作
浏览文件
下载
差异文件
!2499 修改sensor、vibrator断链问题,以及调整sensor层级。
Merge pull request !2499 from liyan/master
上级
da7ab2ef
9334fab8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
65 addition
and
128 deletion
+65
-128
zh-cn/device-dev/driver/driver-peripherals-audio-des.md
zh-cn/device-dev/driver/driver-peripherals-audio-des.md
+45
-91
zh-cn/device-dev/driver/driver-peripherals-sensor-des.md
zh-cn/device-dev/driver/driver-peripherals-sensor-des.md
+17
-27
zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md
zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md
+3
-10
未找到文件。
zh-cn/device-dev/driver/driver-peripherals-audio-des.md
浏览文件 @
49b3ebac
# AUDIO
-
**[Audio驱动概述](#section1000)**
-
**[Audio驱动框架介绍](#section2000)**
-
**[Audio驱动开发](#section3000)**
- **[Audio ADM模块框架介绍](#section3100)**
- [启动流程](#section3111)
- [播放流程](#section3112)
- [控制流程](#section3113)
- **[Audio驱动开发步骤](#section3200)**
- [已有平台开发](#section3221)
- [新平台开发](#section3222)
-
**[Audio驱动开发实例](#section4000)**
-
[
Codec驱动开发实例
](
#section4100
)
-
[
Codec数据结构填充
](
#section4111
)
-
[
codecDevice和codecDai设备初始化
](
#section4112
)
-
[
Codec操作函数集实现
](
#section4113
)
-
[
Codec注册绑定到HDF
](
#section4114
)
-
[
HCS配置流程
](
#section4115
)
-
[
Accessory驱动开发实例
](
#section4200
)
-
[
Accessory数据结构填充
](
#section4221
)
-
[
accessoryDevice和accessoryDai设备初始化
](
#section4222
)
-
[
Accessory操作函数集实现
](
#section4223
)
-
[
Accessory注册绑定到HDF
](
#section4224
)
-
[
HCS配置流程
](
#section4225
)
-
[
Platform驱动开发实例
](
#section4300
)
-
[
Platform数据结构填充
](
#section4331
)
-
[
dmaDevice设备初始化
](
#section4332
)
-
[
DMA操作函数集实现
](
#section4333
)
-
[
Platform注册绑定到HDF
](
#section4334
)
-
[
HCS配置流程
](
#section4335
)
-
[
Dai驱动开发实例
](
#section4400
)
-
[
Dai数据结构填充
](
#section4441
)
-
[
daiDevice设备初始化
](
#section4442
)
-
[
Dai操作函数集实现
](
#section4443
)
-
[
Dai注册绑定到HDF
](
#section4444
)
-
[
HCS配置流程
](
#section4445
)
-
[
Makefile中添加编译配置
](
#section4500
)
-
[
源码结构与目录
](
#section4600
)
-
**[使用HAL的开发步骤与实例](#section5000)**
-
[
HAL模块使用步骤
](
#section5100
)
-
[
HAL使用实例
](
#section5200
)
-
**[总结](#section9999)**
# Audio驱动概述<a name="section1000"></a>
## Audio驱动概述
多媒体系统是物联网设备开发中不可缺少的一部分,Audio作为其中重要的一个模块,Audio驱动模型的构建显得尤为重要。
...
...
@@ -57,9 +9,10 @@
# Audio驱动框架介绍<a name="section2000"></a>
#
#
Audio驱动框架介绍<a name="section2000"></a>
Audio驱动框架基于
[
HDF驱动框架
](
https://device.harmonyos.com/cn/docs/documentation/guide/driver-hdf-overview-0000001051715456
)
实现。Audio驱动架构组成:
![](
figures/Audio框架图.png
)
驱动架构主要由以下几部分组成。
...
...
@@ -73,11 +26,11 @@ Audio驱动框架基于[HDF驱动框架](https://device.harmonyos.com/cn/docs/do
-
Platform Drivers : 驱动适配层。
-
SAPM(Smart Audio Power Manager) : 电源管理模块,对整个ADM电源进行功耗策略优化。
#
Audio驱动开发<a name="section3000"></a>
#
# Audio驱动开发
以下将基于Audio驱动框架,并以Hi3516DV300平台为例,介绍相关驱动开发的具体步骤。
##
Audio ADM模块框架介绍<a name="section3100"></a>
##
# Audio ADM模块框架介绍
Audio驱动对HDI层提供三个服务hdf_audio_render、hdf_audio_capture、hdf_audio_control。开发板dev目录下 驱动服务节点如下:
```
c
...
...
@@ -103,7 +56,7 @@ hdf_audio_codec_dev1
-
codec_service_1 : accessory 服务(特指smartPA)
-
dsp_service_0 : dsp 服务(可选项)
###
启动流程<a name="section3111"></a>
###
# 启动流程
![](
figures/ADM启动流程图.png
)
...
...
@@ -117,8 +70,10 @@ hdf_audio_codec_dev1
5.
将初始化成功的音频设备添加到cardManager链表。
### 播放流程<a name="section3112"></a>
#### 播放流程
![
=
](
figures/ADM播放流程图.png
)
1.
播放音频时,Interface Lib层通过播放流服务下发Render Open指令,Audio Stream Dispatch服务收到指令后分别调用各模块的函数接口对指令进行下发。
2.
Interface Lib层通过控制服务下发通路选择指令,Control Dispatch控制服务收到指令后调用Dai模块接口设置通路。
...
...
@@ -133,16 +88,16 @@ hdf_audio_codec_dev1
7.
Interface Lib层通过播放流服务下发Render Close指令,Audio Stream Dispatch服务收到指令后调用Platform AudioRenderClose对已申请资源进行释放。
###
控制流程<a name="section3113"></a>
###
# 控制流程
![](
figures/ADM控制流程图.png
)
1.
设置音量,首先Interface Lib层通过控制服务下发获取音量范围指令,Control Dispatch控制服务收到指令后进行解析,并调用Codec模块Get函数,获取可设置音量的范围。
2.
Interface Lib层通过控制服务下发设置音量指令,Control Dispatch控制服务收到指令后进行解析,并调用Codec模块Set函数设置音量。
##
Audio驱动开发步骤<a name="section3200"></a>
##
# Audio驱动开发步骤
###
已有平台开发<a name="section3221"></a>
###
# 已有平台开发
ADM适配已有平台(Hi3516DV300)Codec或Accessory(Smart PA)的驱动开发流程:
...
...
@@ -152,10 +107,9 @@ ADM适配已有平台(Hi3516DV300)Codec或Accessory(Smart PA)的驱动开发
-
如果新添加Codec或Smart PA和已适配Codec或Smart PA的工作流程相同则不需要实现Codec或Smart PA的操作函数集和配置编译文件。
-
进行编译调试验证。
###
新平台开发<a name="section3222"></a>
###
# 新平台开发
ADM适配新平台Audio驱动开发流程:
...
...
@@ -173,13 +127,13 @@ Audio驱动需要将Audio相关的Codec(可选)、Dai、DMA、DSP(可选
#
Audio驱动开发实例<a name="section4000"></a>
#
# Audio驱动开发实例
代码路径:drivers/peripheral/audio
下面以Hi3516DV300为例,介绍audio的codec驱动、accessory驱动、dai驱动、platform驱动开发步骤。
##
Codec驱动开发实例<a name="section4100"></a>
##
# Codec驱动开发实例
代码路径:drivers/peripheral/audio/chipsets/hi3516dv300/codec
codec驱动开发主要包含如下几个重要步骤:
...
...
@@ -188,7 +142,7 @@ codec驱动开发主要包含如下几个重要步骤:
3.
注册绑定到HDF框架
4.
配置HCS和Makefile
###
Codec数据结构填充<a name="section4111"></a>
###
# Codec数据结构填充
Codec模块需要填充如下3个结构体:
...
...
@@ -216,7 +170,7 @@ struct DaiData g_codecDaiData = {
};
```
###
codecDevice和codecDai设备初始化<a name="section4112"></a>
###
# codecDevice和codecDai设备初始化
CodecDeviceInit将完成AIAO的设置、寄存器默认值初始化、g_audioControls插入到controls链、电源管理初始化、通路选择设置等。
...
...
@@ -264,7 +218,7 @@ int32_t CodecDaiDeviceInit(struct AudioCard *card, const struct DaiDevice *devic
}
```
###
Codec操作函数集实现<a name="section4113"></a>
###
# Codec操作函数集实现
codec模块当前封装了OSAL读写寄存器的Read、Write函数。
...
...
@@ -317,7 +271,7 @@ int32_t CodecDaiHwParams(const struct AudioCard *card, const struct AudioPcmHwPa
}
```
###
Codec注册绑定到HDF<a name="section4114"></a>
###
# Codec注册绑定到HDF
此处依赖HDF框架的驱动实现方式,具体流程可参考
[
HDF驱动框架
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-hdf.md
)
指导。
...
...
@@ -375,7 +329,7 @@ static void CodecDriverRelease(struct HdfDeviceObject *device)
}
```
### HCS配置流程<a name="section4115"></a>
###
#
HCS配置流程<a name="section4115"></a>
hcs中配置驱动节点、加载顺序、服务名称等。hcs语法可参考HDF框架的
[
配置管理
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-hdf-manage.md
)
。
...
...
@@ -657,7 +611,7 @@ int32_t CodecDeviceInit(struct AudioCard *audioCard, struct CodecDevice *codec)
##
Accessory驱动开发实例<a name="section4200"></a>
##
# Accessory驱动开发实例
代码路径:drivers/peripheral/audio/chipsets/tfa9879/accessory
SmartPA归属于Accessory驱动的一种,开发步骤类似于codec:
...
...
@@ -666,7 +620,7 @@ SmartPA归属于Accessory驱动的一种,开发步骤类似于codec:
3.
注册绑定到HDF框架
4.
配置HCS和Makefile。
###
Accessory数据结构填充<a name="section4221"></a>
###
# Accessory数据结构填充
Accessory模块需要填充如下3个结构体:
...
...
@@ -695,7 +649,7 @@ struct DaiData g_tfa9879DaiData = {
};
```
###
accessoryDevice和accessoryDai设备初始化<a name="section4222"></a>
###
# accessoryDevice和accessoryDai设备初始化
设备初始化入口函数为Tfa9879DeviceInit,其中主要包括设置SmartPA I2C设备地址,获取配置数据、初始化(含重置)设备寄存器和绑定控制功能配置到控制链表中,当前Demo实现中也包括了Hi3516DV300设备的相关寄存器初始化,如初始化GPIO引脚等。
...
...
@@ -746,7 +700,7 @@ int32_t AccessoryI2cReadWrite(struct AudioAddrConfig *regAttr, uint16_t rwFlag)
}
```
###
Accessory操作函数集实现<a name="section4223"></a>
###
# Accessory操作函数集实现
AccessoryDeviceRegRead和AccessoryDeviceRegWrite 2个回调函数中,调用I2C读写寄存器公用函数AccessoryI2cReadWrite,读写控制寄存器的值。
...
...
@@ -823,7 +777,7 @@ int32_t Tfa9879DaiHwParams(const struct AudioCard *card, const struct AudioPcmHw
}
```
###
Accessory注册绑定到HDF<a name="section4224"></a>
###
# Accessory注册绑定到HDF
此处依赖HDF框架的驱动实现方式,具体流程可参考
[
HDF驱动框架
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-hdf.md
)
。
...
...
@@ -864,13 +818,13 @@ struct HdfDriverEntry g_tfa9879DriverEntry = {
HDF_INIT
(
g_tfa9879DriverEntry
);
```
###
HCS配置流程<a name="section4225"></a>
###
# HCS配置流程
配置过程可参考Codec驱动开发实例
[
HCS配置流程
](
#section4115
)
章节。
##
Platform驱动开发实例<a name="section4300"></a>
##
# Platform驱动开发实例
代码路径:drivers/peripheral/audio/chipsets/hi3516dv300/soc
在Audio驱动开发中,platform为DMA驱动的适配。platform驱动开发主要包含如下几个重要步骤:
...
...
@@ -879,7 +833,7 @@ HDF_INIT(g_tfa9879DriverEntry);
3.
注册绑定到HDF框架
4.
配置HCS和Makefile
###
Platform数据结构填充<a name="section4331"></a>
###
# Platform数据结构填充
Platform模块需要填充如下2个结构体:
...
...
@@ -907,7 +861,7 @@ struct PlatformData g_platformData = {
};
```
###
dmaDevice设备初始化<a name="section4332"></a>
###
# dmaDevice设备初始化
设备初始化入口函数为AudioDmaDeviceInit,其中主要包括设置3516平台特有的AIAO初始化等。
...
...
@@ -927,7 +881,7 @@ int32_t AudioDmaDeviceInit(const struct AudioCard *card, const struct PlatformDe
}
```
###
DMA操作函数集实现<a name="section4333"></a>
###
# DMA操作函数集实现
Dma设备操作函数集,包含了DMA通用接口的封装。如通用接口不能满足开发要求,可自行实现新的DMA回调函数。
...
...
@@ -944,7 +898,7 @@ int32_t Hi3516DmaResume(const struct PlatformData *data);
int32_t
Hi3516DmaPointer
(
struct
PlatformData
*
data
,
uint32_t
*
pointer
);
```
###
Platform注册绑定到HDF<a name="section4334"></a>
###
# Platform注册绑定到HDF
此处依赖HDF框架的驱动实现方式,具体流程可参考
[
HDF驱动框架
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-hdf.md
)
。
...
...
@@ -988,13 +942,13 @@ struct HdfDriverEntry g_platformDriverEntry = {
HDF_INIT
(
g_platformDriverEntry
);
```
###
HCS配置流程<a name="section4335"></a>
###
# HCS配置流程
配置过程可参考Codec驱动开发实例
[
HCS配置流程
](
#section4115
)
章节。
##
Dai驱动开发实例<a name="section4400"></a>
##
# Dai驱动开发实例
代码路径:drivers/peripheral/audio/chipsets/hi3516dv300/soc
Dai驱动开发主要包含如下几个重要步骤:
...
...
@@ -1003,7 +957,7 @@ Dai驱动开发主要包含如下几个重要步骤:
3.
注册绑定到HDF框架
4.
配置HCS和Makefile
###
Dai数据结构填充<a name="section4441"></a>
###
# Dai数据结构填充
Dai模块需要填充如下2个结构体:
...
...
@@ -1026,7 +980,7 @@ struct DaiData g_daiData = {
};
```
###
daiDevice设备初始化<a name="section4442"></a>
###
# daiDevice设备初始化
设备初始化入口函数为DaiDeviceInit,其中主要包括设置dai的配置信息初始化,添加到Controls等。
...
...
@@ -1049,7 +1003,7 @@ int32_t DaiDeviceInit(struct AudioCard *audioCard, const struct DaiDevice *dai)
}
```
###
Dai操作函数集实现<a name="section4443"></a>
###
# Dai操作函数集实现
AudioDeviceReadReg和AudioDeviceWriteReg在3516平台均未使用,作为接口预留。
...
...
@@ -1108,7 +1062,7 @@ int32_t DaiStartup(const struct AudioCard *card, const struct DaiDevice *device)
}
```
###
Dai注册绑定到HDF<a name="section4444"></a>
###
# Dai注册绑定到HDF
此处依赖HDF框架的驱动实现方式,具体流程可参考
[
HDF驱动框架
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-hdf.md
)
。
...
...
@@ -1164,13 +1118,13 @@ struct HdfDriverEntry g_daiDriverEntry = {
HDF_INIT
(
g_daiDriverEntry
);
```
###
HCS配置流程<a name="section4445"></a>
###
# HCS配置流程
配置过程可参考Codec驱动开发实例
[
HCS配置流程
](
#section4115
)
章节。
##
Makefile中添加编译配置<a name="section4500"></a>
##
# Makefile中添加编译配置
添加新增文件到对应的config中,将其编译链接到内核镜像。
...
...
@@ -1211,7 +1165,7 @@ $(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_dma_adapter.c
##
源码结构与目录<a name="section4600"></a>
##
# 源码结构与目录
实现驱动接口头文件中的函数。以Hi3516为例,目录架构如下:
...
...
@@ -1291,10 +1245,10 @@ vendor/hisilicon/hispark_taurus/
#
使用HAL的开发步骤与实例<a name="section5000"></a>
#
# 使用HAL的开发步骤与实例
代码路径:drivers/peripheral/audio/hal
##
HAL模块使用步骤<a name="section5100"></a>
##
# HAL模块使用步骤
![](
figures/HAL流程图.png
)
...
...
@@ -1316,7 +1270,7 @@ vendor/hisilicon/hispark_taurus/
3. manager->UnloadAdapter();
##
HAL使用实例<a name="section5200"></a>
##
# HAL使用实例
```
c
#include <string.h>
...
...
@@ -1404,6 +1358,6 @@ static void *hal_main()
#
总结<a name="section9999"></a>
#
# 总结
以上就是基于Audio驱动框架进行移植开发过程中,所涉及的所有关键适配点。重点介绍了 Audio驱动适配方法、HDI层接口使用方法。开发者可以根据不同芯片进行适配,方便简单。希望通过本次的文档,您能初步掌握基于HDF框架的Audio驱动开发。
\ No newline at end of file
zh-cn/device-dev/driver/driver-peripherals-sensor-des.md
浏览文件 @
49b3ebac
# SENSOR<a name="ZH-CN_TOPIC_0000001078401780"></a>
-
[
概述
](
##概述
)
-
[
功能简介
](
###功能简介
)
-
[
基本概念
](
###基本概念
)
-
[
运作机制
](
###运作机制
)
-
[
开发指导
](
##开发指导
)
-
[
场景介绍
](
###场景介绍
)
-
[
接口说明
](
#section188213414114
)
-
[
开发步骤
](
#section7893102915819
)
-
[
调测验证
](
#section106021256121219
)
# SENSOR
## 概述
### 功能简介
Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供稳定的Sensor基础能力接口,包括Sensor列表查询、Sensor启停、Sensor订阅及取消订阅,Sensor参数配置等功能;Sensor设备驱动的开发是基于HDF驱动框架基础上,结合操作系统适配层(OSAL)和平台驱动接口(比如I2C/SPI/UART总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现Sensor驱动“一次开发,多系统部署”的目标。Sensor驱动模型如
[
图1
](
#
fig10451455446
)
所示:
<a
name=
"section3634112111"
></a>
Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供稳定的Sensor基础能力接口,包括Sensor列表查询、Sensor启停、Sensor订阅及取消订阅,Sensor参数配置等功能;Sensor设备驱动的开发是基于HDF驱动框架基础上,结合操作系统适配层(OSAL)和平台驱动接口(比如I2C/SPI/UART总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现Sensor驱动“一次开发,多系统部署”的目标。Sensor驱动模型如
[
图1
](
#
Sensor驱动模型图
)
所示。
**图 1**
Sensor驱动模型图
<a
name=
"fig10451455446"
></a>
![
Sensor驱动模型图
](
figures/Sensor%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%9B%BE.png
)
**图 1**
Sensor驱动模型图
![
Sensor驱动模型图
](
figures/Sensor驱动模型图.png
)
### 基本概念
...
...
@@ -35,7 +25,7 @@ Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供
**图 2**
Sensor驱动运行图
![
Sensor驱动运行图
](
figures/Sensor
%E9%A9%B1%E5%8A%A8%E8%BF%90%E8%A1%8C%E5%9B%BE
.png
)
![
Sensor驱动运行图
](
figures/Sensor
驱动运行图
.png
)
Sensor驱动模型以标准系统Hi3516DV300产品中的加速度传感器驱动为例,介绍整个驱动加载及运行流程:
...
...
@@ -55,12 +45,12 @@ Sensor驱动模型以标准系统Hi3516DV300产品中的加速度传感器驱动
### 场景介绍
-
通过重力和陀螺仪传感器数据,能感知设备倾斜和旋转量,提高用户在游戏场景中的体验。
-
通过
接近光传感器数据,感知距离遮挡物的距离,使设备能够自动亮灭屏,达到防误触目的。例如:通话时,当靠近手机时,关闭屏幕,达到降低功耗的作用
。
-
通过
距离光传感器数据,感知距离遮挡物的距离,使设备能够自动亮灭屏,达到防误触目的。例如,手机通话时,如屏幕距离人脸过近,则自动关闭屏幕,防止误触的同时降低功耗
。
-
通过气压计传感器数据,可以准确的判断设备当前所处的海拔。
-
通过环境光传感器数据,设备能够实现背光自动调节。
-
通过霍尔传感器数据,设备可以实现皮套功能,皮套合上,手机上开一个小窗口,可降低功耗。
### 接口说明
<a name="section188213414114"></a>
### 接口说明
Sensor驱动模型对外开放的API接口能力如下:
...
...
@@ -70,9 +60,9 @@ Sensor驱动模型对外开放的API接口能力如下:
-
提供同一类型Sensor器件驱动归一接口, 寄存器配置解析操作接口,总线访问抽象接口,平台抽象接口。
-
提供开发者实现的能力接口:依赖HDF驱动框架的HCS(HDF Configuration Source)配置管理,根据同类型Sensor差异化配置,实现Sensor器件参数序列化配置和器件部分操作接口,简化Sensor器件驱动开发。
Sensor驱动模型对外开放的API接口能力的具体实现参考
[
表1
](
#
PinCntlrMethod成员的回调函数功能说明
)
:
Sensor驱动模型对外开放的API接口能力的具体实现参考
[
表1
](
#
Sensor驱动模型对外API接口功能介绍
)
:
**表 1**
PinCntlrMethod成员的回调函数功能说明
**表 1**
Sensor驱动模型对外API接口功能介绍
| 接口名 | 功能描述 |
| ----- | -------- |
...
...
@@ -122,9 +112,9 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#Sen
| void ReadSensorData(void) | 实现传感器的数据读取函数。 |
接口实现参考
[
开发步骤
](
#
section7893102915819
)
章节。
接口实现参考
[
开发步骤
](
#
开发步骤
)
章节。
### 开发步骤
<a name="section7893102915819"></a>
### 开发步骤
1.
基于HDF驱动框架,按照驱动Driver Entry程序,完成加速度抽象驱动开发,主要由Bind、Init、Release、Dispatch函数接口实现。
-
加速度传感器驱动入口函数实现
...
...
@@ -524,12 +514,12 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#Sen
>![](../public_sys-resources/icon-note.gif) **说明:**
>
>- 传感器驱动模型已经提供一部分能力集,包括驱动设备管理能力、抽象总线和平台操作接口能力、通用配置操作接口能力、配置解析操作接口能力,接口参考[表2](#
table1156812588320
)。
>- 传感器驱动模型已经提供一部分能力集,包括驱动设备管理能力、抽象总线和平台操作接口能力、通用配置操作接口能力、配置解析操作接口能力,接口参考[表2](#
Sensor驱动模型对驱动开发者开放的功能接口列表
)。
>
>- 需要开发人员实现部分有:传感器部分操作接口([表3](#
table1083014911336))
和传感器HCS差异化数据配置。
>
- 驱动基本功能验证。
>- 需要开发人员实现部分有:传感器部分操作接口([表3](#
Sensor驱动模型要求驱动开发者实现的接口列表))
和传感器HCS差异化数据配置。
>- 驱动基本功能验证。
### 调测验证
<a name="section106021256121219"></a>
### 调测验证
驱动开发完成后,在传感器单元测试里面开发自测试用例,验证驱动基本功能。测试环境采用开发者自测试平台。
...
...
zh-cn/device-dev/driver/driver-peripherals-vibrator-des.md
浏览文件 @
49b3ebac
# Vibrator
-
[
概述
](
##概述
)
-
[
功能简介
](
###功能简介
)
-
[
基本概念
](
###基本概念
)
-
[
运作机制
](
###运作机制
)
-
[
开发指导
](
##开发指导
)
-
[
场景介绍
](
###场景介绍
)
-
[
接口说明
](
###接口说明
)
-
[
开发步骤
](
###开发步骤
)
## 概述
...
...
@@ -16,7 +9,7 @@
**图 1**
马达驱动模型图
![
Vibrator驱动模型图
](
figures/Vibrator
%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%9B%BE
.png
)
![
Vibrator驱动模型图
](
figures/Vibrator
驱动模型图
.png
)
### 基本概念
...
...
@@ -36,7 +29,7 @@
**图2**
马达驱动运行图
![
Vibrator驱动运行图
](
figures/Vibrator
%E9%A9%B1%E5%8A%A8%E8%BF%90%E8%A1%8C%E5%9B%BE
.png
)
![
Vibrator驱动运行图
](
figures/Vibrator
驱动运行图
.png
)
马达驱动模型以标准系统Hi3516DV300产品为例,介绍整个驱动加载及运行流程:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录