第二部分:S5PV210_关看门狗_1
1.关看门狗
(1)什么是看门狗?
看门狗就好像你家门口的一条狗,我们必须在规定的时间内去喂狗,如果经过了规定的时间,你还不去喂狗的话,它就会咬死你。
看门狗本质上是一个定时器,首先,你给看门狗设置好一段时间,然后看门狗就开始计时,CPU必须在这段时间过去之前重置看门狗内的时间,好让他重新计时,如果cpu不去重置看门狗内的时间的话,看门狗就会重启整个系统或者产生一个中断,当我们系统正常运行的时候,我们当然不希望重启系统啦,所以,我们就要喂狗(重置它里面的值)。
(2)看门狗的作用:监督,维护好系统,看系统是否正常运转。
在一些比较恶劣的环境的情况下,当我们的系统坏的时候,我们没有办法人工重启的时候,看门狗就可以帮助我们重启系统。因为,系统坏了,CPU就不会去喂狗,不喂狗,看门狗到了那个时间后,就会触发重启,系统就自动重启了。
(3)为什么要关看门狗?
因为现在我们人工用着这机器,当然不需要看门狗了,因为,系统崩溃了,我们会自己重启它,所以,我们现在需要关闭看门狗的功能。
(4)看门狗相关的寄存器
WTCON:看门狗主要功能的设置,如开/关看门狗,使能中断,使能重启,设置时钟分频多少等等。
WTDAT:看门狗重载的计数值
WTCNT:看门狗当前的计数值,看门狗计时时的当前值。
WTCLRINT:清中断,写1进去就清除中断
WTDAT寄存器和WTCNT寄存器的关系:看门狗刚开始启动的时候,WTDAT的值是不会自动重载到WTCNT的(这里WTDAT的值自动重载进WTCNT内是仅发生在中断的情况下的,发生完中断后,WTDAT的值就会自动重载进WTCNT内,然后WTCNT开始自动减1,开始下一次计时。不会发生在重启的原因是:重启的时候,断电,一切寄存器内的值都不存在了,并且重启的时候也不需要自动重载,因为它又经过了一次初始化,用初始化的值就可以了。),因此,在启动看门狗之前,我们必须写一个初始值给WTCNT寄存器。
(5)看门狗时钟分频的介绍
来源是PCLK(66MHz),经过一个预分频器,再经过一个MUX开关,就得到了看门狗的时钟频率了。
计算公式:
以下面代码为例:t_watchdog = 1/(66M/(65+1))/128) = 128us
(6)写相关寄存器的代码示例
1 void wdt_init_interrupt(void) 2 { 3 //首先,我们就设置预分频器(8~15),先清零,然后再设置值为66,因为时钟源是PCLK(66MHz)得到1MHz 4 rWTCON &= ~(0xff<<8); 5 rWTCON |= (65<<8); 6 7 //然后设置分频器(3~4),先清零,然后设置值为128,得到周期是128us 8 rWTCON &= ~(0x3<<3); 9 rWTCON |= (0x3<<3); 10 11 //然后就选择中断模式了(2),关闭复位模式(0) 12 rWTCON |= (1<<2); 13 rWTCON &= ~(1<<0); 14 15 //设置计数值了,就设置为1.28s 16 rWTDAT = 10000; 17 rWTCNT = 10000; 18 19 //最后,都设置好了,就开启看门狗定时器了(5) 20 rWTCON |= (1<<5); 21 } 22 rWTCLRINT = 1; //清中断,这里是设置任意数就可以清零了
还有喂狗的操作是写WTCNT寄存器的:
void feed_dog(void) {rWTCNT= 10000; }
参考来源:朱老师物联网大教程
转载于:https://www.cnblogs.com/nibuyaoni/p/5716959.html
第二部分:S5PV210_关看门狗_1相关推荐
- 第四天:关看门狗、设置栈、控制icache、重定位、链接脚本
1.汇编写启动代码:关看门狗 什么是看门狗? 看门狗(watch dog timer看门狗定时器),比如:家门口有一只狗,这个狗定时会饿(譬如两小时一饿),狗饿了就会胡乱咬人,人进进出出要想保证安全必 ...
- C8051关闭看门狗汇编语言,汇编写启动代码之关看门狗
1 什么是看门狗? 看门狗(watch dog timer 看门狗定时器).大家想象这样一个场景:家门口有一只狗,这个狗定时会饿(譬如说2小时一饿),够饿了会胡乱咬死人.人进进出出要想保证安全必须提前 ...
- 看门狗(APB watchdog)简介,各个寄存器简介,把看门狗挂到APB总线上,看门狗的验证测试(1)
看门狗简介: 在系统运行时,可能会在外界的干扰下,出现程序跑飞的情况,看门狗的出现就是为了解决这种故障.看门狗是一个独立于系统的计数器即它的时钟和系统时钟不是同一个时钟,在看门狗时钟的驱动下,计数器会 ...
- 嵌入式学习(二)——刷机和led实验(看门狗、c语言、icache、重定位、SDRAM)
目录 一.刷机和裸机实验 1.1 刷机步骤 1.2 交叉编译链 1.2.1 环境变量配置 二.led实验 2.1 实验准备 2.2 实验开始 2.2.1 Makefile 2.2.2 mkv210_i ...
- STC89系列单片机看门狗的使用及应用程序
转载:STC89系列单片机看门狗的使用及应用程序 "看门狗"概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程 ...
- 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十一)看门狗
疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十一) 看门狗 开看门狗(默认开):WDTCTL=WDTPW; 清看门狗:WDTCTL=WDTPW+WDTCNTCL; 关看门狗:WDTCTL ...
- 04 看门狗和Cache
注:本文学习朱有鹏老师课程的学习笔记 汇编写启动代码之关看门狗 1.什么是看门狗? 看门狗( watch dog timer 看门狗定时器). 1.大家想象这样一个场景:家门口有一只狗,这个狗定时会饿 ...
- [STM32F1官方例程讲解2] 模拟看门狗Analog Watchdog
[STM32F1官方例程讲解2] 模拟看门狗 第一章 模拟看门狗简介 第二章 STM32F1模拟看门狗相关配置函数介绍 第三章 电路原理图与库函数配置 3.1 程序逻辑 3.2 硬件原理(LED灯) ...
- 关于我对stm32看门狗的一些理解(基于正点原子)
咕咕咕之后想更会儿stm32哈哈哈,但是其实是之前自己写的笔记,想着以后就写在一起吧,我自己也更好去找到自己写的玩意~毕竟总所周知,博客都是写给自己的. (虽然好像现在自己都看不懂了我的天哪) 一.什 ...
最新文章
- Android 面试题目之 关于AbstractQueuedSynchronizer的注解翻译
- python带我起飞_【有书共读】python带我起飞读书笔记05
- boost::graph模块实现双连通分量算法的测试程序
- Ajax+Node.js前后端交互最佳入门实践(01)
- 分组查询最晚一条数据(ORACLE)
- Android Nine-patch
- idea中自动deployment的步骤
- python语法基础知识案例_Python 语法速览与实战清单
- leetcode-深度优先搜索
- beego mysql按时间排序_beego的数据库操作优化
- 线段树扫描线(1---算矩形的总面积)
- HBase region的split过程浅析
- pc测试xbox精英手柄的软件,Xbox Elite手柄还是Steam手柄?一个PC玩家的手柄之路 篇二:偷懒拖更一万年,补上使用细节及软件部分的测评...
- 英特尔第十代处理器为什么不支持win7_为什么i7处理器不支持win7系统,背后的真实原因?...
- LS-DYNA系列_Mie-Gruneisen状态方程
- linux底层播放器,[转载]媒体播放器三大底层架构:MPC、MPLAYER、VLC
- jupyter修改工作路径提示找不到指定模块
- WIN10隐藏任务栏和桌面图标(简易实现)
- Matlab 绘制双纵轴图
- 如何看待多所985高校开设人工智能专业?
热门文章
- js事件技巧方法整合
- SRM144 DIV2 1100
- 网站最令人讨厌的几个用户体验
- https的基本原理,看完你的程序员女朋友再也不和你提分手了
- 线性表的顺序存储——顺序存储结构的抽象实现
- lintcode-easy-Insertion Sort List
- JavaScript的一些实用技巧收藏
- mybatis plus 日志打印_mybatis升级为mybatis-plus踩到的坑
- nginx重定向到其他url方法_高级开发必须掌握Nginx之四,if、set、return
- 【错误记录】IntelliJ IDEA 中右键点击源码目录选择 New 选项 没有创建 Java Class 选项 ( 将对应的源码目录标记为 Sources 选项 )