Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
b6e62800
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看板
提交
b6e62800
编写于
7月 06, 2022
作者:
张
张张
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
注释格式对齐
Signed-off-by:
N
张张
<
zhangzhangd@isoftstone.com
>
上级
f9fdf739
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
8 deletion
+8
-8
zh-cn/device-dev/driver/driver-platform-uart-develop.md
zh-cn/device-dev/driver/driver-platform-uart-develop.md
+8
-8
未找到文件。
zh-cn/device-dev/driver/driver-platform-uart-develop.md
浏览文件 @
b6e62800
...
...
@@ -263,14 +263,14 @@ UART模块适配HDF框架的三个环节是配置属性文件,实例化驱动
// uart_core.c核心层UartHostCreate函数说明
struct UartHost *UartHostCreate(struct HdfDeviceObject *device)
{
struct UartHost *host = NULL; // 新建UartHost
struct UartHost *host = NULL;
// 新建UartHost
...
host = (struct UartHost *)OsalMemCalloc(sizeof(*host));//分配内存
...
host->device = device; // 【必要】使HdfDeviceObject与UartHost可以相互转化的前提
device->service = &(host->service);// 【必要】使HdfDeviceObject与UartHost可以相互转化的前提
host->device = device;
// 【必要】使HdfDeviceObject与UartHost可以相互转化的前提
device->service = &(host->service);
// 【必要】使HdfDeviceObject与UartHost可以相互转化的前提
host->device->service->Dispatch = UartIoDispatch;// 为service成员的Dispatch方法赋值
OsalAtomicSet(&host->atom, 0); // 原子量初始化或者原子量设置
OsalAtomicSet(&host->atom, 0);
// 原子量初始化或者原子量设置
host->priv = NULL;
host->method = NULL;
return host;
...
...
@@ -319,7 +319,7 @@ UART模块适配HDF框架的三个环节是配置属性文件,实例化驱动
...
port = (struct UartPl011Port *)OsalMemCalloc(sizeof(struct UartPl011Port));//【2】
...
udd->ops = Pl011GetOps();// 【3】设备开启、关闭、属性设置、发送操作等函数挂载
udd->ops = Pl011GetOps();
// 【3】设备开启、关闭、属性设置、发送操作等函数挂载
udd->recv = PL011UartRecvNotify;// 【4】数据接收通知函数(条件锁机制)挂载
udd->count = 0; // 【5】
port->udd = udd; // 【6】使UartPl011Port与UartDriverData可以相互转化的前提
...
...
@@ -328,9 +328,9 @@ UART模块适配HDF框架的三个环节是配置属性文件,实例化驱动
...
udd->private = port; //【7】
host->priv = udd; // 【必要】使UartHost与UartDriverData可以相互转化的前提
host->num = udd->num;// 【必要】UART设备号
UartAddDev(host); // 【必要】核心层uart_dev.c 中的函数,作用:注册一个字符设备节点到vfs,这样从用户态可以通过这个虚拟文件节点访问UART
host->priv = udd;
// 【必要】使UartHost与UartDriverData可以相互转化的前提
host->num = udd->num;
// 【必要】UART设备号
UartAddDev(host);
// 【必要】核心层uart_dev.c 中的函数,作用:注册一个字符设备节点到vfs,这样从用户态可以通过这个虚拟文件节点访问UART
return HDF_SUCCESS;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录