代码疑问......

[复制链接]
2476|7
 楼主| S3C2440 发表于 2010-1-12 21:14 | 显示全部楼层 |阅读模式
请问代码中的while(1);循环 啥意思?   会不会在这里死循环?


     void  TaskStart(void *pdata)
{
    uint8 *cp;
    uint8 err;

    pdata = pdata;                                                  /* 避免编译警告 */
    Uart0ReviceMbox = OSMboxCreate(NULL);                           /* 建立邮箱     */
    if (Uart0ReviceMbox == NULL)
    {
        while (1);//------------------------------------------------------????啥意思?
    }

    OSTaskCreate(TaskUart0Revice, (void *)0,
                 &TaskStk[TASK_STK_SIZE - 1], 10);                  /* 创建任务     */

    TargetInit();                                                   /* 目标板初始化 */
    for (;;)
    {
        cp = (uint8 *)OSMboxPend(Uart0ReviceMbox, 0, &err);         /* 接收数据 */
        if (cp[0] == 0x80)
        {                                                           /* led显示 */
            cp[2] = ShowTable[cp[2]];
        }
        else
        {                                                           /* 屏幕显示 */
            cp[2] = cp[2] +'0';
        }
        PC_DispChar(cp);                                            /* 显示接收到的数据 */
    }
}

gongtengxinyi 发表于 2010-1-12 21:41 | 显示全部楼层
如果建立邮箱不成功,就while(1),这不就是死循环吗,可不就死在这了
gongtengxinyi 发表于 2010-1-12 21:42 | 显示全部楼层
这是不是写错了???
6019实验室 发表于 2010-1-12 21:46 | 显示全部楼层
不写错,就不来这问了!
六楼的窗户 发表于 2010-1-12 22:06 | 显示全部楼层
空操作,2个NOP,
想实习去 发表于 2010-1-12 22:06 | 显示全部楼层
您好:

     在循环之前有个创建消息邮箱的函数,如果消息邮箱创建失败,返回值为NULL。如果循环的条件为真,表示创建消息邮箱失败,程序停在while处不执行下面的程序。
想实习去 发表于 2010-1-12 22:06 | 显示全部楼层
个人意见,有什么不对的继续讨论!
 楼主| S3C2440 发表于 2010-2-24 14:05 | 显示全部楼层
已经明白了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

400

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部