请教前辈,使用uCOS-II时,如何给每个任务分配优先级?

请教前辈,使用uCOS-II操作系统,如何给每个任务分配优先级?应遵循什么原则?系统有两个任务:1、任务1的工作是检测一个按键,如果有按键按下,则delete任务2.2、... 请教前辈,使用uCOS-II操作系统,如何给每个任务分配优先级?应遵循什么原则?系统有两个任务:1、任务1的工作是检测一个按键,如果有按键按下,则delete任务2.2、任务2的工作是LED闪烁.我做了这样两组实验:1、如果任务1的优先级高于任务2,则任务2不会执行;2、如果任务1的优先级低于任务2,则两个任务都会运行,并且当按键按下时,任务2会被delete。请教前辈,这是为什么?在给每个任务分配优先级时,应遵循什么原则?下面是我两个任务的代码void mainTask1(void *pvData){ pvData = pvData; while (1) { OSTimeDly(OS_TICKS_PER_SEC / 4); LED3_OFF(); OSTimeDly(OS_TICKS_PER_SEC / 4); LED3_ON(); }}void mainTask2(void *pvData){ pvData = pvData; while (1) { if( SEL0 == SEL0_ON() ) { OSTimeDly(OS_TICKS_PER_SEC / 4); if( SEL0 == SEL0_ON() ) { OSTaskDel(4); } } }} 展开
 我来答
阿里斯叶
推荐于2018-03-19
知道答主
回答量:13
采纳率:100%
帮助的人:4.2万
展开全部
如果按键检测任务优先级高就会一直工作,不会空出CPU使系统给task2分配资源,所以维持在只有task1工作的状态;设置task2优先级高的时候,优先满足task2工作,当task2运行到OSTimeDly()函数执行延时等待而不需要占用CPU时,系统就会将资源分配给task1去处理按键事件。优先级高的任务总是优先得到执行,当它进入延时或者因为获取消息进入阻塞状态时,才被挂起而腾出CPU给其他任务,直到它走出延时或者得到消息。
北京金瑞博
2024-08-14 广告
北京金瑞博企业咨询服务有限公司由张磊和合伙人共同创立,专注于为全球制药公司提供法规事务(药品注册)、GMP合规、质量管理数字化、市场准入以及相关工作。我们立志成为国内知名、国际有影响力的专家型咨询公司,为客户合规带来改变,对行业合规产生影响... 点击进入详情页
本回答由北京金瑞博提供
匿名用户
2014-03-05
展开全部
我想结贴,但是说“分数未分配完,或分数存在错误”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式