记一次systick不中断故障排除

    技术2023-03-24  78

    移植FreeRTOS,只运行一个任务,不能进行任务的调度和切换,倒也不fault,后来经过单步调试,发现xPortSysTickHandler函数断不下来,也就是说systick中断一直被屏蔽了,也就导致FreeRTOS不能进行任务切换,也不能抢占。 继续寻找原因发现执行taskENTER_CRITICAL()之后,按理要执行taskEXIT_CRITICAL(),结果我没看仔细将宏搞错了,执行了taskENTER_CRITICAL_FROM_ISR(),然后就吡了,相当于程序一直在临界区,systick 和scvcall,还有pendsv都被屏蔽了,改回来就正常了。

    Processed: 0.012, SQL: 9