uc/OS-ii的信号量任务执行优先级问题

DwyaneCV 2015-06-15 10:45:43
void Sem_Task1(void *p_arg)
{
//OS_ERR err;
INT8U err;
//CPU_TS ts;
(void)p_arg;
while(1)
{
OSSemPend(User_Sem,0,&err);
OSTimeDlyHMSM(0, 0, 2, 0);
GPIO_SetValue(0,0x00000400);
OSSemPost(User_Sem);
}

}
void Sem_Task2(void *p_arg)
{

INT8U err;
(void)p_arg;
while(1)
{
OSSemPend(User_Sem,0,&err);
OSTimeDlyHMSM(0, 0, 2, 0);
GPIO_ClearValue(0,0x00004000);
OSSemPost(User_Sem);

}
}

这里我的Sem_Task2任务的优先级高于Sem_Task1,但是为啥我Sem_Task2释放信号量后,会被Sem_Task1请求到???不是应该一直被Sem_Task2请求到么,因为Sem_Task2比Sem_Task1优先级高。
而Sem_Task2之后请求到的信号量是Sem_Task1释放的,而我把Sem_Task1注视掉,这时候Sem_Task2就可以请求到自己释放的信号量了,奇怪了。
...全文
128 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhaokkll 2015-06-16
  • 打赏
  • 举报
回复
在哪儿创建的任务和信号量 贴个代码

27,509

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