这是一个简单的任务
while(1) { _tv.tv_sec = 0; _tv.tv_usec = time; /* If using 10000 us, then the system hang will not occur. */ res = select(0, NULL, NULL, NULL, &_tv); if (res < 0 && errno != EINTR && errno != 0) { printf("select error\n"); goto out; }
}
如果把睡眠时间变为10ms,就没有问题,如果变成1ms,就会挂死。
其实1ms都不会睡眠,因为clock是100HZ。所以这个程序也可以简化为
level = intLock(); kernelState = TRUE; intUnlock(level);
windExit();
挂死的现象是shell无打印,无反应,一会儿后重启。
开发板是mips74k, 但如果使用mips24ke,则也没问题。
新手,碰到这问题也不知道如何调试,请大侠指教
|