gpt4 book ai didi

stack - FreeRTOS 配置MINIMAL_STACK_SIZE

转载 作者:行者123 更新时间:2023-12-01 03:46:29 26 4
gpt4 key购买 nike

在 cortex M0 MCU 上的一些 FreeRTOS 演示中 configMINIMAL_STACK_SIZE设置为 60,而其他一些设置为 70。使用 STM32Cube 软件将其设置为 128。

我的问题是最小堆栈大小实际上是多少?

查看 STM32 Cortex-M0 编程手册,我看到处理器寄存器是
R0-R12、MSP、PSP、LR、PC、PSR、ASPR、IPSR、EPSR、PRIMASK、控制。这不是意味着最小堆栈大小只有 23 个字吗?还是需要为上下文切换保存更多信息?

最佳答案

根据这里的描述:http://www.freertos.org/a00110.html#configMINIMAL_STACK_SIZE就 RTOS 而言,该常量只不过是设置空闲任务使用的堆栈大小。

堆栈必须足够大以容纳任务的上下文,以及任务使用的任何普通堆栈项(局部变量、函数调用开销等),因此所需的实际大小取决于空闲任务正在做什么- 如果空闲任务什么都不做,它将处于最低限度。另一方面,如果有一个空闲任务钩子(Hook)函数正在使用(http://www.freertos.org/a00016.html),那么所需的堆栈大小将取决于钩子(Hook)函数正在做什么(它的函数调用深度等)。

演示任务也使用常量作为在多个架构上使用相同演示任务的便捷方式,但这不会影响 RTOS,它只是演示代码。

关于stack - FreeRTOS 配置MINIMAL_STACK_SIZE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26542392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com