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

我用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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版