在ucos中,每个任务都是死循环。如很进行任务的切换?

例如,建立两个任务A和B,现在正在执行任务A,如何切换到任务B,执行任务B??... 例如,建立两个任务A和B,现在正在执行任务A,如何切换到任务B,执行任务B?? 展开
 我来答
百度网友bd199ca
2011-08-22 · TA获得超过522个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:370万
展开全部
用信号量、消息队列等,来控制任务,实现任务切换
建议买一本ucos的书,系统性的学一学
更多追问追答
追问
我买了一本,嵌入式实时操作系统uc/os 原作者写的,邵贝贝等翻译的。越看越是一头雾水。任务到底是如何切换的没有弄明白。在看到时间管理这个章节,当任务延时的时候被挂起(调用OSTimeDly函数),可以切换到下一个任务。我想请教下,uc/os的多任务调度,切换,实际上就是任务自己本身通过某种方式使自己停下来(例如上面说的时间延时,你所说的信号量、队列等等),让其他任务执行,可以这样理解么?
追答
可以打开书,看看源码
你会发现,在OSTimeDly(), OSSemPost等函数的源码
不难发现,源码中,就调用了“调度函数”
调度函数中,ucos系统内核检查将处于就绪态的任务,比较优先级,然后运行优先级最高的那个

所以,任务切换,实际上相当于是在任务内,调用任务切换函数,来实现任务切换的
慷慨且老实丶布丁D
2011-08-23
知道答主
回答量:6
采纳率:0%
帮助的人:3.8万
展开全部
内核自己任务调度的。“实际上就是任务自己本身通过某种方式使自己停下来(例如上面说的时间延时,你所说的信号量、队列等等)“其中还有很重要的中断,反正操作系统不会用让cpu处于空闲状态,除非是没有任务了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式