打印
[其他ST产品]

CubeMX的Linker settings设置,及与RTOS任务创建是堆栈空间的关系?

[复制链接]
1799|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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任务都需要一个独立的堆栈空间

使用特权

评论回复
5
光辉梦境| | 2024-3-21 13:00 | 只看该作者
如果你使用FreeRTOS作为RTOS,CubeMX会自动生成FreeRTOS的配置文件(FreeRTOSConfig.h)

使用特权

评论回复
6
暖了夏天蓝了海| | 2024-3-21 17:00 | 只看该作者
在CubeMX的Linker settings中,你也可以配置堆栈的大小

使用特权

评论回复
7
冰春彩落下| | 2024-3-21 23:00 | 只看该作者
RTOS任务的堆栈空间设置与Linker settings中的堆栈大小有一定的关系

使用特权

评论回复
8
淡漠安然| | 2024-3-22 01:00 | 只看该作者
总的来说,CubeMX的Linker settings用于配置生成的工程的链接器设置,包括堆栈大小等

使用特权

评论回复
9
别乱了阵脚| | 2024-3-22 03:00 | 只看该作者
你需要确保Linker settings中的堆栈大小能够满足所有RTOS任务的需求,否则可能会出现堆栈溢出的问题。

使用特权

评论回复
10
江河千里| | 2024-3-22 05:00 | 只看该作者
堆栈的设置通常用于配置整个应用程序的堆栈大小,包括RTOS任务的堆栈。你需要确保Linker settings中的堆栈大小能够满足所有RTOS任务的需求。

使用特权

评论回复
11
三生万物| | 2024-3-22 09:00 | 只看该作者
配置文件中,你可以设置每个任务的堆栈大小,通常以字(word)为单位。你可以根据任务的需求和实际情况来设置堆栈大小。

使用特权

评论回复
12
夜阑风雨| | 2024-3-22 11:00 | 只看该作者
在与RTOS任务创建相关的堆栈空间设置方面,你需要根据每个任务的需求来配置堆栈大小,并确保Linker settings中的堆栈大小能够满足所有RTOS任务的需求。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1327

主题

3832

帖子

0

粉丝