I am using CCS 3.3.82.13, with DSP/BIOS 5.33.04, an XDS510USB emulator, and C6474 EVM target board.
I am using printf() in my main task to periodically output status information to CCS (via the emulator-jtag-USB path).
But I am finding that at times the printf() function appears to cause delays or death of SRIO message transactions.
Note that I am not using printf() from within any interrupt code, or software interrupt thread, it is only being used in the background main task, and is being used with a low frequency, so is not flooding the output with printf() data.
Aditionally a colleague has seen similar effects when developing code to support I2C devices via interrupt, but again is only using printf() from NON interrupt code.
It would suggest that the printf() function (along with the CCS-emulator path) is somehow causing some sort of resource or peripheral contention, which in turn either stalls the SRIO hardware interrupts, or DMA transfers, or possibly is disabling various interrupts in some manner.
The questions are:
1] Has anyone else encountered this behaviour?
2] Is it a bug in the DSP/BIOS and printf() functionality?
3] Is it some sort of semaphore action that is blocking other hardware interrupts, or service routines?
4] Is there a work round, apart from not using printf()?