这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [求助]在44b0x上移植vxworks出现的奇怪问题

共1条 1/1 1 跳转至

[求助]在44b0x上移植vxworks出现的奇怪问题

菜鸟
2006-04-08 20:02:53     打赏

移植过程中,我又在autoboot中出现问题

if (timeout > 0)
{
printf ("\nPress any key to stop auto-boot...\n");

/* Loop looking for a char, or timeout after specified seconds */

autoBootTime = tickGet () + sysClkRateGet () * timeout;
timeMarker = tickGet () + sysClkRateGet ();
timeLeft = timeout;

printf ("%2d\n", timeLeft);/*该处设为位置1*/

while ((tickGet () < autoBootTime) && (bytesRead == 0))

{
(void) ioctl (consoleFd, FIONREAD, (int) &bytesRead);
/*printf ("%d\n", tickGet ());*//*该处设为位置2,是我自己加的一句*/
if (tickGet () == timeMarker)/*该处设为位置3*/
{
timeMarker = tickGet () + sysClkRateGet ();
printf ("%2d\r left", --timeLeft);
}

}
}

现象是假如位置2的程序被注释掉的话,程序只打印出位置1的语句,此时timeleft=7,位置3的判断似乎永远不成立,程序死掉;假如位置2的打印语句不被注释,程序却可以正常运行,一直到Waiting for Target Server connection...。很奇怪的问题,我是个新手,就我的理解在没有我自己加的那句打印tickGet 语句时,tickGet 值不会变化,也就是进不去位置3判断语句,而加了打印语句,tickGet 值却变化了。而似乎tickGet 只跟系统时钟有关,跟打印没关系阿,求教各位大虾,我的程序可能是哪里出问题了,谢谢!




关键词: 求助     44b0x     移植     vxworks     出现     奇怪    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]