CC2640R2f 看门狗
在TI的官方例程中就有看门狗的用法,例如:
C:\ti\simplelink_cc2640r2_sdk_2_40_00_32\examples\rtos\CC2640R2_LAUNCHXL\drivers\watchdog
这是我的SDK目录下的看门狗工程,
因为官方已经封装好了代码,所以在我们使用 看门狗的时候,直接调用即可,
头文件
#include <ti/drivers/Watchdog.h>
函数
Watchdog_init();
/* Open a Watchdog driver instance */
Watchdog_Params_init(¶ms);
params.callbackFxn = (Watchdog_Callback) watchdogCallback;
params.debugStallMode = Watchdog_DEBUG_STALL_ON;
params.resetMode = Watchdog_RESET_ON;watchdogHandle = Watchdog_open(Board_WATCHDOG0, ¶ms);
if (watchdogHandle == NULL) {
/* Error opening Watchdog */
while (1) {}
}还需要一个看门狗回调函数
void watchdogCallback(uintptr_t watchdogHandle)
{
/*
* If the Watchdog Non-Maskable Interrupt (NMI) is called,
* loop until the device resets. Some devices will invoke
* this callback upon watchdog expiration while others will
* reset. See the device specific watchdog driver documentation
* for your device.
*/
while (1) {}
}以上函数就开启了看门狗,使用:
Watchdog_clear(watchdogHandle);
清楚看门狗计数器,这种模式下的看门狗是重启的,
例如说:想让看门狗报警十次再重启设备,可以修改参数
params.resetMode = Watchdog_RESET_ON;
typedef enum Watchdog_ResetMode_ {
Watchdog_RESET_OFF, /*!< Timeouts generate interrupts only */
Watchdog_RESET_ON /*!< Generates reset after timeout */
} Watchdog_ResetMode;修改成
params.resetMode = Watchdog_RESET_OFF;
则看门狗就成中断函数,然后在看门狗回调函数里面加上
Watchdog_init();
/* Create and enable a Watchdog with resets disabled */
Watchdog_Params_init(¶ms);
params.callbackFxn = (Watchdog_Callback)watchdogCallback;
params.resetMode = Watchdog_RESET_OFF;
watchdogHandle = Watchdog_open(Board_WATCHDOG0, ¶ms);//---------------看门狗回调---------------
void watchdogCallback(uintptr_t unused)
{/* Clear watchdog interrupt flag */
Watchdog_clear(watchdogHandle);static int WDT_flag = 0;
if(WDT_flag++ > 10){
SystemReset();//重启函数
}
/* Insert timeout handling code here. */
}
CC2640R2f 看门狗相关推荐
- CC2640R2F学习笔记(8)——Watchdog看门狗使用
一.背景 如果在一定的时间内没有通过"喂狗"来清除看门狗的 counter,则看门狗会产生一个复位,使程序重启. 看门狗一旦开启,就不能停下来. 二.移植文件 链接:https:/ ...
- 调试模式和定时器,看门狗和嘀嗒定时器
文章目录 一.调试模块 二.定时器模块 三.看门狗 四.系统时基定时器 五.定时器与内核之间的关系 杨桃32学习笔记,本文图片文字皆为转述 参考博客连接 一.调试模块 所谓调试的过程便是,写好程序然后 ...
- uplay服务器未响应,《看门狗:军团》存在崩溃丢失存档BUG 育碧正在修复
原标题:<看门狗:军团>存在崩溃丢失存档BUG 育碧正在修复 <看门狗:军团>的部分玩家们近日在游戏中遇到了一个十分恼人的问题--在进行游戏时,有时会遇到游戏未响应或崩溃的问题 ...
- WINCE平台下C#应用程序中使用看门狗
看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数.如果程序运行正常,过一段时间CPU应发出指令让 ...
- 用看门狗定时器做计时器,计算程序耗时,超声波测距,FL2440
开发板:FL2440 核心芯片:S3C2440(ARM9) 超声波模块:HC-SR04 超声波模块工作原理:共四个脚,VCC接5V,GND接地,Trig脚接芯片通过IO传出的高电平(持续时间不低于10 ...
- 龙将加速浏览器_《看门狗:军团》即将开启预载,迅游加速器支持下载和联机加速 18183手机游戏网...
来源:作者:阿姆斯特朗雷时间:2020-10-26分享到: <看门狗:军团>是<看门狗>系列的最新作品,将于10月29日正式上线亚洲地区,并且即将面向各平台开启预载,迅游加速器 ...
- 5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)
本文根据一周CC2541笔记汇总得来-- 适合概览和知识快速索引-- 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 ...
- Linux 软件看门狗 watchdog
Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序.内核 watchdog 模块通过 /dev ...
- STM32F103ZET6窗口看门狗
1.WWDG简介 窗口看门狗(WWDG)通常被用来检测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障. WWDG是一个不断往下递减的计数器.当WWDG的计数器递减到固定 ...
最新文章
- 学习总结--团队项目
- 域控 批量导入 用户_kerberos域用户提权分析
- 宝塔自助建站系统源码v8.0
- 2016集训测试赛(二十六)Problem A: bar
- 作业,输入名字密码,按dict插入到list,非法字符显示*
- python列表keys函数_字典常用函数(clear、get、items、keys、values、pop)
- 【Tensorflow2.0】关于制作标签遇到的问题小结
- 计算机网络第五版思维导图大全集
- Tomcat安装及配置教程
- Js 生成uuid的四种方法
- 【转】贴片晶振挖空敷铜
- STM32通过SD卡IAP
- 2021 苟且活着,2022 向上生长
- iphone/ipad保存图片问题
- 学生专用计算机游戏怎么按,学生计算器怎么玩
- 蓝桥杯2020年上半场省赛完整版题解(Java 大学B组)
- 大连新计划__为什么企业要开发APP软件?
- Easy EDA #学习笔记08# | 创建元件库(原理图库与PCB封装库)
- iOS Instruments工具使用
- 回归预测 | MATLAB实现PCR(主成分回归)多输入单输出