嵌入式 中断服务程序笔试题目

原创 2013年12月02日 14:38:45

 

在程序员面试和笔试中中断是一个经常被问及的很基础的问题,本文对这次问题做一点简单说明。

中断处理过程:一次完整的中断过程由中断请求、中断响应和中断处理三个阶段组成。

中断处理流程:关中断->保存断电保护现场->判断中断源转到相应的中断服务->开中断->执行相应的中断服务程序(ISR)->关中断->恢复现场恢复断点->开中断->返回断点

 中断服务程序的限制

(1)ISR 没有参数并且返回类型为 void。 
(2)ISR 不可以重复进入,不要在 ISR内允许中断。 
(3)当中断发生时系统会自己响应。用户不要调用它。
(4)ISR 中不要调用任何 C 自定义函数,但是内置的函数没有关系。ISR 中可调用汇编函数。
(5)如果 ISR 内包含嵌入汇编指令,那么由于执行这些指令而影响到的寄存器就需要在执行这些指令之前预先保留,待执行完毕恢复寄存器。 因为Holtek的 C编译器只保存由于C语句造成影响的寄存器。

(6)ISR内不能有可能导致阻塞的语句如:malloc等

(7)避免在ISR中做浮点运算,在许多处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额外的寄存器入栈,有些处理器/编译器就不允许在ISR中做浮点运算。此外,ISR应该是段而有效率的,在ISR中做浮点运算是不明智的。

有了以上知识,下面的题目应该是小Case了

  1. 下面的ISR有何问题(华硕公司2005年软件工程师面试)  
  2. _interrupt double compute_area(double radius)  
  3. {  
  4.     double area = PI*radius*radius;  
  5.     printf("/nArea=%f",area);  
  6.     return area;  
  7. }; 

嵌入式软件开发——嵌入式软件常见的笔试题(c)

本文转自:http://blog.csdn.net/u012138828/article/details/38822721 找工作的事情告一段落,现在把一些公司常见的笔试题型整理一下,本人主要是...
  • Cowena
  • Cowena
  • 2015年07月30日 21:39
  • 1697

华为嵌入式面试题及参考答案

(1)什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下...
  • dezhihuang
  • dezhihuang
  • 2015年03月09日 10:14
  • 2184

嵌入式软件工程师经典笔试题

> 预处理器(Preprocessor)  1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)  #define SECONDS_PER_YEAR (60 * ...
  • xiaoshengyige
  • xiaoshengyige
  • 2013年09月22日 14:17
  • 37130

经典16道:嵌入式C语言笔试题

1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)      #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL   我在...
  • you_shou
  • you_shou
  • 2016年09月21日 10:01
  • 4285

嵌入式Linux工程师常见笔试题

预处理器(Preprocessor) 1 . 用预处理指令 #define 声明一个常数,用以表明 1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 ...
  • shuilaner_
  • shuilaner_
  • 2016年03月03日 20:53
  • 3894

嵌入式面试之痛,再不疯狂我就太老了

半夜起来睡不着了。我八六年的。做了已经超过两年的嵌入式linux方面的工作,按理说有两年的工作经验找工作是相当有 优势了,可最近找工作屡屡受挫。等我写完这篇文章,看到的同仁可以评论下,说说自己的感受和...
  • L_yangliu
  • L_yangliu
  • 2013年08月10日 05:22
  • 12327

2008、2012、2013海康威视嵌入式校招笔试整理

2008嵌入式软件工程师(A) 2008嵌入式软件工程师(B) 2012嵌入式软件工程师 2013嵌入式软件工程师...
  • qq_26646141
  • qq_26646141
  • 2017年02月23日 18:35
  • 2616

嵌入式中断的理解

一、什么叫中断 先来个概念文字定义 中断:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。            即在程序运行过程中,系统出现了一个必须由CP...
  • snyanglq
  • snyanglq
  • 2015年12月09日 17:01
  • 2688

嵌入式 LINUX中断学习笔记

1.中断的注册与释放: 在 , 实现中断注册接口: int request_irq(unsigned int irq,irqreturn_t (*handler)(int,...
  • skdkjxy
  • skdkjxy
  • 2014年05月27日 11:23
  • 1102

cortex_m3_stm32嵌入式学习笔记(四):外部中断实验

本章学习将STM32的IO口作为外部中断输入(实现和按键扫描一样的功能) STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处。 STM32F103 的中断控制...
  • qq_16255321
  • qq_16255321
  • 2015年01月20日 15:46
  • 1534
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式 中断服务程序笔试题目
举报原因:
原因补充:

(最多只允许输入30个字)