TIwilliam hill官网
直播中

李戈

7年用户 182经验值
私信 关注
[问答]

keil单步调试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的,为什么会是这样的情况呢?
恳请各位高手指示,谢谢!

回帖(2)

周雯葭

2020-4-8 08:35:13
没看懂你的问题具体是什么意思,是指仿真太慢还是TIMER产生的中断有问题。
简单估计下你的问题,你可以从如下几个方面着手测试下:
1. 把仿真器的通信速率调高一点,如果使用的TI的ICDI仿真器,可以尝试换成J-LINK,因为TI的ICDI仿真器使用的是GPIO来实现JTAG协议,J-LINKV8的速度要快很多。
2. 在仿真状态时,尽量不要开太多的变量窗口。如果开太多的变量窗口,会拖慢仿真的速度。
3. 如果你是说TIMER中断有问题,则需要你更多的信息才能判断。
举报

王蓓

2020-4-8 08:44:35
引用: pingfandeshijie 发表于 2020-4-8 08:35
没看懂你的问题具体是什么意思,是指仿真太慢还是TIMER产生的中断有问题。
简单估计下你的问题,你可以从如下几个方面着手测试下:
1. 把仿真器的通信速率调高一点,如果使用的TI的ICDI仿真器,可以尝试换成J-LINK,因为TI的ICDI仿真器使用的是GPIO来实现JTAG协议,J-LINKV8的速度要快很多。

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

更多回帖

发帖
×
20
完善资料,
赚取积分