keil单步调试LM3S8962非常慢

Other Parts Discussed in Thread: LM3S8962

最近在用keil调试LM3S8962,调试非常慢,其中在用到定时器的时候,定时器配置如下:

void InitTimer0A(void)
{
  TimerConfigure(TIMER0_BASE, TIMER_CFG_ONE_SHOT); // Configure the 32-bit periodic timers.
    TimerPrescaleSet(TIMER0_BASE, TIMER_A, 8);//timerA clock is sysclock8Mhz/8= 1Mhz
    TimerIntRegister(TIMER0_BASE, TIMER_A, TIMER0_IRQHandler);
    IntEnable(INT_TIMER0A);//enable timer0A interrupt for mac
    TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
    TimerDisable(TIMER0_BASE, TIMER_A);//DISABLE timer
}

定时如下:                  
    DISABLE_MAC_TIMER_INTERRUPT();// Disable Timer interrupt
    STOP_MAC_TIMER();// Stop Timer
    
    TimerLoadSet(TIMER0_BASE, TIMER_A, longTime);//initialize timer counter is 0
    CLEAR_MAC_TIMER_INTERRUPT();         // Clear Timer interrupt
    START_MAC_TIMER();                   // Start Timer

现在我的longtime=50000u,当执行完START_MAC_TIMER();跳到下一句的时候就有中断标志产生,这不可能的啊,主频是8MHZ的,为什么会是这样的情况呢?

恳请各位高手指示,谢谢!

  • 没看懂你的问题具体是什么意思,是指仿真太慢还是TIMER产生的中断有问题。

    简单估计下你的问题,你可以从如下几个方面着手测试下:

    1. 把仿真器的通信速率调高一点,如果使用的TI的ICDI仿真器,可以尝试换成J-LINK,因为TI的ICDI仿真器使用的是GPIO来实现JTAG协议,J-LINKV8的速度要快很多。

    2. 在仿真状态时,尽量不要开太多的变量窗口。如果开太多的变量窗口,会拖慢仿真的速度。

    3. 如果你是说TIMER中断有问题,则需要你更多的信息才能判断。

  • 在debug时想让定时器暂停,应设置定时器的STALL位。