在STM32、C的freeRTOS模式下,如果任务堆栈大小超出会发生什么情况

问题描述 投票:0回答:1

我正在处理一个项目,需要建立以太网连接才能配置 MQTT 协议。我正在使用 FreeRTOS 任务和 LwIP MQTT 库。尽管程序正在运行并且 MQTT 订阅出现在我的屏幕上,但几分钟后屏幕会冻结并且不会响应任何内容,除非我进行重置。我必须提到的是,我使用 Riverdi 屏幕来实现 STM32H7 微控制器,该微控制器具有默认的 FreeRTOS 任务,堆栈大小为 512 个字(2048 字节)。

如果超出堆栈大小,是否可以使我的屏幕进入 HardFault?

stack freertos stm32h7 hardfault
1个回答
0
投票

是的,这当然有可能。如果堆栈太小,内存中的其他内容将被覆盖(这可能会导致未定义的行为),或者可能会访问不存在的内存地址(这很可能会导致 HardFault)。

© www.soinside.com 2019 - 2024. All rights reserved.