为什么在中断处理程序中不允许休眠或阻塞?
假设我有如下设置:
- 单核心系统。
- 使用FreeRTOS开发裸机应用程序。
有许多FreeRTOS api不能从ISR上下文中调用,因为它们可能会阻塞等待将要发生的事件。因此,这意味着我们不能将ISR置于阻塞状态。
如果你阻塞了一个中断处理程序,它通常不会被再次触发。所有其他具有相同或更低优先级的中断,以及程序的非中断部分也会被阻塞。
最后一行:不要这样做。