Other Parts Discussed in Thread: CODECOMPOSER
I setup a new PRD object, specified the function to call, setup the CLK input and the period. But my function never gets called. Run out of ideas on how to track down what is wrong.
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.
Other Parts Discussed in Thread: CODECOMPOSER
I setup a new PRD object, specified the function to call, setup the CLK input and the period. But my function never gets called. Run out of ideas on how to track down what is wrong.
Are you using BIOS 5? On what chip/platform?
It seems like if the PRD was set up correctly and is not firing then the clock function must not advancing the PRD tick. You can search for and set a breakpoint on the timer interrupt function, which is called CLK_F_isr, to make sure it is getting called.
A 1 ms tick is the default, so make sure that you didn't do anything to change that to something longer.
If all this checks out, you'll need to check your configuration again to make sure that the PRD period, specified function, etc is really being set up correctly.
Hi Kurt,
I've seen a similar problem using DM648 with BIOS 5.33.06. It would be great if you could check if the behaviour is similar in your case.
I have a simple app that has an empty main(), a little initialization in a TSK and a PRD that increments a variable whenever it is called. Sometimes my PRD is not called after downloading the app.
It seems that BIOS setsup the timer registers (TMR0) after main() is left and before TSK functions are called. In CodeComposer open View->Registers->TMR0. Download your program and step into main(). When main is left, the timer registers should get setup and when you call 'refresh', you should see the timer counting. When you run your program PRD should get called. When the TMR0 registers keep in their poweron state, the PRD will not get called.
In my case the problem is caused because the automatic TMR-register initialization by DSP BIOS fails. I dont know yet when and why.
If it is similar in your app, maybe we can get a step onwards in debugging it,
Thomas
> Are you using BIOS 5? On what chip/platform?
BIOS 5.41.04.18 and c6748 and simulator
> You can search for and set a breakpoint on the timer interrupt function, which is called CLK_F_isr, to make sure it is getting called.
Easy for you to say. I'll try to figure out how to do this.
> A 1 ms tick is the default, so make sure that you didn't do anything to change that to something longer.
Checked and double checked. Verified 1 ms tick and 10ms period.
> If all this checks out, you'll need to check your configuration again to make sure that the PRD period, specified function, etc is really being set up correctly.
Was hoping there was some way to do this. Doing this by hand is my problem right now.
Hmmm...must have twitched a tweak somewhere because now it is working. Or maybe I was not patient enough on earlier runs because it takes 15+ PRD_swi before the first PRD call.
But...now my logs are not showing anything. I have two logs, LOG_system and a trace log. My code causes very little load. CPU Load graph shows 0 except for occasional spikes. IDL_busyObj is getting lots of counts. I did notice that I am getting LOG_system entries if I set and hit a breakpoint. But when I pause execution I get nothing.