C26XX-Watchdog Timer
来源:互联网 发布:网络监控摄像机维修 编辑:程序博客网 时间:2024/06/06 02:13
简述
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)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
上面的例程,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)了。有待实验求证。
阅读全文
0 0
- C26XX-Watchdog Timer
- WatchDog Timer
- NMI Watchdog Timer
- WatchDog Timer驱动
- WatchDog Timer看门狗
- ARM Timer Watchdog
- WatchDog Timer看门狗
- Linux NMI Watchdog Timer简介
- s3c6410硬件WATCHDOG TIMER(看门狗定时器)
- [CortexM3--CC26XX]Watchdog Timer(exp)
- watchdog
- WatchDog
- Watchdog
- watchdog
- WatchDog
- watchdog
- Watchdog
- Watchdog
- rsync 同步文件
- C# 窗体程序界面显示和操作word 单是不依赖office的操作办法
- TextView显示不同颜色的字符串
- 《Tomcat内核设计剖析》作者博客
- spring源码导入到Eclipse
- C26XX-Watchdog Timer
- GitHub 整理|那些优秀的开源时间日期选择器
- 如何实现MDI窗体不重复打开同一个子窗体?
- 第五章:排序检索数据
- 小程序 坑
- D3.js中Bullet Charts详解
- Mina学习笔记 Session
- 递归(求对象中无底洞值)
- oracle除数为0时的解决方法(decode的使用)