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.

TSK_sleep issue

 Hello,
please allow following question regarding the usage of TSK_sleep in DSP/BIOS 5.42.01.09 context, on C6747 DSP.

DSP/BIOS call TSK_sleep simply doesn't block the task (returning practically immediately - it is, in less than a microsecond).

As far as I understood, AUXCLK is the relevant System Clock Domain for general purpose timer behind.
It is fed directly from reference clock source (20MHz in our case).

Here some TConf .tcf (containing no timer-relevant entries) details:

  • TConf says there're two timers: 0, 1 (1 was default, changed to 0 - without an effect)
  • Global settings/DSP Speed in MHz (CLKOUT): 400.0000 [MHz]  ..it is the speed at which we let DSP run (SYSCLK1)
  • Scheduling/CLK - Clock Manager: Use hi-resol. time, 1000 Microseconds/Int   ..so, timer-interrupt on ms basis
  • Scheduling/TSK - Task Manager: TSK tick driven by PRD  (TSK manager enabled, of course)


I've made following checks (by means of DSP/BIOS CLK API) as follows:

  • CLK_countspms(): 400000 ...returns the number of timer counter register increments or decrements per ms
  • CLK_getprd(): 400000    ...returns the value set for the period register in the configuration
  • Debugger:
    PLL0: CKSTAT AUXEN = ON ...Clock Status Register (CKSTAT)

I use CGT 7.4.4, and DSP/BIOS 5.42.01.09. CCS 5.5. The DSP is a C6747.

Many thanks!
Mladen

  • Dear Mladen,
    Can you please refer to this post ?
    e2e.ti.com/.../255499

    I think, RTOS folks can address this post effectively.

    Please make use of our RTOS E2E forum for RTOS or BIOS related questions.
    e2e.ti.com/.../355
  • My application is build out of three tasks, and does not use Linux.

    To my understanding, the 'TSK_sleep' uses a timer internally.
    Per default, DSP/BIOS used "timer 1" for "CLK-Clock Manager"; changing to "Timer 0":
    bios.CLK.TIMERSELECT = "Timer 0";
    ..brought no solution to the problem.

    Regards,
    Mladen
  • Hello, please allow following appendix.
    According to ROV (RTOS Object View) view, in a minute systemTick progresses for around 3000 ticks.
    3000 ticks / 60 sec => 50 ticks / sec

    Strange, due to (as described above) current CLK-setup
    "1000.0000" Microseconds/Int = systemTick on ms basis
    which should mean 1000 systemTicks in 1 second. Am I right?

    As I've already mentioned, both CLK_countspms() and CLK_getprd() return 400000.

    Finally let me append images of two key panels in TConf. Note assumed clocks displayed in grey (CLK Properties).


    Regards,
    Mladen