Other Parts Discussed in Thread: SYSBIOS, AM5718
Tool/software: TI-RTOS
Hi
I created a small sysbios (V6.46.5.55) program for the C66 DSP on my IDK5718. I'm using CCS 7.3.
It uses one task and one timer to run TimerFunction().
Each time TimerFunction() is called by the timer a counter increments.
The available timers are Timer5 and Timer6 (Availability Mask = 0x0030).
When I use timer 5 to run TimerFunction() the counter increments, but Task_sleep() does never return.
On the other hand, then I use timer 6 to run TimerFunction() then Task_sleep() returns but the counter remains at 0.
In both scenarios I can see that sysbios is using both timers (5 and 6), one for my TimerFunction() an the other for ti_sysbios_knl_Clock_doTick__I.
It comes out that Timer 6 does not generate interupts.
Then I had a look at the timer 6 configuration:
The timer is started in overflow mode (TCLR Register = 0x0000'0003); Timer 5 has the same setting here. so this seems correct.
As the Counter Register TCRR remaind at 0 I checked the timer input clocks:
For timers 5 to 8 these are configured via IPU_L3_GICLK and TIMERj_GFCLK (j=5...8).
The Register values are:
CM_IPU_CLKSTCTRL (Addr. 0x4A00 5540): 0x00003F02, which seems correct
CM_IPU_TIMER6_CLKCTRL (Addr. 0x4A00 5560): 0x0000'0002, which is also correct (according to silicon errata advisory i874, to avoid "TIMER5/6/7/8 Interrupts Not Propagated" bug)
Attached you find my project.
Can you confirm this behaviour?
What else could Timer 6 prevent from running?
Regards,
Markus