版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章看门狗定时器1思维导图2学习目标理解Exynos4412处理器的看门狗工作原理,包括其核心机制(通过递减计数器监控系统运行状态)、定时周期设置方法(如分频器配置与计数值关系),以及看门狗在系统复位或中断触发中的作用。3技能目标41.掌握Exynos4412看门狗寄存器的配置,包括预分频因子、分频器选择、中断/复位使能等参数设置;2.能够通过编程实现看门狗的初始化、喂狗操作及中断处理;3.熟悉看门狗定时器在系统监控中的应用。CONTENTS目录7.1看门狗原理7.2Exynos4412看门狗控制7.3看门狗定时器控制寄存器7.4看门狗定时器应用实例5
67.1
看门狗原理看门狗定时器与普通定时器区别看门狗定时器需周期性复位,防溢出复位系统,保证运行稳定。普通定时器用于计时或中断触发。看门狗功能专用于系统可靠性监控的硬件模块,即用于检测程序的正常运行,防止因程序异常导致系统死机,通过定时复位保持系统稳定。核心工作原理通过递减计数器对时钟信号计数,若计数器溢出前未被程序主动复位(称为"喂狗"),则触发系统复位信号强制恢复运行。
假设系统程序完整运行一周期的时间是T1,看门狗的定时周期为T2,那么T2应该大于T1,即在程序运行一周期内就修改看门狗定时器的计数初值,只要程序正常运行,看门狗定时器就不会溢出。
若因为程序“跑飞”(
程序跑飞指因软件缺陷或硬件干扰导致程序计数器(PC)跳转到非预期地址,引发不可控行为)或者进入死循环,那么系统不能在T1时刻修改时间的计数值,看门狗定时器会一直计数,直到T2时刻溢出,引发系统复位,使系统重新运行,从而起到监控作用。7.1
看门狗原理7Exynos4412处理器的看门狗是当系统被故障(如噪声或者系统错误)干扰时
,用于微处理器的复位操作,也可以作为一个通用的16位定时器来请求中断操作。
Exynos4412处理器的看门狗就是当系统被故障干扰时,使微处理器复位,也可以作为一个常规16位内部定时器使用,并且可以产生中断。作为看门狗定时器使用,计时期满时,它可以产生128个PCLK时钟周期的复位信号。技术特点:“产生128个PCLK时钟周期的复位信号”是Exynos4412看门狗定时器的核心特性之一,它通过硬件固定的持续时间,确保系统在故障时能可靠恢复。这一设计体现了嵌入式系统中“故障安全”与“实时性”的平衡,是提高系统鲁棒性的关键机制。7.1
看门狗原理897.2
Exynos4412看门狗控制Exynos4412处理器的看门狗模块如图7-1所示,包括一个预分频因子、一个四分频的分频器和一个16位的计数器。输入时钟为PCLK,它经过两级分频(预分频和分频),将分频后的时钟作为该定时器的输入时钟。当计数器计满后可以产生中断或者复位信号。图7-1看门狗模块第一级分频第二级分频107.2
Exynos4412看门狗控制看门狗定时器计数值的计算公式如下:(1)输入到计数器的时钟周期为t_WatchDog=1/(PCLK/(Prescaler+1)/Divisionfactor)
其中,Prescaler为预分频值(取值范围为0~255);Divisionfactor为四分频器的分频因子,取值为16、32、64、128),由用户在WTCON(看门狗时钟控制寄存器)中设置。
(2)看门狗定时器的定时周期T为T=计数值*t_WatchDog计数值=WTCNT初值-WTCNT当前值
其中,WTCNT为看门狗计数寄存器,用来设置计数多少个时钟周期,乘以时钟周期则是定时的总时间。
一旦看门狗定时器被允许,看门狗定时器数据寄存器(WTDAT)的值就不能被自动转载到看门狗计数器(WTCNT)中。因此,看门狗启动前要将一个初始值写入到看门狗计数器(WTCNT)中。117.3
看门狗定时器控制寄存器(1)看门狗定时器控制寄存器(WTCON)(2)看门狗定时器数据寄存器(WTDAT)(3)看门狗计数寄存器(WTCNT)(1)看门狗定时器控制寄存器(WTCON)
该寄存器用于配置用户是否启用看门狗定时器、预分频值、4个分频比的选择、是否允许中断产生、是否允许复位操作等。7.3
看门狗定时器控制寄存器名称位域类型功
能
描
述复位值预分频[15:8]RW设置预分频值(0~28-1)0x0WDTtimer[5]RW0=禁止;1=使能0x0分频器[4:3]RW00=16;01=32;10=64;11=1280x0中断使能[2]RW0=禁止;1=使能0x0复位使能[0]RW0=禁止;1=使能0x0表7-1看门狗时钟控制寄存器(WTCON)WDT.WTCON=0xff<<8|1<<5|3<<3|1; /* *Prescalervalue:255,EnablesWDT *Prescalerclockdivisionfactor128 *EnablesWDTresetsignal */WTDAT寄存器用于设定超时时长。初始WDT操作时无法将WTDAT内容加载至定时器计数器。但通过使用0x8000(初始值)可触发WDT计数器的首次超时。此时WDT计数器逻辑会自动将WTDAT值重新加载至WTCNT。(2)看门狗数据寄存器(WTDAT)7.3
看门狗定时器控制寄存器表7-2看门狗数据寄存器WTCNT用于设定看门狗定时器工作时计数器的当前计数值,初始化看门狗操作后,看门狗数据寄存器的值不能被自动装载到看门狗计数寄存器中,所以看门狗被允许之前应该初始化看门狗计数寄存器的值。(3)看门狗计数寄存器(WTCNT)7.3
看门狗定时器控制寄存器表7-3
看门狗计数寄存器157.4
看门狗定时器应用实例7.4.1WatchDog实验1.实验目的
熟悉Exynos4412中断控制器的使用;
理解Exynos4412处理器的看门狗工作原理;
掌握ARM处理器的中断方式和看门狗的中断处理方法。2.实验原理
通过上述对看门狗机制及其寄存器的介绍,可以认识到看门狗是一个内置系统,它无需借助外部电路便能监控系统运行状态,检测系统是否出现异常。若系统程序异常导致无法执行“喂狗”操作,看门狗控制器将能够复位系统。167.4
看门狗定时器应用实例7.4.2程序设计与代码详解1.设计思路
由于看门狗是对系统的复位或者中断的操作,所以不需要外围的硬件电路。要实现看门狗的功能,只需要对看门狗的寄存器组进行操作,即对看门狗控制寄存器(WTCON)、看门狗数据寄存器(WTDAT)、看门狗计数寄存器(WTCNT)进行操作。
其一般流程如下:(1)设置看门狗中断操作,包括全局中断和看门狗中断的使能以及看门狗中断向量的定义。如果只是进行复位操作,这一步可以不用设置。(2)对看门狗控制寄存器(WTCON)进行设置,包括设置预分频因子、分频器的分频值、中断使能和复位使能等。(3)对看门狗数据寄存器(WTDAT)和看门狗计数存器(WTCNT)进行设置。(4)启动看门狗定时器。
177.4
看门狗定时器应用实例7.4.2程序设计与代码详解2.具体程序voidwdt_init(){ WDT.WTCNT=0x2014; //initialvalue /* *Prescalervalue:255,EnablesWDT *Prescalerclockdivisionfactor128 *EnablesWDTresetsignal */ WDT.WTCON=0xff<<8|1<<5|3<<3|1;}/*-------------------------MAINFUNCTION------------------------------*/intmain(void){ GPX2.CON=0x1<<28; uart_init(); wdt_init(); printf("\n*************WDTRESETtest!!***************\n"); while(1) { //Turnon LED2 GPX2.DAT=GPX2.DAT|0x1<<7; mydelay_ms(200);#if0 //FeedDog WDT.WTCNT=0x2014;#endif printf("working...\n"); //Turnoff LED2 GPX2.DAT=GPX2.DAT&~(0x1<<7); mydelay_ms(200); } return0;}187.4
看门狗定时器应用实例7.4.2程序设计与代码详解2.具体程序(看门狗中断测试代码)#include"exynos_4412.h"#include"uart.h"
voiddo_irq(void){ intirq_num; irq_num=(CPU0.ICCIAR&0x1FF); printf("\n*******WDTinterrupt!!********\n"); WDT.WTCLRINT=1; //Endofinterrupt CPU0.ICCEOIR=(CPU0.ICCEOIR&~(0x1FF))|irq_num;}197.4
看门狗定时器应用实例7.4.2程序设计与代码详解2.具体程序(看门狗中断测试代码)voidwdt_init(){ WDT.WTCNT=0x2014; //initialvalue /* *Prescalervalue:255,EnablesWDT *Prescalerclockdivisionfactor128 *EnablesWDTinterrupt */ WDT.WTCON=0xff<<8|1<<5|3<<3|1<<2;}207.4
看门狗定时器应用实例7.4.2程序设计与代码详解2.具体程序(看门狗中断测试代码)intmain(void){ GPX2.CON=0x1<<28; uart_init(); //EnablesthecorrespondinginterruptSPI43,WDT ICDISER.ICDISER2|=1<<11;//ICDISER2:spi32[bit0]~63[bit31],43-32=[bit11] CPU0.ICCICR|=0x1;//Globalenableforsignalingofinterrupts CPU0.ICCPMR=0xFF;//Theprioritymasklevel.Priorityfilter.threshold ICDDCR=1; //Bit1:GICmonitorstheperipheralinterruptsignalsand //forwardspendinginterruptstotheCPUinterfaces2 //ICDIPTR18:SPI40~SPI43;SPI43interruptsaresenttoprocessor0 ICDIPTR.ICDIPTR18=(ICDIPTR.ICDIPTR18&~(0xFF<<24))|1<<24;217.4
看门狗定时器应用实例7.4.2程序设计与代码详解2.具体程序(看门狗中断测试代码) wdt_init(); printf("\n***************WDTInterrupttest!!**
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上海中医药大学附属闵行晶城中学教师招聘笔试题库带答案详解(培优A卷)
- JJF(晋) 88-2024 变压器用油面温控器校准规范
- 关于物流系统升级项目延期申请函(4篇)
- 聚乙二醇增韧地质聚合物胶凝材料的力学性能及微观结构研究
- 2025年中国半自动背式插销机数据监测报告
- 2025年中国净化交流稳压器数据监测报告
- 2025年中国克隆怡宝数据监测报告
- 2025年中国人子呢数据监测报告
- 2025年中国不锈钢大帽沿抽芯铆钉数据监测报告-1780116876
- 2025年中国5英寸寻像器摄像机防雨罩数据监测报告
- 2026学年七年级道德与法治上册第三单元重点题型过关检测含答案及解析
- 智慧农业前沿技术导论 课件 第14章 智慧植保
- 山东能源集团2026年委培试题
- (2026年)放射性皮肤损伤的护理中华护理团标课件
- 深度解析(2026)《WST 92-1996血中锌原卟啉的血液荧光计测定方法》
- 原发性血小板减少症
- GB 6441-2025生产安全事故分类与编码
- 村卫生所医疗规章制度
- 2026年及未来5年中国环孢素滴眼液行业市场全景监测及投资战略咨询报告
- 儿童肺脓肿诊疗指南(2025年版)
- 2026年广发证券港股通开通测试题及实战解析
评论
0/150
提交评论