Stm32 为什么不输入任务?

Stm32 为什么不输入任务?,stm32,freertos,iar,Stm32,Freertos,Iar,我使用freertos和Hal stm库来运行三个任务,第一个任务的堆栈大小为128,第二个任务的堆栈大小为512,第三个任务的堆栈大小为1100 这三个任务已成功创建,但在运行调度程序时,仅在前两个任务之间切换,即使这三个任务具有相同的优先级 项目总堆栈大小为8k,堆大小为9k,而freertos堆大小为4k 有什么问题吗?不看代码很难说,但这里有一些调试技巧 确保已将()定义为将要停止执行的内容(以便知道它已被调用)。FreeRTOS版本越新越好,因为新版本添加了更多的断言点 确保定义了一个

我使用freertos和Hal stm库来运行三个任务,第一个任务的堆栈大小为128,第二个任务的堆栈大小为512,第三个任务的堆栈大小为1100

这三个任务已成功创建,但在运行调度程序时,仅在前两个任务之间切换,即使这三个任务具有相同的优先级

项目总堆栈大小为8k,堆大小为9k,而freertos堆大小为4k


有什么问题吗?

不看代码很难说,但这里有一些调试技巧

确保已将()定义为将要停止执行的内容(以便知道它已被调用)。FreeRTOS版本越新越好,因为新版本添加了更多的断言点

确保定义了一个堆,以便知道堆是否用完

试着在你认为没有运行的任务开始时设置一个断点,看看它是否被输入过——也许它只运行了一次,但它将自己置于一种不会再次运行的状态(如果没有看到任务的代码,很难说)


同样,请确保设置为2。

非常感谢,我检查了malloc failed hook,这是堆的大小造成的