CCSv4.2.4, BIOS 6.31.4.27, IPC 1.22.3.23, Processor C6472
Our DSP is connected via SRIO to a host CPU and upon an error asserts, we'd like the host CPU to read the loggerbuffer for post error analysis. The CPU can read the DSP's memories via SRIO, but we need to know what address the logger buffer is at.
I've read the CCS help xdc/runtime/LoggerBuf.xdc looking for an API that returns the logger buf heap address. No luck. Its likely part of the LoggerBuf_obj, but I can;t find that definition either.
We create are logger instance in the .cfg below.
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
Exc.common$.logger = LoggerBuf.create();
var instLoggerBuf0Params0 = new LoggerBuf.Params();
instLoggerBuf0Params0.numEntries = 768;
var instLoggerBuf0 = LoggerBuf.create(instLoggerBuf0Params0);
I can pass the logger handle instLoggerBuf0 to the main DSP code using Program.global.LOGGER_HANDLE = instLoggerBuf0. And then put the handle in a predefined memory location for the host CPU to read. Via SRIO, the host can access LoggerBuf_obj, but how can it get the loggerbuf address to upload the raw log data from the DSP?
With the handle, the CPU could use the LoggerBuf.c functions LoggerBuf_flush(), LoggerBuf_getNextEntry() and the log.c Log_doPrint(), but that would require us to give the logger LoggerBuf_obj and the Logger Buffer to the CPU. I'd prefer to keep it simple (and hence less resistence by them to implementing it), and ask the CPU guys to simply upload the raw loggerbuf and logger obj to process the data offline.
Other references
C:\Program Files\Texas Instruments\bios_6_31_04_27\docs\cdoc\index.html
http://e2e.ti.com/support/embedded/f/355/p/130967/503474.aspx#503474
http://processors.wiki.ti.com/index.php/Multicore_System_Analyzer