##简述
Watchdog即看门狗,在发生SW Error或外部设备没有正确respond时,可以产生一个nonmaskable中断–NMI,或一般的中断,或在设定的超时时间到达时进行reset。
另外,Watchdog也可以被配置成,第一次超时到达时向MCU报告一个中断,在第二次超时到达时产生一个reset信号。
##WDT特性

  • 32bit可编程递减计数器
  • 可编程控制的NMI或一般中断逻辑
  • Lock寄存器防止SW无意改动WDT的内容(如超时时间被意外改变)
  • reset产生使能/禁止
  • debug中在asserts CPU Halt标志时,使能挂起
    ##WDT功能

    ##WDT初始化
  • 首先其外设时钟要使能
  • 从WDT:LOAD寄存器加载计数值
  • 如果要使用其reset信号产生功能(第二次超时中断时产生的),需要使能WDT:CTL.RESEN 寄存器bit
  • 设置WDT:CTL.INTEN寄存器bit使能Watchdog
  • 使用WDT:LOCK寄存器锁住Watchdog模块
    ##WDT相关寄存器

    ##WDT的具体使用(结合driver)
void wdtCallback(UArg handle) {Watchdog_clear((Watchdog_Handle)handle);
}void wdtInitFxn() {Watchdog_Params wp;Watchdog_Handle watchdog;Watchdog_Params_init(&wp);wp.callbackFxn    = wdtCallback;wp.debugStallMode = Watchdog_DEBUG_STALL_ON;wp.resetMode      = Watchdog_RESET_ON;watchDog = Watchdog_open(CC2650_WATCHDOG0, &wp);Watchdog_setReload(watchDog, 1500000); // 1sec (WDT runs always at 48MHz/32)
}

上面的例程,wdtInitFxn是在系统初始化阶段要调用的Watchdog初始化函数,其功能就是配置好Watchdog。每过1s钟,WDT Timer会产生一个中断,此时若CPU正常运行没有被挂起,那么wdtCallback会被执行,将WDT Timer清除掉,以免下一次超时发生导致reset信号产生。假设在WDT Timer中断到来时,CPU被挂起(比如系统发生hardfault异常导致),那么WDT的callback得不到执行的(因为进入了更高优先级的中断中,一般hardfault handler是一个死循环,此时WDT这种优先级别更低的HWI应该是得不到运行的),那么第二次WDT中断就会发生了,此时应该就不管是否有更高优先级了,reset信号被产生,系统强制复位。
因此WDT的作用,就是在系统发生严重错误时,reset系统进行恢复。不过有个疑问,如果是挂起在比WDT HWI优先级更低的异常里,是否也是不能reset系统,而一直处于“卡死”状态呢?是不是正因为这样,所有ISR都不是while(1)的,而hardfault这一类的就是进入一个while(1)了。有待实验求证。

CC26xx(CortexM3) Watchdog Timer相关推荐

  1. sipp: bind_local;watchdog timer trip

    文章目录 作为服务端时,source ip 随机的问题 命令示例 bind_local watchdog_minor_maxtriggers xml 指令 send retrans 作为服务端时,so ...

  2. WatchDog Timer看门狗

    WDT是英语Watchdog Timer的缩写字母. Watchdog Timer 中文名 看门狗.是一个定时器电路,一般有一个输入,叫 喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一 ...

  3. CC26xx([CortexM3)的Power Reset and Clock

    ##简述 CC26XX是TI的CortexM3 core的一系列IC,广泛用于无线通信应用中,主要特色是低功耗.TI的CC26XX的Power Reset and Clock管理简称为PRCM. TI ...

  4. CC26xx(CortexM3)的低功耗设计

    简述 这里非BLE的低功耗设计,BLE的低功耗需要对协议栈进行了解.这里是针对CC26XX的mcu本身进行开发时,为达到休眠时尽量低的功耗,而进行的一些处理. GPIO设置 低功耗许多时候是因为GPI ...

  5. CC26xx(CortexM3) IO Control

    ##简述 IO Control即IC的Input/Output Control,即常见的GPIO的说法.CC26xx有pin mux的功能,即可以将其支持的外设功能配置到任意的IO口上(其中AUX和J ...

  6. Linux Watchdog 机制

    ​前言 Watchdog 是 Linux 系统一个很重要的机制,其目的是监测系统运行的情况,一旦出现锁死,死机的情况,能及时重启机器(取决于设置策略),并收集crash dump. watchdog, ...

  7. WINCE6.0+S3C2443下WatchDog学习

    ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...

  8. VxWorks中Timer机制

    [摘要] Timer是实时操作系统的一个重要组成部分.本文结合近阶段的学习和实验情况,对VxWorks中的时间函数和定时器作了一些探讨.主要介绍了Timer的机制,相关的函数,并给出了一些具体的例子. ...

  9. 什么是看门狗(watchdog)?看门狗有什么作用?

    什么是看门狗(watchdog) 看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂 ...

最新文章

  1. ASP.NET内置对象一
  2. 面试题整理5 顺时针打印矩阵
  3. --noinput loaddata
  4. int signed in mysql_【转】mysql 中int类型字段unsigned和signed的区别
  5. 大清铜币到底是否稀缺,有收藏价值吗?
  6. SQL语句的执行计划
  7. Allegro 使用技巧
  8. 明华澳汉 sle_4442 卡 读写
  9. pandas计算同比环比增长
  10. Bootstrap自定义图标
  11. 大时代、10000小时定律和徐霞客
  12. ad7606中文资料_【AD7606BSTZ PDF数据手册】_中文资料_引脚图及功能_(亚德诺 ADI)-采芯网...
  13. 【DP练习】月饼盒(提高版)(vijos1255)
  14. 有序的map LinkedHashMap
  15. Word文档引用EndNote中文献的方法
  16. 【干货】MySQL底层架构设计,你了解多少?
  17. shell之read用法
  18. 图形学笔记(三)画一个彩色的三角形
  19. 奥密克戎如洪水猛兽 美国财政政策蒙上担忧的阴影
  20. HTML中的超链接(a元素)用法详解

热门文章

  1. Ubuntu环境下制作Windows U盘启动工具
  2. Python零基础入门学习笔记(一)
  3. [转]PMP之挣值管理(PV、EV、AC、SV、CV、SPI、CPI)的记忆方法
  4. 基于struts+spring+ibatis的轻量级J2EE开发
  5. 【信号与系统学习笔记】—— 拉普拉斯反变换+由零极点图对傅里叶变换几何求值
  6. Day8--复数和复变函数之拉普拉斯变换及反变换和Z变换及反变换
  7. 成信大808计算机基础历年真题及答案
  8. Leetcode5238 找出给定方程的正整数解
  9. The file “XXX.app” couldn’t be opened because you don’t have permission to view it.
  10. 项目管理中的成本计算