阅读以下关于C语言的基本概念和编程方面的叙述,回答问题,将解答填入答题纸的对应栏内。 【说明】 服务型智能扫地机器人的信息处理中心,用于接收各种传感器信息和视觉信息,通过分析处理进行扫地机器人的运动控制,且负责和后台监控中心通信。信息处理中心基于嵌入式计算

admin2021-03-25  34

问题 阅读以下关于C语言的基本概念和编程方面的叙述,回答问题,将解答填入答题纸的对应栏内。
【说明】
服务型智能扫地机器人的信息处理中心,用于接收各种传感器信息和视觉信息,通过分析处理进行扫地机器人的运动控制,且负责和后台监控中心通信。信息处理中心基于嵌入式计算机实现。

信息处理计算机采用中断方式快速响应外部事件。中断是嵌入式系统中重要的组成部分,这使得很多编译器开发商提供了标准C支持中断的扩展(使用关键字interrupt)。下面程序2是王工设计的中断处理程序代码,请对这段程序进行同行评审,找出你认为不合适的3个方面,将解答写入答题纸相应的位置。
【程序2】
    interrupt double compute—area(double radius)
    {
    double area=PI * radius * radius;
    printf("Area=%f",area);
    return area;
    }

选项

答案(1)中断程序的返回值。中断程序中一般不能返回一个值。 (2)中断程序参数。中断程序中一般不能传递参数。 (3)浮点运算。中断程序应该是短而有效率的,一般在中断程序上下文切换时不保存浮点寄存器,尽量不要在中断程序中做浮点运算。 (4)pmtf()一般是阻塞性调用,尽量不要在中断程序中调用阻塞性服务。

解析 中断是指计算机运行过程中,出现某些意外情况需主机干预时,CPU能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
按照事件发生的顺序,中断过程包括以下步骤:
(1)中断源发出中断请求;
(2)判断当前处理机是否允许中断和该中断源是否被屏蔽;
(3)优先权排队;
(4)处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序。保护断点地址和处理机当前状态,转入相应的中断服务程序;
  (5)执行中断服务程序;
  (6)恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。
  中断服务程序应该遵循短而有效这一原则,所以编写中断服务程序需要遵守以下的一些基本原则:
(1)中断服务程序中一般不能返回一个有效值,应该将返回类型定义为void;
(2)中断服务程序中一般不能传递参数,中断服务程序的参数列表应为void;
(3)中断服务程序上下文切换时不保存浮点寄存器,所以不要在中断程序中做浮点运算;
(4)中断服务程序中不要调用阻塞性服务,如malloc、pIintf等。
转载请注明原文地址:https://kaotiyun.com/show/WLWZ777K
0

相关试题推荐
最新回复(0)