打印

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

[复制链接]
1406|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

粉丝