简单看门狗

watch dog
设计原因:为了在系统异常的时候可以让系统重启复位
看门狗实际上是个定时器,系统正常的时候会定时给定时器复位,当系统异常的时候定时器没有复位,到点了就发送reset信号然后把整个系统给reset了。

为什么要关掉watch dog?

为什么要关看门狗?
一般CPU设计,在CPU启动后看门狗默认是工作的(为什么默认不关闭而要工作?我猜测是因为怕你的程序在启动代码前端就死机了或者跑飞了没人管),好处就是没有空当和漏洞,坏处就是在启动代码段我们不方便去喂狗(或者说懒得去喂狗)时看门狗会复位,所以为了偷懒我们就在启动代码前端先去关闭看门狗,然后在后面系统启动起来之后再根据需要决定是否要打开看门狗(一旦打开就必须同时提供喂狗)。

课程笔记讲的很清楚了。

怎么关?
启动代码段还没跟c语言勾搭起来,所以只能用汇编写。
在这里插入图片描述
在这里插入图片描述

ldr r0 = 0xE270_0000 //把watchdog时间控制器的地址放在寄存器r0里面
ldr r1 = 0x0 //把寄存器r1都置零
str r1,[r0] //把r1的值保存在r0里面

关掉看门狗的使能位是第5位,置零就行,反正关掉了,所以其他位置置零也没所谓,还粗暴快捷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值