Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
1d0fdd9e
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看板
未验证
提交
1d0fdd9e
编写于
3月 23, 2022
作者:
O
openharmony_ci
提交者:
Gitee
3月 23, 2022
浏览文件
操作
浏览文件
下载
差异文件
!2367 断链问题处理
Merge pull request !2367 from liyan/master
上级
81aa3707
e1c5ec4c
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
19 addition
and
65 deletion
+19
-65
zh-cn/device-dev/driver/driver-peripherals-light-des.md
zh-cn/device-dev/driver/driver-peripherals-light-des.md
+2
-14
zh-cn/device-dev/driver/driver-platform-pin-develop.md
zh-cn/device-dev/driver/driver-platform-pin-develop.md
+15
-24
zh-cn/device-dev/porting/Readme-CN.md
zh-cn/device-dev/porting/Readme-CN.md
+1
-1
zh-cn/device-dev/porting/porting-linux-kernel.md
zh-cn/device-dev/porting/porting-linux-kernel.md
+0
-11
zh-cn/device-dev/quick-start/quickstart-lite-package-environment.md
...ce-dev/quick-start/quickstart-lite-package-environment.md
+0
-3
zh-cn/device-dev/subsystems/subsys-toolchain-hiperf.md
zh-cn/device-dev/subsystems/subsys-toolchain-hiperf.md
+1
-12
未找到文件。
zh-cn/device-dev/driver/driver-peripherals-light-des.md
浏览文件 @
1d0fdd9e
# LIGHT
-
[
概述
](
##概述
)
-
[
功能简介
](
###功能简介
)
-
[
运作机制
](
###运作机制
)
-
[
开发指导
](
##开发指导
)
-
[
场景介绍
](
###场景介绍
)
-
[
接口说明
](
###接口说明
)
-
[
开发步骤
](
###开发步骤
)
-
[
调测验证
](
###调测验证
)
## 概述
...
...
@@ -21,7 +9,7 @@
**图 1**
Light驱动模型图
![
Light驱动模型图
](
figures/Light
%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%9B%BE
.png
)
![
Light驱动模型图
](
figures/Light
驱动模型图
.png
)
### 运作机制
...
...
@@ -29,7 +17,7 @@
**图 2**
Light驱动运行图
![
Light驱动运行图
](
figures/Light
%E9%A9%B1%E5%8A%A8%E8%BF%90%E8%A1%8C%E5%9B%BE
.png
)
![
Light驱动运行图
](
figures/Light
驱动运行图
.png
)
Light驱动模型以标准系统Hi3516DV300为例,介绍整个驱动加载及运行流程:
...
...
zh-cn/device-dev/driver/driver-platform-pin-develop.md
浏览文件 @
1d0fdd9e
# PIN
<a name="title_PinDevelop"></a>
# PIN
-
[
概述
](
#section1_PinDevelop
)
-
[
功能简介
](
#section2_PinDevelop
)
-
[
基本概念
](
#section3_PinDevelop
)
-
[
运作机制
](
#section4_PinDevelop
)
-
[
约束与限制
](
#section5_PinDevelop
)
-
[
使用指导
](
#section6_PinDevelop
)
-
[
场景介绍
](
#section7_PinDevelop
)
-
[
接口说明
](
#section8_PinDevelop
)
-
[
开发步骤
](
#section9_PinDevelop
)
## 概述
<a name="section1_PinDevelop"></a>
## 概述
### 功能简介
<a name="section2_PinDevelop"></a>
### 功能简介
PIN即管脚控制器,用于统一管理各SoC厂商管脚资源,对外提供管脚复用功能。
### 基本概念
<a name="section3_PinDevelop"></a>
### 基本概念
PIN是一个软件层面的概念,目的是为了统一各SoC厂商PIN管脚管理,对外提供管脚复用功能,配置PIN管脚的电气特性。
...
...
@@ -27,26 +18,26 @@ PIN是一个软件层面的概念,目的是为了统一各SoC厂商PIN管脚
由于芯片自身的引脚数量有限,无法满足日益增多的外接需求。此时可以通过软件层面的寄存器设置,让引脚工作在不同的状态,从而实现相同引脚完成不同功能的目的。
### 运作机制
<a name="section4_PinDevelop"></a>
### 运作机制
在HDF框架中,PIN模块暂不支持用户态,所以不需要发布服务,接口适配模式采用无服务模式(如
图1
所示),用于不需要在用户态提供API的设备类型,或者没有用户态和内核区分的OS系统,其关联方式是DevHandle直接指向设备对象内核态地址(DevHandle是一个void类型指针)。
在HDF框架中,PIN模块暂不支持用户态,所以不需要发布服务,接口适配模式采用无服务模式(如
[
图1
](
#无服务模式结构图
)
所示),用于不需要在用户态提供API的设备类型,或者没有用户态和内核区分的OS系统,其关联方式是DevHandle直接指向设备对象内核态地址(DevHandle是一个void类型指针)。
PIN模块各分层作用:接口层提供获取PIN管脚、设置PIN管脚推拉方式、获取PIN管脚推拉方式、设置PIN管脚推拉强度、获取PIN管脚推拉强度、设置PIN管脚功能、获取PIN管脚功能、释放PIN管脚的接口。核心层主要提供PIN管脚资源匹配,PIN管脚控制器的添加、移除以及管理的能力,通过钩子函数与适配层交互。适配层主要是将钩子函数的功能实例化,实现具体的功能。
**图 1**
无服务模式结构图
![
image1
](
figures/无服务模式结构图.png
)
![
无服务模式结构图
](
figures/无服务模式结构图.png
)
### 约束与限制
<a name="section5_PinDevelop"></a>
### 约束与限制
PIN模块目前仅支持轻量和小型系统内核(LiteOS)。
PIN模块目前仅支持轻量和小型系统内核(LiteOS)。
## 开发指导
<a name="section6_PinDevelop"></a>
## 开发指导
### 场景介绍
<a name="section7_PinDevelop"></a>
### 场景介绍
PIN模块主要用于管脚资源管理。在各SoC厂商对接HDF框架时,需要来适配PIN驱动。
### 接口说明
<a name="section8_PinDevelop"></a>
### 接口说明
通过以下PinCntlrMethod中的函数调用PIN驱动对应的函数。
PinCntlrMethod定义:
...
...
@@ -73,7 +64,7 @@ struct PinCntlrMethod {
| SetPinFunc |
**cntlr**
:结构体指针,核心层Pin控制器;
<br/>
**index**
:uint32_t变量,管脚索引号;
<br/>
**funcName**
:char指针常量,传入Pin管脚功能; | 无 | HDF_STATUS相关状态 | PIN设置管脚功能 |
| GetPinFunc |
**cntlr**
:结构体指针,核心层Pin控制器;
<br/>
**index**
:uint32_t变量,管脚索引号; |
**funcName**
:char双重指针常量,传出Pin管脚功能; | HDF_STATUS相关状态 | PIN获取管脚功能 |
### 开发步骤
<a name="section9_PinDevelop"></a>
### 开发步骤
PIN模块适配包含以下四个步骤:
...
...
@@ -85,7 +76,7 @@ PIN模块适配包含以下四个步骤:
1.
**实例化驱动入口:**
-
实例化HdfDriverEntry结构体成员。
驱动开发首先需要实例化驱动入口,驱动入口必须为HdfDriverEntry(在 hdf_device_desc.h 中定义)类型的全局变量,且moduleName要和device_info.hcs中保持一致。
驱动开发首先需要实例化驱动入口,驱动入口必须为HdfDriverEntry(在 hdf_device_desc.h 中定义)类型的全局变量,且moduleName要和device_info.hcs中保持一致。
-
调用HDF_INIT将HdfDriverEntry实例化对象注册到HDF框架中。
一般在加载驱动时HDF会先调用Init函数加载该驱动。当Init调用异常时,HDF框架会调用Release释放驱动资源并退出。
...
...
@@ -292,7 +283,7 @@ PIN模块适配包含以下四个步骤:
HdfDeviceObject这个是整个驱动对外暴露的接口参数,具备HCS配置文件的信息。
返回值:
HDF
\_
STATUS相关状态
(下表为部分展示,如需使用其他状态,可见/drivers/framework/include/utils/hdf
\_
base.h中HDF
\_
STATUS 定义)。
HDF
\_
STATUS相关状态(下表为部分展示,如需使用其他状态,可见/drivers/framework/include/utils/hdf
\_
base.h中HDF
\_
STATUS 定义)。
|
**状态(值)**
|
**问题描述**
|
| ---------------------- | -------------- |
...
...
zh-cn/device-dev/porting/Readme-CN.md
浏览文件 @
1d0fdd9e
...
...
@@ -52,7 +52,7 @@ repo init -u https://gitee.com/openharmony-sig/manifest.git -b master -m devboar
-
[
标准系统芯片移植指导
](
standard-system-porting-guide.md
)
-
[
标准系统移植指南
](
standard-system-porting-guide.md
)
-
[
一种快速移植OpenHarmony Linux内核的方法
](
porting-linux-kernel.md
)
-
[
轻量和小型系统三方库移植指导
](
porting-thirdparty.md
)
-
[
轻量和小型系统三方库移植指导
](
porting-thirdparty.md
)
-
[
概述
](
porting-thirdparty-overview.md
)
-
[
CMake方式组织编译的库移植
](
porting-thirdparty-cmake.md
)
-
[
Makefile方式组织编译的库移植
](
porting-thirdparty-makefile.md
)
...
...
zh-cn/device-dev/porting/porting-linux-kernel.md
浏览文件 @
1d0fdd9e
# 一种快速移植OpenHarmony Linux内核的方法
-
[
移植概述
](
#移植概述
)
-
[
移植到三方芯片平台的整体思路
](
#移植到三方芯片平台的整体思路
)
-
[
内核态层和用户态层
](
#内核态层和用户态层
)
-
[
获得内核态层的两种方法
](
#获得内核态层的两种方法
)
-
[
借助已有Linux内核来移植OpenHarmony的流程
](
#section1233187263176
)
-
[
移植到三方芯片平台的步骤
](
#移植到三方芯片平台的步骤
)
-
[
整体构建环境的准备
](
#整体构建环境的准备
)
-
[
内核态基础代码的移植
](
#内核态基础代码的移植
)
-
[
内核态必选特性HDF的移植
](
#内核态必选特性hdf的移植
)
-
[
编译Image
](
#编译image
)
-
[
编译和运行HDF测试用例(可选)
](
#编译和运行hdf测试用例-可选-
)
## 移植概述
...
...
zh-cn/device-dev/quick-start/quickstart-lite-package-environment.md
浏览文件 @
1d0fdd9e
# 使用安装包方式搭建编译环境<a name="ZH-CN_TOPIC_0000001171615528"></a>
-
[
安装必要的库和工具
](
#section108201740181219
)
-
[
安装hb
](
#section15794154618411
)
-
[
安装LLVM\(仅OpenHarmony\_v1.x分支/标签需要\)
](
#section711117144296
)
使用安装包方式搭建Ubuntu编译环境步骤如下:
...
...
zh-cn/device-dev/subsystems/subsys-toolchain-hiperf.md
浏览文件 @
1d0fdd9e
# hiperf 使用指南
-
[
list 命令
](
#list-命令
)
-
[
参数说明
](
#参数说明
)
-
[
使用示例
](
#使用示例
)
-
[
stat 命令
](
#stat-命令
)
-
[
参数说明
](
#参数说明
)
-
[
使用示例
](
#使用示例
)
-
[
字段说明
](
#字段说明
)
-
[
record 命令
](
#record-命令
)
-
[
参数说明
](
#参数说明
)
-
[
使用示例
](
#使用示例
)
-
[
report 命令
](
#report-命令
)
-
[
使用示例
](
#使用示例
)
hiperf是为开发人员提供性能采样分析的工具,基于内核perf机制进行的用户态能力的扩展,可以对指定的程序或者整个系统进行性能采样。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录