打印

求助,懂ucos-ii系统的大神帮帮忙啊。。。。

[复制链接]
1080|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aukey|  楼主 | 2012-7-24 17:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void OSIntExit (void)   
{   
  OS_ENTER_CRITICAL();   
  if ((--OSIntNesting | OSLockNesting) == 0) { /* Reschedule only if all ISRs completed & not locked */   
  OSIntExitY = OSUnMapTbl[OSRdyGrp];   
  OSPrioHighRdy = (INT8U)((OSIntExitY << 3) + OSUnMapTbl[OSRdyTbl][OSIntExitY]]);   
  if (OSPrioHighRdy != OSPrioCur) { /* No context switch if current task is highest ready */   
  OSTCBHighRdy = OSTCBPrioTbl[OSPrioHighRdy];   
  OSCtxSwCtr++; /* Keep track of the number of context switches */   
  OSIntCtxSw(); /* Perform interrupt level context switch */   
  }   
  }   
  OS_EXIT_CRITICAL();   
}   
在上述程序里假如 OSIntCtxSw();里进行了任务调度那么
OS_EXIT_CRITICAL(); 这个函数什么时候执行  
该中断应该怎么退出?
那位大侠指导、指导。

相关帖子

沙发
airwill| | 2012-7-25 19:50 | 只看该作者
OSIntCtxSw();里有没有进行了任务调度对后面的执行没有关系, 只是中断返回到哪里去执行不同而已

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

20

帖子

1

粉丝