首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助]老是跑飞为什么?[

求助]老是跑飞为什么?[

 while(1){
   WaitTimeOut=0;
     
   while((CAN4RFLG_RXF==0)&&(WaitTimeOut<WAIT_WINDOW))
     WaitTimeOut++;
                                    
   if(WaitTimeOut>=WAIT_WINDOW)
        break    ;   
   else
     Idr=CAN4RXIDR0;//   此处跑飞
 
        switch(Idr){


         ...//receive data from CAN 


          }


     CAN4RFLG_RXF = 1;           
}
}
哪位老兄能告诉我那里错了?

Walk slowly,but never stop.
COP WATCHDOG是否启动?
海纳百川  有容乃大
我没有用WATCHDOG
Walk slowly,but never stop.
你怎么知道程序是在这一句跑飞的?
海纳百川  有容乃大
用BDM设断点,然后run to cursor,就飞掉了,另外我去掉判断,设断点,run to cursor几次后也会飞掉。
while(1){
while(CAN4RFLG_RXF==0) ;// 断点设在此处,
Idr=CAN4RXIDR0

switch(Idr){

...//receive data from CAN
}



CAN4RFLG_RXF = 1;
}
}

Walk slowly,but never stop.
会不会是堆栈溢出了?
slaxh.com
我的堆栈改的很大也不行
Walk slowly,but never stop.
断点设在别的地方就没有这个问题了吗?
把程序简化试试。
海纳百川  有容乃大
是不是仿真器有问题或者系统时钟不稳定。你打开PLL了么?关闭他试试
水泡泡
 我的QQ是:52449804 
 我的网站是: www.dyic.com.cn
 欢迎访问和留言跟我联系
恩,好的,谢谢各位
Walk slowly,but never stop.
返回列表