硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2458|回复: 4
收起左侧

[FreeRTOS] FREERTOS任务堆栈设置大了不进入

[复制链接]

1

主题

2

回帖

13

积分

新手上路

积分
13
发表于 2018-9-3 02:31:47 | 显示全部楼层 |阅读模式
STM32CUBEMX创建的程序, LED闪灯任务,堆栈设置小没问题(例如128*1),设置大了(例如128*50)就不进入任务了,堆栈设置少了溢出还能理解,大了还不行,请问是什么原因。谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107220
QQ
发表于 2018-9-3 03:08:40 | 显示全部楼层
看下是不是FreeRTOSConfig.h文件里面定义的heap大小比较小。
回复

使用道具 举报

1

主题

2

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2018-9-3 10:11:49 | 显示全部楼层
感谢管理员回复,configTOTAL_HEAP_SIZE设置1024*32,应该足够大了,是F407的MCU
回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2018-9-3 10:17:31 | 显示全部楼层
注意CubeMX里面的任务栈空间单位是什么?

128*50的单位是字节还是4字节,如果是4字节就非常大了,你可以使用FreeRTOS的动态内剩余函数判断返回值看看。

FreeRTOS自己的创建函数,但是安装4字节来的,加上CMSIS-RTOS1封装层的CubeMX是按照什么来的,你确认下。
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1

主题

2

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2018-9-3 11:16:23 | 显示全部楼层
byccc 发表于 2018-9-3 10:17
注意CubeMX里面的任务栈空间单位是什么?

128*50的单位是字节还是4字节,如果是4字节就非常大了,你可以 ...

感谢您的解答,问题解决了,我一直错误以为configTOTAL_HEAP_SIZE的单位是4byte,原来是1byte,这问题困扰我一周了,搜遍各大帖子都没找到答案,再次感谢。谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-22 03:35 , Processed in 0.176213 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表