[其他ST产品] CubeMX的Linker settings设置,及与RTOS任务创建是堆栈空间的关系?

[复制链接]
 楼主| cr315 发表于 2024-2-4 17:00 | 显示全部楼层 |阅读模式
<1>我在使用USB时发现有人会去修改在CubeMX中Linker settings设置,此设置为最小的堆栈大小设置。
请教下 ,这设置是与单片机的RAM有关(小于单片机RAM的值)嘛?
他可以在程序中什么地方设置呢?我遇到个没有cubemx工程,且USB通讯有异常的程序,我想看看是否是堆栈设置过小导致的。
<2> 且在FreeRTOS创建任务时也需要将任务堆栈空间设置得尽可能得大,以免出现异常。
那这堆栈我是根据这Minimum Heap Size(所有任务堆栈总和<Minimum Heap Size)还是Stack Size(所有任务堆栈总和<Stack Size)来设置。
或者这与Linker Settings无关,而只要(所有任务堆栈总和<单片机的系统SRAM)就可以了?
有遇到过或思考过的社友解答下嘛,不吝赐教


两只袜子 发表于 2024-2-5 16:30 | 显示全部楼层
CubeMX的Linker settings中的Stack size和Heap size用于配置RTOS任务的堆栈空间和动态内存分配。
一秒落纱 发表于 2024-3-21 08:42 | 显示全部楼层
在CubeMX中,Linker settings用于配置生成的工程的链接器设置,包括内存布局、堆栈大小等
远山寻你 发表于 2024-3-21 11:00 | 显示全部楼层
在CubeMX中,你可以通过Linker settings配置堆栈的大小。通常情况下,每个RTOS任务都需要一个独立的堆栈空间
光辉梦境 发表于 2024-3-21 13:00 | 显示全部楼层
如果你使用FreeRTOS作为RTOS,CubeMX会自动生成FreeRTOS的配置文件(FreeRTOSConfig.h)
暖了夏天蓝了海 发表于 2024-3-21 17:00 | 显示全部楼层
在CubeMX的Linker settings中,你也可以配置堆栈的大小
冰春彩落下 发表于 2024-3-21 23:00 | 显示全部楼层
RTOS任务的堆栈空间设置与Linker settings中的堆栈大小有一定的关系
淡漠安然 发表于 2024-3-22 01:00 | 显示全部楼层
总的来说,CubeMX的Linker settings用于配置生成的工程的链接器设置,包括堆栈大小等
别乱了阵脚 发表于 2024-3-22 03:00 | 显示全部楼层
你需要确保Linker settings中的堆栈大小能够满足所有RTOS任务的需求,否则可能会出现堆栈溢出的问题。
江河千里 发表于 2024-3-22 05:00 | 显示全部楼层
堆栈的设置通常用于配置整个应用程序的堆栈大小,包括RTOS任务的堆栈。你需要确保Linker settings中的堆栈大小能够满足所有RTOS任务的需求。
三生万物 发表于 2024-3-22 09:00 | 显示全部楼层
配置文件中,你可以设置每个任务的堆栈大小,通常以字(word)为单位。你可以根据任务的需求和实际情况来设置堆栈大小。
夜阑风雨 发表于 2024-3-22 11:00 | 显示全部楼层
在与RTOS任务创建相关的堆栈空间设置方面,你需要根据每个任务的需求来配置堆栈大小,并确保Linker settings中的堆栈大小能够满足所有RTOS任务的需求。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1448

主题

4810

帖子

0

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

1448

主题

4810

帖子

0

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