OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6237|回复: 4

freertos 里taskYIELD()的作用是什么

[复制链接]

2

主题

3

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-6-9
在线时间
3 小时
发表于 2020-6-15 17:23:18 | 显示全部楼层 |阅读模式
1金钱
我用rt1052跑资料里面的《FreeRTOS优先级翻转实验》
原先的逻辑跑了一次和文档里的描述一样。
之后自己尝试屏蔽了低优先级任务里的taskYIELD(),运行结果就不对了,然后自己去看了看taskYIELD()的作用之类的,感觉云里雾里。

所以请大神们解释下,此处的taskYIELD()起的什么作用?

  1. //低优先级任务的任务函数
  2. void low_task(void *pvParameters)
  3. {
  4.         static u32 times;
  5.    
  6.        
  7.         while(1)
  8.         {
  9.                 printf("low task task Pend Sem!\r\n");
  10.                 xSemaphoreTake(BinarySemaphore,portMAX_DELAY);        //获取二值信号量
  11.                 printf("low task Running!\r\n");
  12.                 for(times=0;times<20000000;times++)                                //模拟低优先级任务占用二值信号量
  13.                 {
  14.                         taskYIELD();                                                                //发起任务调度                       
  15.                 }
  16.                 printf("low task Pend Give\r\n");
  17.                 xSemaphoreGive(BinarySemaphore);                                //释放二值信号量
  18.                
  19.                 vTaskDelay(1000);        //延时1s,也就是1000个时钟节拍       
  20.         }
  21. }
复制代码



FreeRTOS实验14-3 FreeRTOS优先级翻转实验.rar

1.89 MB, 下载次数: 10

付完整代码

最佳答案

查看完整内容[请看2#楼]

1、FreeRTOS之taskYIELD()[/backcolor] 参见链接:[/backcolor] https://www.cnblogs.com/CodeWorkerLiMing/p/12007536.html[/backcolor] 2、FreeRTOS高级篇4---FreeRTOS任务切换分析[/backcolor] 参见链接:[/backcolor] https://blog.csdn.net/zhzht19861 ... task-blog-baidujs-1[/backcolor] FreeRTOS有两种方法触发任务切换:[/backcolor] [*]执行系统调用,比如普通任务可以使用taskYIELD()强制 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

334

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
1108
注册时间
2018-11-6
在线时间
240 小时
发表于 2020-6-15 17:23:19 | 显示全部楼层
1、
FreeRTOS之taskYIELD()

    参见链接:


2、FreeRTOS高级篇4---FreeRTOS任务切换分析

     参见链接:


FreeRTOS有两种方法触发任务切换:
  • 执行系统调用,比如普通任务可以使用taskYIELD()强制任务切换,中断服务程序中使用portYIELD_FROM_ISR()强制任务切换;
  • 系统节拍时钟中断
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-6-16 01:20:31 | 显示全部楼层
帮顶
回复

使用道具 举报

0

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2019-12-26
在线时间
133 小时
发表于 2020-7-25 17:12:54 | 显示全部楼层
就是手动切换任务
回复

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-6-17
在线时间
14 小时
发表于 2020-9-9 15:42:58 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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