aglen 发表于 2009-5-8 20:12:00

程序中有的语句在AVRSTUDIO中不能设断点

请问:
      我的C程序通过STUDIO下载到片子里之后不用点运行,就自动运行,并且不能复位(其他程序可以)
      最要命是,我的很多条语句不能设断点,有时在只有“}”的行居然 可以设断点。 有的语句 比如,ifwhile
或赋值语句 也不能设。有的就能。
      在不接仿真器时,也一样
      这是为什么 请高手指点, 我觉得 和我程序有关系

snoopyzz 发表于 2009-5-8 20:30:58

因为编译器优化的原故...

void_c 发表于 2009-5-8 20:35:19

因为该行代码没有生成 对应的汇编代码 。
(编译器优化,对代码进行了删除,搬移,合并,不是每句C语言代码都有对应的汇编代码)

snoopyzz 发表于 2009-5-8 20:40:20

2L解释详细,我说话太简洁了-_-

aglen 发表于 2009-5-9 12:36:42

谢谢又长见识了
我很关键的一段程序,在时钟中断里的
if(flaghit9s_start==1&&flag_shenduset==0)         
    {   
         count_hit9s++;
          if(count_hit9s==950)       //    =980
                {
                   count_hit9s=0;
                   sdtempp=eeprom_read(170);
                   flag_shenduset=1;
                   flag_xian=1;
                   dis_waijie_sign=0;
                    EIMSK|=0X0c;          // open key interrupt
                }
   }
每行都不能设断点, 但是从效果看,这段代码应该是发挥作用了,为什么?难道是给“搬移”了?

天行者 发表于 2014-6-18 09:31:29

我的断点也设置不了,我没有优化,会不会是文件太大了。
页: [1]
查看完整版本: 程序中有的语句在AVRSTUDIO中不能设断点