jinhongwei 发表于 2020-4-16 16:21:25

为什么RTOS的中断中不能调用可能发生阻塞的API???

为什么RTOS的中断中不能调用可能发生阻塞的API???
有没有大神讲解一下原因???
与MSP和PSP有关吗?

eric2013 发表于 2020-4-16 17:34:32

这就涉及到一个本质的问题,为什么要用中断,中断里面要执行的都是安全关键功能,需要实时性。
你在中断里面卡一个阻塞式的,导致其他任务和优先级比较低的中断长时间得不到执行。




jinhongwei 发表于 2020-4-17 17:32:05

硬汉哥,可能我没表述好
我想问的是,freeRTOS中断里为什么必须要用xxxxReceiveFromISR的API,不能用普通的API
普通的API有一个timeout参数

eric2013 发表于 2020-4-17 17:38:38

jinhongwei 发表于 2020-4-17 17:32
硬汉哥,可能我没表述好
我想问的是,freeRTOS中断里为什么必须要用xxxxReceiveFromISR的API,不能用普通 ...

一个重要原因是方便中断级任务切换,所以两种代码实现上有所不同。

因为在中断里面执行会有将一些任务恢复到就绪态的情况,退出中断时要执行当前就绪的最高优先级任务

emwin 发表于 2020-4-20 22:45:45

区分了中断调用函数可以简化,不用触发任务切换,由中断退出调用。
页: [1]
查看完整版本: 为什么RTOS的中断中不能调用可能发生阻塞的API???