中断是嵌入式系统中重要组成部分,很多编译器开发商都让标准c支持中断,并引入关键字_interrupt.但是
- ISR不能有返回值;
- ISR不能传递参数;
- ISR应该是短而高效的,在ISR中做浮点运算是不明智的;
- ISR中不应该有重入和性能上的问题,因此不应该使用pintf()函数。
但是从网上大家的讨论看,有的时候ISR并不见得满足以上4个条件,比如有网友提出wince的ISR,OEMInterruptHandle()这个函数中既有返回值也有参数啊,这个OEMInterruptHandle函数就是单ISR模型的中断服务子程序。
据某牛人回答说,以上4点要求主要是在机器裸奔(没有操作系统)的情况下有那个要求,但也会存在一些意外情况的