硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4149|回复: 6
收起左侧

[μCOS-III] uCOS中的OSTaskSuspend()函数的功能理解

[复制链接]

31

主题

53

回帖

146

积分

初级会员

积分
146
发表于 2016-5-3 19:31:00 | 显示全部楼层 |阅读模式
OSTaskSuspend() 是挂起一个函数,这个挂起,应该怎样理解?

具体来说,如下图:
假设该任务运行到3处,被挂起,该任务进入挂起列表。

当调用OSTaskResume()函数时,该任务是从从挂起列表删除,当其重新恢复运行时,
是从1,2,还是3处继续执行??

我猜1和3的可能性大。
那么接下来的问题是:
如果OSTaskResume()是从1开始恢复任务运行,那么我如果想从3处开始继续执行,怎么办?(3适合一个播放音乐程序暂停,继续的情况)
如果OSTaskResume()是从3开始恢复任务运行,那么我如果想从1处开始继续执行,怎么办?(1适合停止播放一个音乐,使其重新处于pend状态,等待下一次消息的情况。
想从1开始执行,我觉得可以先taskdel,然后再create,但是如果这个动作很频繁,会反复的创建删除任务,这在os中是不推荐的。)
以上两种情况都是我在程序中需要用到的功能。

1.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2016-5-4 00:50:32 | 显示全部楼层
1. OSTaskSuspend和OSTaskResume是一对,实现挂起和解除挂起。从哪里挂起,恢复后还从哪里开始执行。
2. OSTaskResume不会影响OSTimeDly的执行,
回复

使用道具 举报

31

主题

53

回帖

146

积分

初级会员

积分
146
 楼主| 发表于 2016-5-4 07:25:21 | 显示全部楼层

回 eric2013 的帖子

eric2013:1. OSTaskSuspend和OSTaskResume是一对,实现挂起和解除挂起。从哪里挂起,恢复后还从哪里开始执行。
2. OSTaskResume不会影响OSTimeDly的执行,
 (2016-05-04 00:50) 
我如果想让该任务恢复到for循环第一条语句怎么办?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2016-5-4 13:58:57 | 显示全部楼层

回 ggafish 的帖子

ggafish:我如果想让该任务恢复到for循环第一条语句怎么办? (2016-05-04 07:25) 
1. uCOS-III可以反复的创建和删除,因为任务栈和需要的TCB都是静态的。
2. 其实你的这种应用建议采用一个任务里面创建一个子应用,在子应用里面创建一个大while循环,执行完退出,需要执行的时候再调用这个子应用。
回复

使用道具 举报

29

主题

181

回帖

268

积分

高级会员

积分
268
发表于 2016-5-4 14:06:15 | 显示全部楼层

回 eric2013 的帖子

eric2013:1. uCOS-III可以反复的创建和删除,因为任务栈和需要的TCB都是静态的。
2. 其实你的这种应用建议采用一个任务里面创建一个子应用,在子应用里面创建一个大while循环,执行完退出,需要执行的时候再调用这个子应用。 (2016-05-04 13:58) 
ucosii不可以反复的创建删除吗,刚好我有个项目打算这么做,可行吗?
回复

使用道具 举报

29

主题

181

回帖

268

积分

高级会员

积分
268
发表于 2016-5-4 14:17:20 | 显示全部楼层

回 eric2013 的帖子

eric2013:1. uCOS-III可以反复的创建和删除,因为任务栈和需要的TCB都是静态的。
2. 其实你的这种应用建议采用一个任务里面创建一个子应用,在子应用里面创建一个大while循环,执行完退出,需要执行的时候再调用这个子应用。 (2016-05-04 13:58) 
对了,还想问下,做项目用ucos ii可以吗,还是说得用ucos iii
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2016-5-5 01:20:03 | 显示全部楼层

回 wcyingdream 的帖子

wcyingdream:对了,还想问下,做项目用ucos ii可以吗,还是说得用ucos iii (2016-05-04 14:17) 
可以没问题,注意删除任务的时间具有不确定性,即每次的删除时间长短稍有变化,。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 12:02 , Processed in 0.211503 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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