I have a target device based on an OMAP3530 and I am trying to time profile some code running on the DSP. My development environment is CCSTUDIO 3.3 on XP and using bios 5.31.02 using a Blackhawk 560 emulator. For starters, I am trying to use the clock example from
${bios_install}\packages\ti\bios\examples\basic\clk\clk.c for the DSP6416 target.
After configuring the IRAM and SDRAM for my target machine, it compiles cleanly and loads to target with no errors or warnings. It runs to the point where it does the TSK_sleep function but never returns from this. Using CLK_gethtime and CLK_getltime appears that the high or low resolution counters are not incrementing. I have added the bios call to the IRQ enable for Timer 0, and have enabled interrupts (HWI_enable()) all of which has had no effect. I’ve seen other complaints on E2E concerning “TSK_sleep” not working but I can’t seem to relate them to my example. Any suggestions?
Forgot to mention:
CLK Clock Manager is attached to timer 0
PRDPeriodic Function Manager Is set to Use CLK manager to drive PRD
HWI_INT14 interrupt source is Timer_0 and function is CLK_F_isr
Does anyone know if there is a relationship between the configuration of DSPLink (results in the kernel module dsplinkk.ko ) for the OMAP3530 and the timers used for the DSP system clock?
Hi
I know this post is quite old, but maybe someone would find it helpful during google search :)
Setting DSP_TSK_MODE (--DspTskMode=1 with dsplinkcfg.pl) during DSPLINK compilation is just for the Dsplink modules to use TSK and semaphores instead of SWI during access to critical section. It has nothing to do with your application scheduling approach.
According to TSK_sleep problem, very often it is result of improper use of stacksize attribute during task creation. If you create it dynamicaly just check if you reserved enough memory for the stack.
TSK_Attrs attrs = TSK_ATTRS;attrs.priority = 8;attrs.name = "MainTask";attrs.stacksize = 4096;tskRingIoTask = TSK_create ((Fxn)MainTask, &attrs, argc, argv);
When creating stack staticaly just make sure you've set for example:
bios.TSK.STACKSIZE = 4096; //default stack size for all tasks, or you can do it per task in your .tcf or .tci file
Happy coding
Konrad