大侠们,就救啊!是不是IAR的BUG啊!

[复制链接]
1945|1
 楼主| sowin2001 发表于 2012-10-22 17:20 | 显示全部楼层 |阅读模式
本帖最后由 sowin2001 于 2012-10-23 10:41 编辑

出现个奇怪的现象,测试APP程序很简单:
u8_t a, b ;
void main (void)
{
  //已经初始化中断向量重指向APP的0x08004000

  //初始化定时器


  while (1)
  {
    if (a == b)
      continue;
    a = b ;
    灯状态取反 ;//灯闪
  }
}


定时器中断中就清除定时器中断标志,没有对a, b操作;
IAP:0x08000000~0x08003FFF,APP:0x08004000~0x0801FFFF,

按道理,这个灯状态不会取反,就算a,b没有初始化,灯状态最多取反一次而已,但只要一开定时器中断,灯状态就不定的取反,频率正好是定时器的时间;

在Release中将优化等级改成Low(之前是High),不会出现问题;
在Release中将优化等级还改成High,连接仿真器,在without download下开启仿真,立即又退出仿真,既然也能正常运行,此时就算拔了仿真器,正常运行!
看上去貌似是IAR把什么给优化没有了,但同样是优化过的程序,在不下载开启仿真能正常运行又推翻了优化的问题!

不知各位大侠有遇到过的吗?
 楼主| sowin2001 发表于 2012-10-23 10:41 | 显示全部楼层
看来没有人遇到啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

24

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部