AM6442: AM64x SOC: TimerP overflow interrupt while debugging

Part Number: AM6442
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hello,

I have observed TimerP_clearOverflowInt function gets called repeatedly during debugging. I observed this behaviour when I used two different DMTIMER instances for two applications running on R5_0_0 and R5_0_1.

 

Is it something like Watchdog timer? How do i disable the Timer overflow isr in debug mode?

Thank you.

Best Regards,
Upendar

  • Hi,

    Please share the sysconfig settings for both the DM timers and share the piece of code which you have been using to implement timers.

    Thanks,

    Vaibhav

  • Hello Vaibhav,

    I used the latest Profinet sample application. I did not change anything related to Timers. Also, I have not checked if the same behaviour occurs during normal run mode. Only debug mode has the problem and only when I use the application in multicore context. I was wondering if you have deeper insight into timer configuration and usage in multicore setting and debugging.

    If possible, please try to recreate by running the profinet example on core 0 and another application on core 1 with different timer instances.

    Thank you.

    Best Regards,
    Upendar Sama

  • Hello Upendar Sama,

    I have observed TimerP_clearOverflowInt function gets called repeatedly during debugging. I observed this behaviour when I used two different DMTIMER instances for two applications running on R5_0_0 and R5_0_1.

    In Overflow Mode, the DMTIMER counts down from Start_Value = Max_Count_Value – Period until it reaches 0x0, then generates an overflow interrupt.

    In the MCU+ SDK, the ISR calls TimerP_clearOverflowInt() to acknowledge and clear the interrupt. Since the timer is in continuous mode, this function is called every configured period, which is expected.

    If multiple DMTIMER instances are configured in SysConfig (even on different R5F cores), each will trigger its own periodic interrupt. Even with only one R5F application active, every configured timer will still run.

    Example: if the timer clock is 25 MHz, period is 1 ms, and max count is 0xFFFFFFFF, then ticks per period = 25,000, start value = 0xFFFFFFFF – 0x000061A8 = 0xFFFF9E57, and the timer will count from 0xFFFF9E57 down to 0, then interrupt.

    Elapsed time can be calculated as: Elapsed_Time = (Max_Count_Value – Current_Count) / Timer_Freq. Use 25 MHz for Timer_Freq;

    If you not expecting Timer interrupt , please stop the Timer . Use the Timer_Stop API to stop the Timer .

    Regards,

    Anil.

  • Hello Anil,

    thank you for the explanation.

    I will consider this for my application. 

    Best Regards,
    Upendar

  • Hello Upendar,

    I am closing this thread now and open new threads for new queries .

    Regards,

    Anil.