嵌入式编程 中断 一题

Interrupts are an important part of embedded systems. Consequently, many compiler vendors offer an extension

to standard C to support interrupts. Typically, the keyword is _interrupt. The following routine(ISR), point out

the errors in the code.

_interrupt double compute_area(double radius)

{

    double area = PI * radius * radius;



    printf("\nArea = %f", area);



    return 0;

}

 

析:

1)ISR不能返回一个值
2)ISR不能传递参数
3)在许多处理器或编译器中,浮点一般都是不可重入的,此外,ISR应是短而有效率的,在ISR中做浮点去处是不明智的
4)printf()经常有重入和性能上的问题,所以一般不使用printf()

你可能感兴趣的:(嵌入式)