优先级反转问题的核心原因在于共享资源的访问规则,即共享资源只能被一个任务占用,被占用后其他任务不能...
空闲任务是系统任务 IRQ任务和高优先级任务必须设置为阻塞模式(调用消息等待或者延迟等函数即可),只有这样,高优先级任务才会释放CPU的使用权, 从而低优先任务才会有机会得到执行。 FreeRTOS的任务优先级是,任务优先级数值越小,任务优先级越低。
看起来,分析完整个FreeRTOS的实现还是需要花点事件的。 修改了任务的优先级之后,任务可能就不在之前的任务就绪链表中了。因此要有一个移除的处理,这里不需要担心设置相同优先级的情况,因为前面的分支部分已经直接跳过了这样的处理。待处理任务从之前优先级就绪任务链表中移除之后,如果移除之后的链表空了那么应该做一下r...