打印

条件编译

[复制链接]
1448|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
haoyanfei123|  楼主 | 2010-7-19 15:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
再学习陈明计先生写的Small RTOS51的过程中,在任务切换函数的条件编译看不明白
是一个什么层次,请教高手指点!

不明白处前面打了?


void  OSSched(void)
{
    uint8 temp;
    OS_ENTER_CRITICAL();
?#if EN_OS_INT_ENTER > 0
    if (OSIntNesting == 0)              /* ÊÇ·ñÊÇÖжÏÖе÷Óà */
    {
?#endif
#if OS_MAX_TASKS < 9
                /* ²éÕÒ´¦ÓÚ¾ÍÐ÷״̬µÄÈÎÎñÖÐÓÅÏȼ¶×î¸ßµÄÈÎÎñ */
        temp = OSTaskRuning;
        for (OSNextTaskID = 0; OSNextTaskID < OS_MAX_TASKS; OSNextTaskID++)
        {
            if ((temp & 0x01) != 0)
            {
                break;
            }
            temp = temp >> 1;
        }
        OS_TASK_SW();                   /* ½øÐÐÈÎÎñµ÷¶È */
#else
                /* ²éÕÒ´¦ÓÚ¾ÍÐ÷״̬µÄÈÎÎñÖÐÓÅÏȼ¶×î¸ßµÄÈÎÎñ */
        temp = OSTaskRuning % 256;
        for (OSNextTaskID = 0; OSNextTaskID < 8; OSNextTaskID++)
        {
            if ((temp & 0x01) != 0)
            {
                goto TaskSw;
            }
            temp = temp >> 1;
        }
        temp = OSTaskRuning / 256 ;
        for (; OSNextTaskID < OS_MAX_TASKS; OSNextTaskID++)
        {
            if ((temp & 0x01) != 0)
            {
                break;
            }
            temp = temp >> 1;
        }
TaskSw:
        OS_TASK_SW();                   /* ½øÐÐÈÎÎñµ÷¶È */
#endif
?#if EN_OS_INT_ENTER > 0
    }
?#endif
    OS_EXIT_CRITICAL();
}

相关帖子

沙发
ayb_ice| | 2010-7-19 17:10 | 只看该作者
猜都能猜到
建议不要看RTOS了,先看C语言基础

使用特权

评论回复
板凳
haoyanfei123|  楼主 | 2010-7-19 18:09 | 只看该作者
2# ayb_ice

使用特权

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

本版积分规则

0

主题

2

帖子

1

粉丝