HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-WatchDog

在这里插入图片描述

目录

  • 一、 WATCHDOG 概述
    • 功能简介
    • 基本概念
  • 二、WATCHDOG 模块相关API
  • 三、WATCHDOG HDF驱动开发
    • 3.1、开发步骤(待续...)
  • 坚持就有收获

一、 WATCHDOG 概述

功能简介

看门狗(Watchdog),又称看门狗计时器(Watchdog timer),是一种硬件计时设备。一般有一个输入、一个输出,输入叫做喂狗,输出连接到系统的复位端。当系统主程序发生错误导致未及时清除看门狗计时器的计时值时,看门狗计时器就会对系统发出复位信号,使系统从悬停状态恢复到正常运作状态。

基本概念

系统正常工作的时候,每隔一段时间输出一个信号到喂狗端,给看门狗清零,这个操作就叫做喂狗。如果超过规定的时间不喂狗,看门狗定时超时,就会给出一个复位信号到系统,使系统复位。

WATCHDOG 操作流程如下:

请添加图片描述

二、WATCHDOG 模块相关API

头文件路径:base/iothardware/peripheral/interfaces/inner_api/iot_watchdog.h

接口函数描述
void IoTWatchDogEnable(void)使能看门狗
void IoTWatchDogKick(void)喂狗
void IoTWatchDogDisable(void)关闭看门狗

三、WATCHDOG HDF驱动开发

在HDF框架中,Watchdog接口适配模式采用独立服务模式(如图1所示)。在这种模式下,每一个设备对象会独立发布一个设备服务来处理外部访问,设备管理器收到API的访问请求之后,通过提取该请求的参数,达到调用实际设备对象的相应内部方法的目的。独立服务模式可以直接借助HDF设备管理器的服务管理能力,但需要为每个设备单独配置设备节点,增加内存占用。

独立服务模式下,核心层不会统一发布一个服务供上层使用,因此这种模式下驱动要为每个控制器发布一个服务,具体表现为:

驱动适配者需要实现HdfDriverEntry的Bind钩子函数以绑定服务。

device_info.hcs文件中deviceNode的policy字段为1或2,不能为0。

Watchdog模块各分层作用:

接口层提供打开看门狗设备、获取看门狗设备状态、启动看门狗设备、设置看门狗设备超时时间、获取看门狗设备超时时间、喂狗、停止看门狗设备超时时间、关闭看门狗设备的接口。

核心层主要提供看门狗控制器的添加、移除以及管理的能力,通过钩子函数与适配层交互。

适配层主要是将钩子函数的功能实例化,实现具体的功能。

图 1 Watchdog独立服务模式结构图

请添加图片描述

3.1、开发步骤(待续…)

Watchdog模块适配包含以下四个步骤:

  • 实例化驱动入口
  • 配置属性文件
  • 实例化Watchdog控制器对象
  • 驱动调试

坚持就有收获

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/692745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 之LeetCode刷题记录(三十二)

😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 目标:执行用时击败90%以上使用 C 的用户。 7. 整数反转 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后…

代码随想录算法训练营第三十七天|738.单调递增的数字

