STM32CubeMX生成FreeRTOS+LwIP的工程进入Hardfault的问题

现象

芯片是STMH750,固件包版本STM32Cube FW_H7 V1.8.0,CubeMX 版本6.0.1。

在CubeMX配置好工程后,生成代码。编译后下载到芯片上运行,会很快进入Hardfault!
问题排查

1、不加入lwip,单跑FreeRTOS,运行正常;
2、加入lwip,检查ETH外设中断的优先级,将优先级调整比configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY大,进入Hardfault,排除中断导致的可能;
3、增加各个任务的任务栈大小,由于是加入lwip后才出现的,所以先分别调整lwip相关的任务的栈大小为原来的4倍。共三个,EthLinkEthIftcpip_thread,进入Hardfault,排除这三个任务的问题;
4、最后一个任务是启动任务defaultTask,调整该任务的栈大小,运行正常。

问题确认

由以上步骤可以发现,是因为默认分配的任务栈太小导致的,只有(128*4)Bytes。更改如下:
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容