yanyu_stm32 发表于 2009-2-12 11:45:38

求教关于IAR中变量的问题-怀疑编译器

大家好!谢谢大家刚才的回答。我的设计思路是SysTick中断中使sendtime++,然后在主程序中判断每10次做一次操作。
我的原程序main.c的相关内容如下:
u32 sendtime;
u32 b1;
u32 b2;

int main(void)
{
#ifdef DEBUG
  debug();
#endif

  b1=b2=0;
  sendtime=0;
   Set_System();
  Set_USBClock();
  Led_Config();
  Key_Config();
  JoyStick_Init();
  Interrupts_Config();
  EK_ADC_Init();
    USART1_Init();
  USART1_Configuration();
   SysTick_Init_start();
  ADC_SoftwareStartConvCmd(ADC1, ENABLE);
  //USB_Init();
  //while (bDeviceState != CONFIGURED);
  //USB_Configured_LED();

  b1 = sendtime;
  while (1)
  {
    b2 = sendtime;
    if((b2-b1) > 10 )b1 = sendtime;
   }
}
编译没问题,但是在单步调试过程中发现while(1)循环中的b2=sendtime根本不执行!
求救啊

wolaiye945 发表于 2009-2-12 12:59:30

RE:求教关于IAR中变量的问题-怀疑编译器

应该不会不执行,IAR的Step方式有时候会跳步显示(可能是step方式的缘故,如果按照汇编step就应该没问题),你可以通过加BreakPoint的方式判断它是否执行了。

yanyu_stm32 发表于 2009-2-12 13:45:11

RE:求教关于IAR中变量的问题-怀疑编译器

根本不能加断点,汇编STEP中就没有相应的代码啊

wolaiye945 发表于 2009-2-13 11:12:52

RE:求教关于IAR中变量的问题-怀疑编译器

为什么不能加断点?有什么提示还是怎么样,描述清楚一点儿...
我记得在Debug模式的菜单栏里有对应step方式的选择啊,但没遇到过你这个问题,赋值语句虽然跳过但都运行了,你确定sendtime变化了?

中山无雪 发表于 2018-2-7 00:06:18

优化掉了
页: [1]
查看完整版本: 求教关于IAR中变量的问题-怀疑编译器