u-boot上电为什么要关闭看门狗

u-boot上电为什么要关闭看门狗,第1张

嵌入式系统上电,首先运行的的是uboot程序,uboot开始运行,首先就要对系统硬件进行相关的初始化,比如时钟,比如mmu,比如调试串口,在这个初始化过程中,基本不备培冲会仿歼出现程序跑飞,需要看门狗照顾的情况,所以,一般的做法就是关中余闭看门狗,避免喂狗的麻烦,等一切就绪后,正常运行时,再打开看门狗。

我的开发板 是这样的

1.烧写裸机程序

一个nand flash 一个 norflash

先用jlink下载Uboot到norflash

然后启动 用uboot更新uboot到 nandflash的方式 下载裸机程序哗颤橡

然后从nandflash启动

2.ADS用法 可以去网上查查 好多

3.(不使用ADS)建洞册立裸机程序:必须自己实现几个东西

3.1初始化硬件(汇编):比如关闭看门狗啊 初始化栈指针(如果你要跑C的话) 之类

3.2MAKEFILE 中要制定连接地址 去_elf头

3.3实现你的C程序

比乱旁如简单的控制LED的裸机程序

crt0.S:

.text

.global _start

_start:

ldr r0, =0x53000000 @ WATCHDOG寄存器地址

mov r1, #0x0

str r1, [r0] @ 写入0,禁止WATCHDOG,否则CPU会不断重启

ldr sp, =1024*4 @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K

@ nand flash中的代码在复位后会移到内部ram中,此ram只有4K

bl main@ 调用C程序中的main函数

halt_loop:

b halt_loop

单片机中的看门狗指的是一个定时器电路,有一个输入和一个输出,其中输入叫做喂狗,输出连接到另外一个部分的复位端。

看门狗的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。看门狗命令在程序的中断中拥有最高的优先级。

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误,不在程序区,取出错误的程序指令等,都有可能会陷入死循环,程序的正常运行被打断,由单片机控制的系统无法余核橘继续正常工作,导致整个系统的陷入停滞状态,发生不可预料的后果。

扩展资料

工作原理

使用时,WDT将递增,直到溢出,或称“超时”。除非处于休眠或空闲模式,WDT 超时会强制器件复位。为避免WDT超时复位,用户必须定期用PWRSAV 或CLRWDT 指竖团令将看门狗定时器清氏银零。如果WDT 在休眠或空闲模式下超时,器件将唤醒并从PWRSAV 指令执行处继续执行代码。

在上述两种情况下,WDTO 位(RCON<4>)都会置1,表示该器件复位或唤醒事件是由于WDT超时引起的。如果WDT 将CPU从休眠或空闲模式唤醒,“休眠”状态位(RCON<3>)或“空闲”状态位(RCON<2>)也会置1,表示器件之前处于省电模式。

参考资料来源:百度百科-看门狗 (监控芯片)

参考资料来源:百度百科-看门狗定时器


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12350266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存