一、 WATCHDOG 概述
功能簡介
看門狗(Watchdog),又稱看門狗計(jì)時(shí)器(Watchdog timer),是一種硬件計(jì)時(shí)設(shè)備。一般有一個(gè)輸入、一個(gè)輸出,輸入叫做喂狗,輸出連接到系統(tǒng)的復(fù)位端。當(dāng)系統(tǒng)主程序發(fā)生錯(cuò)誤導(dǎo)致未及時(shí)清除看門狗計(jì)時(shí)器的計(jì)時(shí)值時(shí),看門狗計(jì)時(shí)器就會(huì)對系統(tǒng)發(fā)出復(fù)位信號,使系統(tǒng)從懸停狀態(tài)恢復(fù)到正常運(yùn)作狀態(tài)。
基本概念
系統(tǒng)正常工作的時(shí)候,每隔一段時(shí)間輸出一個(gè)信號到喂狗端,給看門狗清零,這個(gè)操作就叫做喂狗。如果超過規(guī)定的時(shí)間不喂狗,看門狗定時(shí)超時(shí),就會(huì)給出一個(gè)復(fù)位信號到系統(tǒng),使系統(tǒng)復(fù)位。
WATCHDOG 操作流程如下:
二、WATCHDOG 模塊相關(guān)API
頭文件路徑:base/iothardware/peripheral/interfaces/inner_api/iot_watchdog.h
接口函數(shù) | 描述 |
---|---|
void IoTWatchDogEnable(void) | 使能看門狗 |
void IoTWatchDogKick(void) | 喂狗 |
void IoTWatchDogDisable(void) | 關(guān)閉看門狗 |
三、WATCHDOG HDF驅(qū)動(dòng)開發(fā)
在HDF框架中,Watchdog接口適配模式采用獨(dú)立服務(wù)模式(如圖1所示)。在這種模式下,每一個(gè)設(shè)備對象會(huì)獨(dú)立發(fā)布一個(gè)設(shè)備服務(wù)來處理外部訪問,設(shè)備管理器收到API的訪問請求之后,通過提取該請求的參數(shù),達(dá)到調(diào)用實(shí)際設(shè)備對象的相應(yīng)內(nèi)部方法的目的。獨(dú)立服務(wù)模式可以直接借助HDF設(shè)備管理器的服務(wù)管理能力,但需要為每個(gè)設(shè)備單獨(dú)配置設(shè)備節(jié)點(diǎn),增加內(nèi)存占用。
獨(dú)立服務(wù)模式下,核心層不會(huì)統(tǒng)一發(fā)布一個(gè)服務(wù)供上層使用,因此這種模式下驅(qū)動(dòng)要為每個(gè)控制器發(fā)布一個(gè)服務(wù),具體表現(xiàn)為:
驅(qū)動(dòng)適配者需要實(shí)現(xiàn)HdfDriverEntry的Bind鉤子函數(shù)以綁定服務(wù)。
device_info.hcs文件中deviceNode的policy字段為1或2,不能為0。
Watchdog模塊各分層作用:
接口層提供打開看門狗設(shè)備、獲取看門狗設(shè)備狀態(tài)、啟動(dòng)看門狗設(shè)備、設(shè)置看門狗設(shè)備超時(shí)時(shí)間、獲取看門狗設(shè)備超時(shí)時(shí)間、喂狗、停止看門狗設(shè)備超時(shí)時(shí)間、關(guān)閉看門狗設(shè)備的接口。
核心層主要提供看門狗控制器的添加、移除以及管理的能力,通過鉤子函數(shù)與適配層交互。
適配層主要是將鉤子函數(shù)的功能實(shí)例化,實(shí)現(xiàn)具體的功能。
圖 1 Watchdog獨(dú)立服務(wù)模式結(jié)構(gòu)圖
3.1、開發(fā)步驟(待續(xù)…)
Watchdog模塊適配包含以下四個(gè)步驟:文章來源:http://www.zghlxwxcb.cn/news/detail-832671.html
- 實(shí)例化驅(qū)動(dòng)入口
- 配置屬性文件
- 實(shí)例化Watchdog控制器對象
- 驅(qū)動(dòng)調(diào)試
堅(jiān)持就有收獲
文章來源地址http://www.zghlxwxcb.cn/news/detail-832671.html
到了這里,關(guān)于HCIA-HarmonyOS設(shè)備開發(fā)認(rèn)證V2.0-IOT硬件子系統(tǒng)-WatchDog的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!