Rtos 的 Stm32 硬故障异常

Posted

技术标签:

【中文标题】Rtos 的 Stm32 硬故障异常【英文标题】:Stm32 hardfault exception at Rtos 【发布时间】:2021-09-19 07:39:31 【问题描述】:

task_create

tasks

rtos_config

debug

我是 RTOS 的新手,在 stm32cubeide 上创建了两个任务,但我在调试时遇到了 HardFault_Handler 异常。为什么会这样?我有需要你的帮助。所有文件 --> link 谢谢....

【问题讨论】:

请张贴代码而不是图片。并显示异常在哪里,或者至少详细说明一下。 我很确定(最小的)任务堆栈大小太小,主要是因为调用了 printf,众所周知,它非常需要堆栈。增加它(例如使用 > 500)并重试。更重要的是启用 FreeRTOS 堆栈溢出检查和 configASSERT 进行开发。 freertos.org/… 享受你的周五之夜 ;) 【参考方案1】:

这通常发生在 RTOS 中,因为某些任务需要更多内存。通过编辑您的任务来增加堆栈大小。

如果您添加大量任务或使用更多内存,您可能会溢出 FreeRTOS 中分配的默认总内存堆。您可以在“配置参数”选项卡中增加它。 请记住,FreeRTOS 分配的内存越多,可用 RAM 内存就越少。

【讨论】:

以上是关于Rtos 的 Stm32 硬故障异常的主要内容,如果未能解决你的问题,请参考以下文章

STM32的中断系统

随机硬故障 - STM32F4 - FreeRTOS

fmodf() 是不是会导致 stm32 出现硬故障?

调用任何 C 函数时的 STM32 硬故障

STM32 尝试打印数字 >= 10 时出现硬故障

NUCLEO STM32F334R8 上的 STMCubeIDE,新项目:FreeRTOS 硬故障