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.

RTOS/TMS320C5534: using PRD on C55x

Part Number: TMS320C5534

Tool/software: TI-RTOS

Hello,

I am trying to used the PRD feature to trigger a periodic event (a heart-beat LED) on my design.

Although I am pretty sure i did everything OK, the PRD dos not fire and my handler is not called.

I also noticed that, if i let my app running 10secs, i don't seem to have the numer of kernel ticks matching a default 1ms rate.

However, i understood that, the dsp/BIOS sys clock is enabled by default and fires each 1ms ...

Is there a working example somweher (more involved than the bigtime exemple)

Thanks,

Jacques

  • Hi Jacques,

    I've notified the sw team. They will post their feedback directly here.

    Best Regards,
    Yordan
  • After a LOT of trials, i managed to solved that.
    First, it seems that the clock tick was not correctly defined for some reason, so I added
    bios.CLK.MICROSECONDS = 1000;
    in the .tcf. Previously, i also tweaked the platform definition (.tci) to change the frequency to the one I am using (a bit lower), so DSP/BIOS would set the Timer0 divider correctly.

    Then, i declared my PRD, so he would call directly the SEM_post to the right task, instead of using an intermediate PRD Swi which would do the same. For some reason, the latter does work only once .....

    prdClock0 = bios.PRD.create("prdClock");
    prdClock0.period = 1000; // 1000us * 1000 = 1s
    prdClock0.mode = "continuous";
    prdClock0["fxn"] = prog.extern("SEM_post");
    prdClock0.arg0 = prog.extern("HK_Sema");

    Then i have a HK (houseKeeping) tasks pending on this sema .... and it works perfectly.
    Also, i had to raise a bit the priority of this housekeeping task (i first set it a a very low prio), otherwise, it was never scheduled ..

    Jacques