搜索
bottom↓
回复: 7

任务之间进行任务的切换除了使用延时函数挂起还有什么函数

[复制链接]

出0入0汤圆

发表于 2010-8-2 11:47:29 | 显示全部楼层 |阅读模式
问题如题

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2010-8-2 12:04:19 | 显示全部楼层
这么多问号也没吧问题描述清楚。

出0入0汤圆

 楼主| 发表于 2010-8-2 12:16:25 | 显示全部楼层
问题就是在每个任务结束之后就应该进行任务切换,我想知道除了用延时函数挂起之外还能怎么样进行切换。。

出0入0汤圆

发表于 2010-8-2 12:20:25 | 显示全部楼层
貌似还有信号量等等

出0入0汤圆

发表于 2010-8-2 13:16:56 | 显示全部楼层
描述还是不清楚
任务有结束态吗?
如果你是想挂起任务,可以让任务在信号量、消息队列、邮箱等阻塞

出0入0汤圆

 楼主| 发表于 2010-8-2 13:38:04 | 显示全部楼层
回复【4楼】richey07
-----------------------------------------------------------------------

我想知道在任务执行过程中可以通过调用什么函数来进行任务的切换。

出0入0汤圆

发表于 2010-8-3 21:17:13 | 显示全部楼层
我刚学UCOS两天,感觉UCOS的任务调度都是附着在一些API里的,比如中断结束时会进行一次调度,释放信号量时会进行一次调度。
所以对于UCOS的任务而言,由于任务本身是无限循环的,要进行任务切换则必须将其阻塞,比如等待邮箱消息,否则在高优先级任务在附着在中断、时钟tick等事件里的任务调度运作并解除阻塞之前,当前任务会一直执行下去,而低优先级的任务就根本没机会了。毕竟内核不是并行的在执行的,它需要机会来进行任务调度。

出0入0汤圆

发表于 2010-8-21 13:41:19 | 显示全部楼层
uC/OS中队用户的API函数有:
延时
OSTimeDly,OSTimeDlyHMSM
任务挂起,恢复
OSTaskSuspend,OSTaskResume,OSTaskChangePrio,OSTaskCreat
中断返回
OSExtInt
信号量挂起,恢复
OSSemPend,OSSemPost,OSSemDel
互斥信号量挂起,恢复
OSMutexPend,OSMutexPost,OSMutexDel
时间标志组挂起,恢复
OSFlagPend,OSFlagPost,OSFlagDel
邮箱挂起,恢复
OSMboxPend,OSMboxPost,OSMboxDel
消息队列
OSQPend,OSQPost,OSQDel
其他的有些记不起了,但是这些函数并不是一定会任务,只能说是有条件就回切换
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 08:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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