打印

CW 警告:C12056

[复制链接]
5352|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ldskendy|  楼主 | 2008-3-20 22:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
cw, TE, se, go, CD
IDE: Freescale CodeWarrior

出错信息:C12056: SP debug info incorrect because of optimization or inline assembler

代码以下:
void ccddebug(void)
{
  uchar kv=2;
  uchar temp;
SS:  clrlcd();
  go(0,3);
  temp=*GATE0;
  wchar(temp);
  go(2,3);
  temp=*GATE1;
  wchar(temp);
    
  while(kv!=0x07)   //loop
  {
    kv=key();
    
    if(kv==3) 
    {
      (*GATE0)--;
      go(0,3);
      wchar(*GATE0);
    } 
    
    else if(kv==4) 
    {
      (*GATE0)++;
      go(0,3);
      wchar(*GATE0);
    } 
    
    else if(kv==5) 
    {
      (*GATE1)--;
      go(2,3);
      wchar(*GATE1);
    } 
    
    else if(kv==6) 
    {
      (*GATE1)++;
      go(2,3);
      wchar(*GATE1);
    } 
    
    else if(kv==8) 
    {
      Save_eeprom();
      goto SS;
    } 
    
//    else 
//      PORTB=PORTB;
    
  }
}
出错指示于最后一行花括号.


若取消后面两行的注释,则不会出错.
    else 
      PORTB=PORTB;

相关帖子

沙发
张明峰| | 2008-3-21 11:42 | 只看该作者

试试这样

else 
      PORTB;

使用特权

评论回复
板凳
ldskendy|  楼主 | 2008-3-21 21:35 | 只看该作者

我是想去掉那两行代码

我是想去掉那两行代码

else 
 PORTB=PORTB;

使用特权

评论回复
地板
JerryBJ| | 2008-3-24 10:54 | 只看该作者

修改优化选项看看

Standard Setting - Compiler for HC08 - Smart Slides - Debug Complexity, 把这个滑动条往低拉。

另外,书写程序的时候也可以写得优化一点,或者能消除此错误。

那么多elase if貌似可以写成switch。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

10

帖子

0

粉丝