IAR编译stm8出现的奇葩问题

近日使用iar for stm8的软件来调试stm8系列的芯片,使用timer定时器中断时发现一个问题,程序中timer定时器的中断入口如下

#pragma vector=ITC_IRQ_TIM1_OVF + 2

__interrupt void TIM1_UPD_OVF_BRK_IRQHandler(void)
{    
  
    /* 清除更新中断标记,这步不能漏掉,否则会连续进入中断程序 */
    TIM1_ClearFlag(TIM1_FLAG_UPDATE);

  //add your code here

}

我在

#pragma vector=ITC_IRQ_TIM1_OVF + 2  和  __interrupt void TIM1_UPD_OVF_BRK_IRQHandler(void) 之间定义了一个变量u16 min_cnt;

然后编译发现没问题,下载程序后程序就崩溃了,不能运行。将变量移出到#pragma vector=ITC_IRQ_TIM1_OVF + 2 这句话的上边,编译下载后没有问体,一个不能解释的问题,注意!

 

sitemap