你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请问用STM32CubeMx创建的FreeRTOS可以运行多少个实例(任务)  

[复制链接]
waiman 提问时间:2015-4-27 11:07 /
本帖最后由 waiman-156411 于 2015-4-27 21:06 编辑

我第一次使用STM32CubeMx,创建了一个简单的FreeRTOS代码。硬件平台是STM32F103RCT6。根据原代码,在freertos.c文件内的函数 MX_FREERTOS_Init(void)内,调用osThreadCreate创建线程,默认生成的StartDefaultTask线程。我按照StartDefaultTask的代码,在 MX_FREERTOS_Init(void)内用osThreadCreate创建另外两个线程,分别为LEDTask和MeasureTempTask。
当三个线程同时创建的话,OS跑不起来,连StartDefaultTask都没有执行。
如果,只创建其中任意的两个线程,OS就可以跑起来。
FreeRTOS本身可以执行多个线程,但STM32CubeMx好像是用CMSIS来重新封装FreeRTOS,是不是CMSIS限制了执行线程的数量?

另外,我测试过,如果在StartDefaultTask线程内,创建另外的两个线程,OS除了执行StartDefaultTask线程外,只执行另外创建的第一个线程。


工程文件在7楼



收藏 3 评论29 发布时间:2015-4-27 11:07

举报

29个回答
waiman 回答时间:2015-5-7 13:39:44
已经解决了,原来堆栈不够大
电小龙 回答时间:2016-11-17 23:07:05
DLGG-308046 发表于 2016-10-26 08:59
请问楼主怎么知道堆栈不够的,怎么确认需要的堆栈大小
谢谢

同样的问题,楼主怎么知道堆栈大小不够的,还有怎样确认需要堆栈的大小呢?
DLGG-308046 回答时间:2016-10-26 08:59:56
waiman-156411 发表于 2015-5-7 13:39
已经解决了,原来堆栈不够大

请问楼主怎么知道堆栈不够的,怎么确认需要的堆栈大小
谢谢
废鱼 回答时间:2015-4-27 11:18:09
楼主发一下工程上来。
moyanming2013 回答时间:2015-4-27 15:04:47
是否是栈空间的问题呢?或者自己的任务创建或任务函数有问题呢?
拼命三郎 回答时间:2015-4-27 17:13:46
ddddd.png
拼命三郎 回答时间:2015-4-27 17:14:03
stm (1).jpg
stary666 回答时间:2015-4-27 17:46:13
学习一下。。。。。
waiman 回答时间:2015-4-27 21:05:38
生成的工程文件
A10.rar (8.92 MB, 下载次数: 493)
wamcncn 回答时间:2015-4-27 22:02:16
学习下,
yxf0915 回答时间:2015-6-23 12:48:01
楼主楼主!我也碰到相同问题,请问具体在cube中如何修改。
mark0668 回答时间:2015-6-23 14:45:52
学习一下
wyxy163@126.com 回答时间:2015-6-23 17:48:08
提示: 作者被禁止或删除 内容自动屏蔽
yanhaijian 回答时间:2015-8-6 14:35:53
我遇到的问题是只能创建4个任务,多余的任务不能运行。
stary666 回答时间:2015-8-6 15:16:53
看看,,,,,,,,,,,
yanhaijian 回答时间:2015-8-7 16:04:34
具体可以在对话框中修改,最近我也在搞STM32CubeMX。
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版