在不使用RTOS时,可用协作式状态机配合硬件定时器实现多任务调度。每个任务定义为状态机,通过全局时间戳或定时器中断维护时间片,主循环轮询各任务状态,非阻塞执行。避免优先级反转的关键:由于是协作式,无抢占,但需确保高优先级任务在低优先级任务执行期间不被长时间阻塞。实操建议:1) 用单一定时器产生1ms时基,维护任务就绪表,按优先级顺序轮询;2) 任务内禁止死循环和长延时,用状态切换代替阻塞等待;3) 对共享资源采用临界区保护(关中断),但临界区尽量短,避免影响定时器中断;4) 若需模拟优先级,可设计优先级位图,每次调度选择最高就绪任务,低优先级任务主动让出。这样可避免传统优先级反转,因为无抢占式调度,但需严格设计任务执行时间。
mcuku 阿沐 · 2026-08-27