OpenEdv-开源电子网

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

运行OSTimeDlyHMSM后 原来任务的.

[复制链接]

24

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-19
在线时间
50 小时
发表于 2018-8-2 11:33:14 | 显示全部楼层 |阅读模式
5金钱
任务函数中运行OSTimeDlyHMSM后,任务释放CPU使用权,产生任务调度。原来的任务进入等待态。OSTimeDlyHMSM运行结束以后,接着运行优先级最高的任务。那么原来的那个任务怎么变成就绪态的了?如果这样子例程里UCOSIII时间片轮转调度实验中,在OSTimeDlyHMSM切换时,为什么会有 111.png 两个就绪的任务(原来的那个进入等待态)。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-8-3 02:09:26 | 显示全部楼层
回复

使用道具 举报

20

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2015-11-28
在线时间
89 小时
发表于 2018-8-3 09:18:12 | 显示全部楼层
本帖最后由 森海有眼泉 于 2018-8-3 09:20 编辑

时钟心跳~  每心跳一次 就遍历所有的任务的 对延时做-1操作. 如果 为0 就把状态弄成就绪...
等待有 任务调度(会引发任务调度的命令 延时 挂起 等待信号量/消息队列 之类的挺多)  就会 执行就绪中 优先级最高的
为什么会有两个 就绪....不知道.... 可能答非所问..因为没看明白你想问什么
回复

使用道具 举报

24

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-19
在线时间
50 小时
 楼主| 发表于 2018-8-3 21:00:14 | 显示全部楼层
森海有眼泉 发表于 2018-8-3 09:18
时钟心跳~  每心跳一次 就遍历所有的任务的 对延时做-1操作. 如果 为0 就把状态弄成就绪...
等待有 任务调 ...

等待有任务调度,等待自身那个任务是会挂起,变为等待态。轮转调度实验是两个就绪态的任务在轮转。剩下那个任务是就绪态的,但是任务一不是啊,他是等待态,不是只有等待运行结束了,才开始就绪态吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 06:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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