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

求助:s12在线调试正常,但离线自动运行出错

求助:s12在线调试正常,但离线自动运行出错

各位好:
      我使用的是cw for s12(x)v5.0,程序在线调试,点击run,运行正常,但断电取下USB Multilink Interface后,再通电启动,程序运行不正常,不知道各位高手有什么想法,我想,如果是硬件方面的问题,调试时也应该不对的,我是新手,请各位赐教,非常感谢!
调试器运行的时钟是否与离线自动运行时的不一样?
把程序发上来看看,否则无法解答。
看到另外一个帖子,问题和我是一样的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
如果你的程序中多一个 "asm nop” 就不能正常运行的话,说明程序本身就有问题。首先应该解决这个问题。你可以在调试界面进入汇编指令窗口,看看有和没有这条指令时,汇编代码有什么区别。
海纳百川  有容乃大
然后看一下具体走到哪条汇编指令时出错。
海纳百川  有容乃大
返回列表