[STM32MP1] 任务堆栈不足

[复制链接]
1006|1
 楼主| 米多0036 发表于 2024-12-7 08:27 | 显示全部楼层 |阅读模式
CubeMX默认为FreeRTOS任务分配的栈空间可能过小。

问题表现:任务异常退出,系统进入HardFault。
解决方法:
增加任务栈大小(xTaskCreate的参数设置)或调整configMINIMAL_STACK_SIZE。
启用FreeRTOS的栈溢出检测功能:
c
复制代码
#define configCHECK_FOR_STACK_OVERFLOW  2
中断优先级未正确配置
CubeMX对中断优先级的配置不符合FreeRTOS要求,可能导致中断与任务之间的资源竞争。

问题表现:程序随机崩溃或中断回调失效。
解决方法:
确保中断优先级高于configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY。
示例配置:
c
复制代码
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY  5

stormwind123 发表于 2025-1-13 15:57 | 显示全部楼层
以为是遇到难题了,结果是来解决难题了,给力,不错的经验了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

138

主题

1431

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部