列表

详情


阅读下列说明和表,回答问题1至问题2,将解答填入答题纸的对应栏内。
【说明】
看门狗(Watchdog)技术是嵌入式系统设计中保证系统可靠的常用技术。嵌入式控制系统运行时由于受到外部干扰或者内部系统错误,程序有时会出现“跑飞”现象,导致整个系统瘫痪。为了防止这一现象的发生,对系统可靠性要求较高的场合往往要加入看门狗电路。当系统“跑飞”时,看门狗电路能自动恢复系统的运行。

【问题1】(8分)
设某嵌入式系统程序完整运行所需的周期时间是tp,看门狗的定时周期为tw,要求tw(1)tp,在程序运行过程中需要定时(2)(俗称“喂狗”),只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在tp时刻修改定时器的计数值,定时器将在tw时刻(3),引发(4),使系统得以重新运行。
请填充以上叙述中空缺处的内容,将答案填写在答题纸的对应栏中。
【问题2】(7分)
张工在某嵌入式系统中设计实现了看门狗电路,采用的芯片寄存器如表4-1、表4-2、表4-3、表4-4所示。


王工编写了以下程序代码,实现看门狗电路的初始化。请仔细阅读每行代码,然后回答问题。

请将以下问题的答案写在答题纸的对应栏中。
(1)在程序的第2、3、4行,分别使用了volatile关键字,请说明该关键字的作用。
(2)在程序的第7行,实现了对看门狗的三个功能设置,除了设置预装比例值外,其他两个功能分别是什么?
(3)在程序的第10行,实现了对看门狗的哪个功能设置?
(4)该系统结构采用的编址方式是什么?
(5)该系统的位序是大端方式还是小端方式?

参考答案:

【问题1】
(1)>或大于
(2)修改定时器的计数值(或重新设定看门狗的定时周期)
(3)溢出(或超时)
(4)系统复位中断
【问题2】
(1)类型修饰符,防止编译器对代码进行优化
(2)设置看门狗的分频因素为1/128、使能中断产生
(3)使能看门狗定时器
(4)统一编址
(5)小端方式

详细解析:

本题考查嵌入式系统中看门狗的应用以及驱动程序的设计。
【问题1】
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误,不在程序区,取出错误的程序指令等,都有可能会陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续正常工作,导致整个系统的陷入停滞状态,发生不可预料的后果。
看门狗,又叫watchdog,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做喂狗,输出一般连接到另外一个部分的复位端,一般是连接到单片机。看门狗的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。看门狗命令在程序的中断中拥有最高的优先级。
所以,假设某嵌入式系统程序完整运行所需的周期时间是tp,看门狗的定时周期为tw,要求tw大于tp,在程序运行过程中需要定时修改定时器的计数值(俗称“喂狗”),只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在tp时刻修改定时器的计数值,定时器将在tw时刻溢出(或超时),引发系统复位中断,使系统得以重新运行。

【问题2】
(1)volatile的本意是“易变的” 因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化,但有可能会读脏数据。当要求使用volatile声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。精确地说就是,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问;如果不使用volatile,则编译器将对所声明的语句进行优化。(简洁的说就是:volatile关键词影响编译器编译的结果,用volatile声明的变量表示该变量随时可能发生变化,与该变量有关的运算,不要进行编译优化,以免出错)。

上一题