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就可以请求到自己释放的信号量了,奇怪了。
...全文
66 点赞 收藏 1
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhaokkll 2015-06-16
在哪儿创建的任务和信号量 贴个代码
回复
发动态
发帖子
单片机/工控
创建于2007-09-28

2.6w+

社区成员

硬件/嵌入开发 单片机/工控
申请成为版主
社区公告
暂无公告