DSPRelated.com
Forums

DSP/BIOS LOG_printf is a little flakey!

Started by stressed_out October 3, 2003
Observe the following code and it's corresponding output.
Any ideas?

Code snippet------------------------->
void main()	{
	int one=1;
	int two=2;
    LOG_printf(&trace, "test(%d %d)", one, two);  //flakey  
    LOG_printf(&trace, "test(%d %d)", 0, one, 0, two); //works?!?
    return;
}

Output------------------------------->
0   test(2 -24576)
1   test(1 2)

I am using code composer 2.2 and the project is set up for DSP BIOS
using a TMS320F2812 target.  I have the LOG_Obj trace set up thru the
appropriate api.
I have seen some other flakiness with LOG_printf as well but I feel
that this example captures the symptom most concisely.

Has anyone else seen anything like this?
Is there something that needs to be set up differently?
It almost looks like the arguments aren't being passed correctly?
Any help would greatly be appreciated.
Thanks
Paul
christmascaroler@excite.com (stressed_out) wrote in message news:<8538c581.0310030509.6fbaf872@posting.google.com>...
> Observe the following code and it's corresponding output. > Any ideas? > > Code snippet-------------------------> > void main() { > int one=1; > int two=2; > LOG_printf(&trace, "test(%d %d)", one, two); //flakey > LOG_printf(&trace, "test(%d %d)", 0, one, 0, two); //works?!? > return; > } > > Output-------------------------------> > 0 test(2 -24576) > 1 test(1 2) > > I am using code composer 2.2 and the project is set up for DSP BIOS > using a TMS320F2812 target. I have the LOG_Obj trace set up thru the > appropriate api. > I have seen some other flakiness with LOG_printf as well but I feel > that this example captures the symptom most concisely. > > Has anyone else seen anything like this? > Is there something that needs to be set up differently? > It almost looks like the arguments aren't being passed correctly? > Any help would greatly be appreciated. > Thanks > Paul
As far as i understood the dsp/bios stuff only becomes active after the main() function is completed. Do you experience this problem when calling log_printf from a tsk or swi ?
qazwsx_1999@yahoo.com (Q) wrote in message news:<397748.0310042004.527e5f64@posting.google.com>...
> christmascaroler@excite.com (stressed_out) wrote in message news:<8538c581.0310030509.6fbaf872@posting.google.com>... > > Observe the following code and it's corresponding output. > > Any ideas? > > > > Code snippet-------------------------> > > void main() { > > int one=1; > > int two=2; > > LOG_printf(&trace, "test(%d %d)", one, two); //flakey > > LOG_printf(&trace, "test(%d %d)", 0, one, 0, two); //works?!? > > return; > > } > > > > Output-------------------------------> > > 0 test(2 -24576) > > 1 test(1 2) > > > > I am using code composer 2.2 and the project is set up for DSP BIOS > > using a TMS320F2812 target. I have the LOG_Obj trace set up thru the > > appropriate api. > > I have seen some other flakiness with LOG_printf as well but I feel > > that this example captures the symptom most concisely. > > > > Has anyone else seen anything like this? > > Is there something that needs to be set up differently? > > It almost looks like the arguments aren't being passed correctly? > > Any help would greatly be appreciated. > > Thanks > > Paul > > As far as i understood the dsp/bios stuff only becomes active after > the main() function is completed. Do you experience this problem when > calling log_printf from a tsk or swi ?
Yes, the problem occurs from within tasks as well. I only showed the main() because it was the best way to show the smallest example.
>qazwsx_1999@yahoo.com (Q) wrote in message
news:<397748.0310042004.527e5f64@posting.google.com>...
>> christmascaroler@excite.com (stressed_out) wrote in message
news:<8538c581.0310030509.6fbaf872@posting.google.com>...
>> > Observe the following code and it's corresponding output. >> > Any ideas? >> > >> > Code snippet-------------------------> >> > void main() { >> > int one=1; >> > int two=2; >> > LOG_printf(&trace, "test(%d %d)", one, two); //flakey >> > LOG_printf(&trace, "test(%d %d)", 0, one, 0, two); //works?!? >> > return; >> > } >> > >> > Output-------------------------------> >> > 0 test(2 -24576) >> > 1 test(1 2) >> > >> > I am using code composer 2.2 and the project is set up for DSP BIOS >> > using a TMS320F2812 target. I have the LOG_Obj trace set up thru
the
>> > appropriate api. >> > I have seen some other flakiness with LOG_printf as well but I feel >> > that this example captures the symptom most concisely. >> > >> > Has anyone else seen anything like this? >> > Is there something that needs to be set up differently? >> > It almost looks like the arguments aren't being passed correctly? >> > Any help would greatly be appreciated. >> > Thanks >> > Paul >> >> As far as i understood the dsp/bios stuff only becomes active after >> the main() function is completed. Do you experience this problem when >> calling log_printf from a tsk or swi ? > >Yes, the problem occurs from within tasks as well. >I only showed the main() because it was the best way to show the smallest
example.
>
I would recommend looking at the DSP BIOS examples. You will notice that there is a typedef that declares if you are using a 2812 processor that the LOG_printf functions typecast the arguments to (ARG). This apparently has been cleared up in CCS 3.0 or with the more recent BIOS. This message was sent using the Comp.DSP web interface on www.DSPRelated.com