未验证 提交 1d0fdd9e 编写于 作者: O openharmony_ci 提交者: Gitee

!2367 断链问题处理

Merge pull request !2367 from liyan/master
# 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为例,介绍整个驱动加载及运行流程:
......
# 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 定义)。
| **状态(值)** | **问题描述** |
| ---------------------- | -------------- |
......
......@@ -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)
......
# 一种快速移植OpenHarmony Linux内核的方法
- [移植概述](#移植概述)
- [移植到三方芯片平台的整体思路](#移植到三方芯片平台的整体思路)
- [内核态层和用户态层](#内核态层和用户态层)
- [获得内核态层的两种方法](#获得内核态层的两种方法)
- [借助已有Linux内核来移植OpenHarmony的流程](#section1233187263176)
- [移植到三方芯片平台的步骤](#移植到三方芯片平台的步骤)
- [整体构建环境的准备](#整体构建环境的准备)
- [内核态基础代码的移植](#内核态基础代码的移植)
- [内核态必选特性HDF的移植](#内核态必选特性hdf的移植)
- [编译Image](#编译image)
- [编译和运行HDF测试用例(可选)](#编译和运行hdf测试用例-可选-)
## 移植概述
......
# 使用安装包方式搭建编译环境<a name="ZH-CN_TOPIC_0000001171615528"></a>
- [安装必要的库和工具](#section108201740181219)
- [安装hb](#section15794154618411)
- [安装LLVM\(仅OpenHarmony\_v1.x分支/标签需要\)](#section711117144296)
使用安装包方式搭建Ubuntu编译环境步骤如下:
......
# 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.
先完成此消息的编辑!
想要评论请 注册