评论下面这个中断函数
中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展——让标准 C 支持中断。具体代表事实是,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt 关键字去定义一个中断服务子程序(ISR),请评论以下这段代码。
__interrupt double compute_area (double radius)
{
double area = PI * radius * radius; printf(" Area = %f", area); return area;
}
【答案】
这段中断服务程序主要有以下四个问题:
(1) ISR 不能返回一个值。
(2) ISR 不能传递参数。
(3) 在 ISR 中做浮点运算是不明智的。
(4) printf()经常有重入和性能上的问题。
注意:本题的第三个和第四个问题虽不是考察的重点,但是如果能提到这两点可给面试官留下一个好印象。