本文主要是介绍嵌入式 中断服务程序笔试题目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在程序员面试和笔试中中断是一个经常被问及的很基础的问题,本文对这次问题做一点简单说明。
中断处理过程:一次完整的中断过程由中断请求、中断响应和中断处理三个阶段组成。
中断处理流程:关中断->保存断电保护现场->判断中断源转到相应的中断服务->开中断->执行相应的中断服务程序(ISR)->关中断->恢复现场恢复断点->开中断->返回断点
(1)ISR
(2)ISR
(3)当中断发生时系统会自己响应。用户不要调用它。
(4)ISR
(5)如果
(6)ISR内不能有可能导致阻塞的语句如:malloc等
(7)避免在ISR中做浮点运算,在许多处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额外的寄存器入栈,有些处理器/编译器就不允许在ISR中做浮点运算。此外,ISR应该是段而有效率的,在ISR中做浮点运算是不明智的。
有了以上知识,下面的题目应该是小Case了
- 下面的ISR有何问题(华硕公司2005年软件工程师面试)
- _interrupt
double doublecompute_area( radius) - {
-
double area = PI*radius*radius; -
printf("/nArea=%f",area); -
return area; - };
这篇关于嵌入式 中断服务程序笔试题目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!