Forums

LOG_printf is affecting real time!

Started by ajs_edwards_uk April 8, 2002
I have taken an existing example (codec_bios) which just performs
simple mic / speaker loopback on a codec interrupt. I added 3 lines
of C:

#include log.h
#inlcude codec_bioscfg.h

//and in main
LOG_printf(&mylog, "starting");

I changed the DSP/BIOS Config so that RTDX is enabled, and the Host
Channel Manager link type to RTDX (so channels are allowed). This
basically loads the relevant RTDX libraries on the target along with
the main program. I also added a log trace called "mylog" for the
logging. Basically the changes I made were minimal to make the RTDX
LOG functionality work. When the program runs and the Enable RTDX
checkbox is checked in CCS, regular glitches are seen on the
oscilloscope (looking at speaker o/p) in the sine wave. When Enable
RTDX is unchecked, its perfect - no glitches.

If the rate at which the PC polls the board is increased, the
glitches happen more often, therefore it can probably be deduced that
the target is interrupted when the PC polls the target. Even though
TI say that RTDX works "without interfering with the target
application"!

I am thinking other people must have come accross this problem, as it
happens in several different programs! Thanks in advance for any
help,

Andrew Edwards



On Mon, 08 Apr 2002 11:55:14 -0000, you wrote:

>If the rate at which the PC polls the board is increased, the
>glitches happen more often, therefore it can probably be deduced that
>the target is interrupted when the PC polls the target. Even though
>TI say that RTDX works "without interfering with the target
>application"!
>

This is from page 71 of spru423.pdf (DSP/BIOS user manual):

LOG_event and LOG_printf both operate on logs with interrupts
disabled. This allows hardware interrupts and other threads of
different priorities to write to the same log without having to worry
about synchronization.

LOG_ is supposed to take about 32 cycles, but if you have multiple
threads calling it you may be punching holes in the audio with them.
Try playing with turning various logging/statistics options on and off
to see if one of them effect things more than the other.

Brian

-----------------
Brian C. Lane (KC7TYU) Programmer
www.shinemicro.com RF, DSP & Microcontroller Design