问答题
试题四(共15分)
阅读下列说明和表,回答问题1至问题2,将解答填入答题纸的对应栏内。
[说明]
看门狗(Watchdog)技术是嵌入式系统设计中保证系统可靠的常用技术。嵌入式控制系统运行时由于受到外部干扰或者内部系统错误,程序有时会出现“跑飞”现象,导致整个系统瘫痪。为了防止这一现象的发生,对系统可靠性要求较高的场合往往要加入看门狗电路。当系统“跑飞”时,看门狗电路能自动恢复系统的运行。
问答题
[问题1](8分)
设某嵌入式系统程序完整运行所需的周期时间是tp,看门狗的定时周期为tw,要求tw____(1)____tp,在程序运行过程中需要定时____(3)____(俗称“喂狗”),只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在tp时刻修改定时器的计数值,定时器将在tw时刻____(3)____,引发____(4)____,使系统得以重新运行。
请填充以上叙述中空缺处的内容,将答案填写在答题纸的对应栏中。
【正确答案】 (1)>或大于
(2)修改定时器的计数值(或重新设定看门狗的定时周期)
(3)溢出(或超时)
(4)系统复位中断
【答案解析】 看门狗电路是一个独立的定时器,有一个定时器控制寄存器,可以设定时间。当系统工作正常时,应用程序在到达时间之前要置位(喂狗),表明程序正常运行,如果没有置的话,就认为是程序跑飞,看门狗电路发出RESET指令,迫使系统自动复位而重新运行程序。看门狗的主要作用是防止程序跑飞或死锁。
所以,当程序完整运行的周期是tp,看门狗的定时周期为tw时,要求tw大于tp,在程序运行过程中需要定时修改定时器的计数值(俗称“喂狗”),只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在tp时刻修改定时器的计数值,定时器将在tw时刻溢出(或超时),引发系统复位中断,使系统得以重新运行。
问答题
[问题2](7分)
张工在某嵌入式系统中设计实现了看门狗电路,采用的芯片寄存器如表4-1、表4-2、表4-3、表4-4所示。

王工编写了以下程序代码,实现看门狗电路的初始化。请仔细阅读每行代码,然后回答问题。
【正确答案】 (1)类型修饰符,防止编译器对代码进行优化
(2)设置看门狗的分频因素为1/128、使能中断产生
(3)使能看门狗定时器
(4)统一编址
(5)小端方式
【答案解析】 (1)在驱动程序中对寄存器操作时,经常使用volatile关键字,作用是确保本条指令不会因编译器的优化而省略,且要求每次直接读值。
(2)在程序第7行,对看门狗定时器控制寄存器(WTCON)设置了三个属性值,通过查表4-4中WTCON的相应标识位,可以得知对预装比例值[15:8]、时钟分频因素[4:3]、中断位能[2]进行了设置。
(3)在程序第10行,也对看门狗定时器控制寄存器(WTCON)进行了设置,通过查表4-4中WTCON的相应标识位,可以得知位能看门狗定时器[5]。
(4)从程序的第2、3、4行可以看出,对寄存器的操作,采用存储器指令进行,所以,该系统结构采用的是内存和外设统一编址的方式。
(5)从程序第7行、第10行对看门狗定时器控制寄存器的操作,结合表4-4中对应寄存器的位定义可以看出,该系统的位序是小端方式。