Board logo

标题: 求助:s12在线调试正常,但离线自动运行出错 [打印本页]

作者: yanbin560    时间: 2011-4-23 10:02     标题: 求助:s12在线调试正常,但离线自动运行出错

各位好:
      我使用的是cw for s12(x)v5.0,程序在线调试,点击run,运行正常,但断电取下USB Multilink Interface后,再通电启动,程序运行不正常,不知道各位高手有什么想法,我想,如果是硬件方面的问题,调试时也应该不对的,我是新手,请各位赐教,非常感谢!
作者: yanbin560    时间: 2011-4-23 10:11

调试器运行的时钟是否与离线自动运行时的不一样?
作者: xqy200909    时间: 2011-4-25 14:32

把程序发上来看看,否则无法解答。
作者: yanbin560    时间: 2011-4-28 10:27

看到另外一个帖子,问题和我是一样的http://bbs.eccn.com/viewthread.php?tid=92766
我的程序是加了一段SPI通讯程序后出现了这个问题,该程序是向电源芯片内写入控制字,程序段如下:
word PwrSPIReadWriteWord(word PwrSet)
{ word tmp, bitmsk=0x0001;
  byte i;

  PwrSPICS_ClrVal();
  for(i = 0; i<16; i++)
  {
    PwrSPISCK_SetVal();
    if(PwrSet&bitmsk)
      PwrSPISI_SetVal();
    else
      PwrSPISI_ClrVal();
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    PwrSPISCK_ClrVal();
    if(PwrSPISO_GetVal())
      tmp |= bitmsk;
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    asm nop;
    bitmsk = bitmsk<<1;
  }
  PwrSPISI_ClrVal();
  PwrSPICS_SetVal();
  return tmp;
}
在线调试时,这段程序运行不了,出现ILLEGAL_BP,但去掉一个asm nop,就可正常运行,但离线运行时就会出问题,现象应该还是ILLEGAL_BP
作者: strongchen    时间: 2011-5-6 11:19

如果你的程序中多一个 "asm nop” 就不能正常运行的话,说明程序本身就有问题。首先应该解决这个问题。你可以在调试界面进入汇编指令窗口,看看有和没有这条指令时,汇编代码有什么区别。
作者: strongchen    时间: 2011-5-6 11:22

然后看一下具体走到哪条汇编指令时出错。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0