打印

关于keil 仿真软件使用问题~

[复制链接]
2119|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我在keil使用中的时候发现了两个问题~求助高手~
第一个问题:我在仿真的时候~发现在watch 中的变量只有16进制和10进制数据~没有办法看assic码的数据~ 是不是只能看16进制或者10进制数据~不能看assic码的数据呀?如果能请告诉我怎么看~
第二个问题:看下面的那段程序~
void send(const uchar *compointer,uchar *compointer2,uchar mode)    {
  uint length;
  uchar *compointer1;
  uchar mode1;
  
  length = *compointer;
  compointer++;
  length = length*256 + *compointer;
  compointer++;
  SEND_BUF(compointer,length);   //  发送时数据
  mode1 = mode;
  switch(mode1)
{  
  
  case 1:

      compointer1 = compointer2;
      length = *compointer1;
      compointer1++;
      length = length*256 + *compointer1;
      compointer1++;
      SEND_BUF(compointer1,length);       //  发送时数据
      break;
    }
  case 2:

      compointer1 = compointer;
      length = *compointer1;
      compointer1++;
      length = length*256 + *compointer1;
      compointer1++;
      SEND_BUF(compointer1,length);       //  发送时数据
      break;

  }
    default: break;
}
当仿真的时候case 2 设置不了断点, 而且调用此函数 mode = 2 但是进入函数后,程序也不进入case 2的程序段中~
不知什么原因~
请高手指点一下小弟~
沙发
yixin1937|  楼主 | 2010-7-16 10:44 | 只看该作者
本帖最后由 yixin1937 于 2010-7-16 10:51 编辑

if(mode1 == 1)

      compointer1 = compointer2;
      length = *compointer1;
      compointer1++;
      length = length*256 + *compointer1;
      compointer1++;
      SEND_BUF(compointer1,length);       //  发送时数据

    }
  if(mode1 == 2)

      compointer1 = compointer;
      length = *compointer1;
      compointer1++;
      length = length*256 + *compointer1;
      compointer1++;
      SEND_BUF(compointer1,length);       //  发送时数据

  }
如果把程序改成上面这样~ if(mode1  = 2)下面的那段程序 也设置不了断点。
改成
else if(mode1 == 2)的时候 上面又设置 不了断点

使用特权

评论回复
板凳
yixin1937|  楼主 | 2010-7-16 14:24 | 只看该作者
没有人知道是怎么回事吗?
急求斑竹救命

使用特权

评论回复
地板
香水城| | 2010-7-16 14:28 | 只看该作者
直接用mode试试,不要用mode1过渡。

使用特权

评论回复
5
yixin1937|  楼主 | 2010-7-16 16:23 | 只看该作者
本帖最后由 yixin1937 于 2010-7-16 16:45 编辑

4# 香水城
用过了~但是也是相同的问题~
我在别的论坛中 问题二是被编译器优化掉了!
但是我没有找到 设置优化的地方 能不能截图给我提示一下~只有仿真的时候才会出现这种现象

使用特权

评论回复
6
hgjinwei| | 2010-7-16 22:13 | 只看该作者
两段代码一模一样,编译器给优化了。
我相信即使你优化级别为0,编译器也会将它干掉的。

使用特权

评论回复
7
yixin1937|  楼主 | 2010-7-17 21:14 | 只看该作者
6# hgjinwei
谢谢~确实向你所说的级别为0 也被优化了~

使用特权

评论回复
8
yixin1937|  楼主 | 2010-7-17 21:14 | 只看该作者
第一个问题:我在仿真的时候~发现在watch 中的变量只有16进制和10进制数据~没有办法看assic码的数据~ 是不是只能看16进制或者10进制数据~不能看assic码的数据呀?如果能请告诉我怎么看~

使用特权

评论回复
9
hgjinwei| | 2010-7-18 09:00 | 只看该作者
这个不是很清楚,对于数据串,我一直都是直接看memory窗口的。

使用特权

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

本版积分规则

个人签名:用我的一生!来追求人生的高峰!

24

主题

185

帖子

0

粉丝