21
2020
02

评论下面这个中断函数

评论下面这个中断函数

中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展——让标准 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()经常有重入和性能上的问题。

注意:本题的第三个和第四个问题虽不是考察的重点,但是如果能提到这两点可给面试官留下一个好印象。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。