堆栈大小是用字来指定的,而不是字节。请参阅XTaskCeCuto()API函数的文档页。我不确定我是否可以在这里发布链接,但我会尝试。如果它没有显示,那么只显示Google xTaskCreate(),并且它应该是顶部链接:http://www.freertos.org/a00125.htmlMIPS体系结构具有相对大的上下文,并且上下文被保存到任务堆栈中,因此任务堆栈必须至少足够大以容纳上下文。上下文大小是硬件的特性,而不是RTOS。此后所需的堆栈大小取决于任务正在做什么——函数调用嵌套深度是什么、声明的任何堆栈变量、编译器优化级别等等。LLER超过190个单词(760字节)。1024字栈通常比需要的多。如果你有两个任务,每个字1024个,那么这将是8K的堆栈空间组合。然后,您还需要用于空闲任务的堆栈空间,以及可能(取决于配置)RTOS守护进程任务(以前称为计时器任务)。您可以使用uxTaskGetStackHighWaterMark()函数(尝试发布另一个链接:http://www.freertos.org/uxTaskGetStackHighWaterMark.html)。要查看任务实际使用多少堆栈,以及堆栈溢出钩子(尝试另一个链接:http://www.freertos.org/Stacks-and-stack-overflow-checking.html)来捕获堆栈溢出,然后将它们放在一起,就可以调整所需的堆栈数量。我相信,还有一些GCC命令行选项可以让您知道使用多少堆栈,因为堆栈在优化级别上变化很大。希望这能有所帮助。
堆栈大小是用字来指定的,而不是字节。请参阅XTaskCeCuto()API函数的文档页。我不确定我是否可以在这里发布链接,但我会尝试。如果它没有显示,那么只显示Google xTaskCreate(),并且它应该是顶部链接:http://www.freertos.org/a00125.htmlMIPS体系结构具有相对大的上下文,并且上下文被保存到任务堆栈中,因此任务堆栈必须至少足够大以容纳上下文。上下文大小是硬件的特性,而不是RTOS。此后所需的堆栈大小取决于任务正在做什么——函数调用嵌套深度是什么、声明的任何堆栈变量、编译器优化级别等等。LLER超过190个单词(760字节)。1024字栈通常比需要的多。如果你有两个任务,每个字1024个,那么这将是8K的堆栈空间组合。然后,您还需要用于空闲任务的堆栈空间,以及可能(取决于配置)RTOS守护进程任务(以前称为计时器任务)。您可以使用uxTaskGetStackHighWaterMark()函数(尝试发布另一个链接:http://www.freertos.org/uxTaskGetStackHighWaterMark.html)。要查看任务实际使用多少堆栈,以及堆栈溢出钩子(尝试另一个链接:http://www.freertos.org/Stacks-and-stack-overflow-checking.html)来捕获堆栈溢出,然后将它们放在一起,就可以调整所需的堆栈数量。我相信,还有一些GCC命令行选项可以让您知道使用多少堆栈,因为堆栈在优化级别上变化很大。希望这能有所帮助。
举报