FreeRTOS 操作系统学习
http://wiki.csie.ncku.edu.tw/embedded/FreeRTOS_Melot.pdf
5 中断处理
中断机制是完全由硬件产生和处理的。软件,尤其是FreeRTOS任务或内核只能提供处理给定中断的方法,也可以通过调用硬件指令来引发某些中断。我们将假设我们正在使用一个有7级中断的处理器。中断号值越大,相比于与其他中断的优先级越高。 这也取决于硬件,并不是总是这样。在任何情况下,硬件中断优先级都与任务优先级无关,并且总是优先于任务优先级。
中断处理程序的函数不能在FreeRTOS API范围内:通过上一节中描述的常规功能,禁止访问队列或信号量,但是FreeRTOS提供了一些专用功能可用于中断:例如,在中断处理程序中,必须使用xSemaphoreGiveFromISR()代替xSemaphoreGive()实现对信号量的V()操作。这些方法的原型可能会产生一些问题(如 xSemaphoreGiveFromISR()),这种实现机制,用户必须意识到,此操作会使中断被优先级较高的中断抢占 从而完成Give操作解锁)。
可以使用FreeRTOSConfig.h中的常量在FreeRTOS中配