738.单调递增的数字 public class Solution {public int MonotoneIncreasingDigits(int n) {string nun.ToString();char[] numnu.ToCharArray();int idxnum.Length;for(int inum.Length-1;i>0;i--){if(num[i]<num[i-1]){idxi;num[i-1]--;}}for(int iidx;i<num.Lengt…

阿赵UE学习笔记——16、渲染性能相关

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。上一篇说了灯光的移动性问题&#xff0c;这一篇来看看怎样去辨别灯光性能的好坏。   虚幻引擎里面有一组显示模式是专门用来看场景当前的灯光和网格渲染的&#xff0c;叫做优化试图模式&#x…

【Vue】fabricjs 实现局部截图及el-image-viewer大图预览

<!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <title>使用fabric.js裁剪和显示图片</title> <script src"https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.5.0/fabric.min.js"…

PaddleSeg分割框架解读[02] 配置文件config详解

PaddleSeg分割框架解读[02] 配置文件config详解 以DeepLabv3+为例进行讲解 # 设定batch_size的值即为单卡迭代一次送入网络的图片数量,一般显卡显存越大,batch_size的值可以越大 batch_size: 2 # epoch=(iters*batch_size*num_gpus)/N (x*2*4)/28990=80 iters: 289900 …

samber/lo 库的使用方法: 处理 channel

samber/lo 库的使用方法&#xff1a; 处理 channel samber/lo 是一个 Go 语言库&#xff0c;提供了一些常用的集合操作函数&#xff0c;如 Filter、Map 和 FilterMap。 这个库函数太多&#xff0c;因此我决定按照功能分别介绍&#xff0c;本文介绍的是 samber/lo 库中channel相…

adb-环境安装

1. 下载解压包&#xff1a;百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1TDu2fzGbqCyug3wCSmV9oQ?pwd…

Android无法获取已安装应用包名的问题

前言 在某些情况下&#xff0c;我们需要获取android上已安装的第三方应用的一些信息 检索 private boolean isAppInstalled(Context context, String pkgName) {if (pkgName null || pkgName.isEmpty()) {return false;}PackageInfo packageInfo;try {packageInfo context…

UI美化stylesheet

一、网上找到自己喜欢的图标 大家可以每个图标类型找出三种不同的颜色&#xff0c;方便后续美化效果&#xff0c;这里我每种只找了一个。&#xff08;随便找的&#xff0c;最后效果不好看&#xff09; 将这个文件夹复制到项目的文件夹中。 然后右键Add New…选择QT&#xff0c…

list链表

1. list基本概念 功能&#xff1a;将数据进行链式存储 链表&#xff08;list&#xff09;是一种物理存储单元上非连续的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成&#xff1a;链表由一系列结点组成 结点的组成&#xff1a;一个是存储数据…

阿里云OSS和SEC服务器,免费ssl证书申请和安装

一&#xff1a;阿里云OSS证书申请和安装 1创建免费证书等待签发 2验证&#xff0c;复制DNS解析配置 3在主体域名中解析DNS&#xff08;记录复制上面的证书申请配置&#xff09; 4验证域名DNS配置 5下载证书 6安装OSS证书 7上传证书&#xff08;下载的证书解压&#xff09…

Paddlepaddle使用自己的VOC数据集训练目标检测(0废话简易教程)

一 安装paddlepaddle和paddledection&#xff08;略&#xff09; 笔者使用的是自己的数据集 二 在dataset目录下新建自己的数据集文件&#xff0c;如下&#xff1a; 其中 xml文件内容如下&#xff1a; 另外新建一个createList.py文件&#xff1a; # -- coding: UTF-8 -- imp…

探索水下低光照图像检测性能,基于DETR(DEtection TRansformer)模型开发构建海底生物检测识别分析系统

海底这类特殊数据场景下的检测模型开发相对来说比较少&#xff0c;在前面的博文中也有一些涉及&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《尝试探索水下目标检测&#xff0c;基于yolov5轻量级系列模型n/s/m开发构建海底生物检测系统》 《基于YOLOv5C3CBAMCBA…

app逆向-平头哥框架ratel使用

文章目录 一、前言二、实现逻辑1、安装ratel手机端app2、使⽤电脑端进⾏感染目标app3、开发⼀个平头哥插件 一、前言 平头哥&#xff08;ratel&#xff09;是⼀个Android逆向分析⼯具套件&#xff0c;他提供⼀系列渐进式app逆向分析⼯具。同时平头哥也是⼀个app⼆次开发的沙箱…

Java语言概述(三)

Java 是一种通用的、面向对象的编程语言&#xff0c;支持并发编程、网络编程和多线程等特性。它由 Sun Microsystems 公司在 1995 年推出&#xff0c;并且随着其开源和跨平台的特性&#xff0c;Java 已经成为了当今最流行的编程语言之一。 Java 的主要特点包括&#xff1a; 跨…

【运维】站点可靠性工程介绍:研发,运维,SRE,Devops的关系

文章目录 1、什么是SRE2、SRE与研发、运维的区别 1、什么是SRE 站点可靠性工程&#xff08;SRE&#xff09; 是 IT 运维的软件工程方案。 SRE 团队使用软件作为工具&#xff0c;来管理系统、解决问题并实现运维任务自动化。 SRE 执行的任务以前通常由运维团队手动执行&#x…

ChatGPT遭受匿名苏丹组织DDoS攻击:网络安全在AI时代的新挑战

ChatGPT遭受匿名苏丹组织DDoS攻击&#xff1a;网络安全在AI时代的新挑战 最近&#xff0c;全球备受瞩目的AI对话机器人ChatGPT及其开发公司OpenAI遇到了一连串的服务中断和异常错误&#xff0c;这一系列问题背后似乎暗藏了分布式拒绝服务&#xff08;DDoS&#xff09;攻击的阴…

Huggingface镜像网站下载语言模型方法

通常通过镜像网站下载https://hf-mirror.com/。 在链接页面有介绍方法&#xff0c;对于不大的模型可以直接下载。这里介绍比较常用且方便的下载方法。 使用huggingface 官方提供的 huggingface-cli 命令行工具 安装&#xff08;huggingface_hub、hf_transfer安装可以使用-i命…

Elasticsearch:创建自定义 ES Rally tracks 的分步指南

作者&#xff1a;Alejandro Snchez 按照这个综合教程学习如何制作个性化的 Rally tracks ES Rally 是什么&#xff1f;它的用途是什么&#xff1f; ES Rally 是一个用于在 Elasticsearch 上测试性能的工具&#xff0c;允许你运行和记录比较测试。 做出决策可能很困难&#x…

OpenCV统计函数之minMaxLoc和meanStdDev

在OpenCV中&#xff0c;minMaxLoc和meanStdDev是两个用于统计图像或数组中元素的基本特性的函数。这些统计函数对于图像处理、特征提取和数据分析非常有用。 minMaxLoc minMaxLoc函数用于查找数组或图像中的最小值和最大值&#xff0c;并可选地返回这些值的位置。这在处理图像…