Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
108368d0
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
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看板
未验证
提交
108368d0
编写于
6月 28, 2022
作者:
K
king_he
提交者:
Gitee
6月 28, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/device-dev/driver/driver-platform-watchdog-develop.md.
Signed-off-by:
N
king_he
<
6384784@qq.com
>
上级
55279ddf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
9 deletion
+9
-9
zh-cn/device-dev/driver/driver-platform-watchdog-develop.md
zh-cn/device-dev/driver/driver-platform-watchdog-develop.md
+9
-9
未找到文件。
zh-cn/device-dev/driver/driver-platform-watchdog-develop.md
浏览文件 @
108368d0
...
@@ -23,8 +23,8 @@ struct WatchdogMethod {
...
@@ -23,8 +23,8 @@ struct WatchdogMethod {
int32_t (*start)(struct WatchdogCntlr *wdt);
int32_t (*start)(struct WatchdogCntlr *wdt);
int32_t (*stop)(struct WatchdogCntlr *wdt);
int32_t (*stop)(struct WatchdogCntlr *wdt);
int32_t (*feed)(struct WatchdogCntlr *wdt);
int32_t (*feed)(struct WatchdogCntlr *wdt);
int32_t (*getPriv)(struct WatchdogCntlr *wdt); //【可选】如果WatchdogCntlr中的priv成员存在,则按需实例化
int32_t (*getPriv)(struct WatchdogCntlr *wdt); //
【可选】如果WatchdogCntlr中的priv成员存在,则按需实例化
void (*releasePriv)(struct WatchdogCntlr *wdt);//【可选】
void (*releasePriv)(struct WatchdogCntlr *wdt);//
【可选】
};
};
```
```
...
@@ -123,7 +123,7 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
...
@@ -123,7 +123,7 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
controller_0x12050000 :: watchdog_controller {// 【必要】是作为设备驱动私有数据匹配的关键字
controller_0x12050000 :: watchdog_controller {// 【必要】是作为设备驱动私有数据匹配的关键字
match_attr = "hisilicon_hi35xx_watchdog_0"; // 【必要】必须和device_info.hcs中的deviceMatchAttr值一致
match_attr = "hisilicon_hi35xx_watchdog_0"; // 【必要】必须和device_info.hcs中的deviceMatchAttr值一致
}
}
//存在多个 watchdog 时【必须】添加,否则不用
//
存在多个 watchdog 时【必须】添加,否则不用
...
...
}
}
}
}
...
@@ -143,7 +143,7 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
...
@@ -143,7 +143,7 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
uint32_t phyBase; // 【必要】地址映射需要
uint32_t phyBase; // 【必要】地址映射需要
uint32_t regStep; // 【必要】地址映射需要
uint32_t regStep; // 【必要】地址映射需要
};
};
//WatchdogCntlr是核心层控制器结构体,其中的成员在Init函数中会被赋值
//
WatchdogCntlr是核心层控制器结构体,其中的成员在Init函数中会被赋值
struct WatchdogCntlr {
struct WatchdogCntlr {
struct IDeviceIoService service;// 驱动服务
struct IDeviceIoService service;// 驱动服务
struct HdfDeviceObject *device; // 驱动设备
struct HdfDeviceObject *device; // 驱动设备
...
@@ -175,7 +175,7 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
...
@@ -175,7 +175,7 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
返回值:
返回值:
HDF_STATUS相关状态 (下表为部分展示,如需使用其他状态,可见//drivers/framework/include/utils/hdf_base.h中HDF_STATUS 定义)。
HDF_STATUS相关状态 (下表为部分展示,如需使用其他状态,可见//
drivers/framework/include/utils/hdf_base.h中HDF_STATUS 定义)。
**表2** Init函数和Bind函数入参和返回值
**表2** Init函数和Bind函数入参和返回值
...
@@ -193,8 +193,8 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
...
@@ -193,8 +193,8 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
```
```
//一般而言,Init函数需要根据入参(HdfDeviceObject对象)的属性值初始化Hi35xxWatchdog结构体的成员,
//
一般而言,Init函数需要根据入参(HdfDeviceObject对象)的属性值初始化Hi35xxWatchdog结构体的成员,
//但本例中是在bind函数中实现的
//
但本例中是在bind函数中实现的
static int32_t Hi35xxWatchdogInit(struct HdfDeviceObject *device)
static int32_t Hi35xxWatchdogInit(struct HdfDeviceObject *device)
{
{
(void)device;
(void)device;
...
@@ -206,9 +206,9 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
...
@@ -206,9 +206,9 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱
int32_t ret;
int32_t ret;
struct Hi35xxWatchdog *hwdt = NULL;
struct Hi35xxWatchdog *hwdt = NULL;
...
...
hwdt = (struct Hi35xxWatchdog *)OsalMemCalloc(sizeof(*hwdt));//Hi35xxWatchdog 结构体的内存申请
hwdt = (struct Hi35xxWatchdog *)OsalMemCalloc(sizeof(*hwdt));//
Hi35xxWatchdog 结构体的内存申请
...
...
hwdt->regBase = OsalIoRemap(hwdt->phyBase, hwdt->regStep); //地址映射
hwdt->regBase = OsalIoRemap(hwdt->phyBase, hwdt->regStep); //
地址映射
...
...
hwdt->wdt.priv = (void *)device->property;// 【可选】此处是将设备属性的内容赋值给priv成员,但后续没有调用 priv 成员,
hwdt->wdt.priv = (void *)device->property;// 【可选】此处是将设备属性的内容赋值给priv成员,但后续没有调用 priv 成员,
// 如果需要用到priv成员,需要额外实例化WatchdogMethod的getPriv和releasePriv成员函数
// 如果需要用到priv成员,需要额外实例化WatchdogMethod的getPriv和releasePriv成员函数
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录