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

我用cube生成的FREErtos怎么饿不死低优先级的任务。。

[复制链接]
beary 提问时间:2016-3-17 15:29 /
任务的内容其实就是打印
两个任务的内容一样

printf("打印内容");
for(i = 0 ; i < 100 ; i++);


下面是我任务的声明,经过cube封装过的
//系统的任务
osThreadDef(defaultTask, StartDefaultTask, osPriorityLow, 0, 128);
  defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
//我自己的任务
  osThreadDef(MyTask, Task1, osPriorityRealtime, 0, 128);
  TaskHandle = osThreadCreate(osThread(MyTask), NULL);  /* USER CODE END RTOS_THREADS */

可是根据freeRTOS的手册上说,
QQ图片20160317152345.png QQ图片20160317152646.png

如果高优先级的任务用空循环不是vTaskDelay()的话,就会饿死低优先级的任务。。


我现在这段代码优先级不一样,代码里用的是空循环。。怎么饿不死、、
两个任务代码的内容一样


  static int count = 0;
  int loop = 0;
  printf("%s:%d\r\n",__func__,count++);


  for(loop = 0 ; loop < 100 ; loop++)
  {

  }

收藏 评论6 发布时间:2016-3-17 15:29

举报

6个回答
beary 回答时间:2016-3-17 15:31:42
书上,会饿死,一直是task2在打印。。我的串口工具还是都有打印,task2和task1,不过task2打印的多一些
beary 回答时间:2016-3-17 15:44:19
解决了。。我擦嘞。。。

cube封装了一个taskdelay在下面。。。没注意看。。大家来把最后的分拿拿走然后沉帖吧。。。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

xmshao 回答时间:2016-3-18 16:16:41
呵呵 正常
谁调试不遇到点麻烦。
power568 回答时间:2016-3-18 17:01:42
领教了...
raytheonn 回答时间:2019-11-18 09:49:59
请问怎么解决的啊,楼主没说明白啊!
raytheonn 回答时间:2019-11-18 09:50:49
请问怎么解决的啊?

所属标签

相似问题

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