This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DMTimer-based ISR called too slow

Genius 5820 points

Hi,

this is originally a Starterware/BeagleBone Black question but since it is still not solved I try to find some ideas and help here (original thread can be found at http://e2e.ti.com/support/embedded/starterware/f/790/t/302178.aspx )

Within Starterware there is a example that utilitises DMTimer2 to call an ISR periodically. That example works well with TIMER_INITIAL_COUNT (0xFF000000u) and TIMER_RLD_COUNT (0xFF000000u). I tried to extend it a bit to let the ISR be called more often but found a limitation with timer intial/reload count values of 0xFFFFFE00. It is impossible to set bigger values so that the ISR is called more often - the related values are ignored and the ISR can't be called more often than every 21 usecs. But according to CPU and CLK_M_OSC value it should be possible to have much higher frequencies here.

After adding some other code to this example I could go down to a ISR that is called every 10 usec - but unfortunately I don't know which of the (complex) initialisations of this additional code caused this improvement.

Now the current state is as follows:

- timer/reload values bigger than (0xFFFFFFFF-12) are ignored, it is not possible to call a ISR more often than every 10 usec

- when I set up an other timer (DMTimer3) to call a second ISR so that both are called alternating, the whole speed goes down and I no longer reach the 10 usec period, additionally the whole system is stalled, my main loop is no longer processed

Of course execution time of my ISRs is much shorter than these 10 usecs.

So...any idea what could cause this slow-down and speed-limitation?

Thanks!

  • Hi Hans,

    I'm sorry, but the StarterWare software development package is only supported in the StarterWare forum. I'm not able to help on this question.

    Best regards,
    Miroslav

  • Miroslav,

    I'm aware of this but since there no solution is known (even for the problem in provided example code) I just wanted to ask from processors point of view (without getting any code-examples or something like this) what could cause such behaviour or what could slow down the ISR in this way even when DMTimer should trigger it more often.

    I don't expect a ready-to-use solution, every hint and idea is welcome!