嵌入式 中断服务程序笔试题目
2013-12-02 14:38
169 查看
在程序员面试和笔试中中断是一个经常被问及的很基础的问题,本文对这次问题做一点简单说明。
中断处理过程:一次完整的中断过程由中断请求、中断响应和中断处理三个阶段组成。
中断处理流程:关中断->保存断电保护现场->判断中断源转到相应的中断服务->开中断->执行相应的中断服务程序(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了
下面的ISR有何问题(华硕公司2005年软件工程师面试)
_interrupt double compute_area(double radius)
{
double area = PI*radius*radius;
printf("/nArea=%f",area);
return area;
};
相关文章推荐
- 【转】嵌入式程序员C语言笔试题目及参考答案-东软集团
- 高深笔试题目(嵌入式软件开发)
- (转)嵌入式C开发人员的最好笔试题目
- 嵌入式及手机开发[笔试题目]
- 凹凸笔试题目(嵌入式软件开发
- 嵌入式工程师笔试题目汇总
- 嵌入式工程师笔试面试题目
- 嵌入式笔试常考题目
- 嵌入式的笔试/面试经典题目
- 高深笔试题目(嵌入式软件开发)
- 凹凸笔试题目(嵌入式软件开发)
- 嵌入式及手机开发[笔试题目]
- 嵌入式相关笔试题目汇总
- 2015年嵌入式软件岗位笔试题目总结
- 武汉华嵌-嵌入式培训专家笔试题目
- 嵌入式工程师笔试题目汇总
- 嵌入式程序员C语言笔试经典题目
- c++笔试题目(嵌入式软件开发)
- 嵌入式笔试题目
- 笔试 嵌入式Linux软件工程师 经常遇到的题目