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.

RTOS/EK-TM4C1294XL: LoggerStreamer2 refuses drop list logger instance, goes back to null

Guru 56418 points

Part Number: EK-TM4C1294XL

Tool/software: TI-RTOS

Testing LoggerStreamer2 UART transport the Logging setup module advanced properties does not accept any instances of UIA 2.0.5.50 LoggerStreamer2 module. The instances show up in advanced properties drop down box of LoggingSetup module as (load, main, bios) diagnostic event loggers but immediately switch back to (null) when they are selected. CCS code analysis fails to identify the logger name assigned to handle, the specific modules diagnostic events described above. I changed (null) in the last 3 lines below to indicate the actual names of the instance loggers configured above.

Console message shows the first loggerStreamer20 is not defined when clearly it is.

/* Logger Streamer2 Configuration */
var LoggerStreamer2 = xdc.useModule('ti.uia.sysbios.LoggerStreamer2');
LoggerStreamer2.transportType = LoggerStreamer2.TransportType_UART;
LoggerStreamer2.isTimestampEnabled = false;

var loggerStreamer20Params = new LoggerStreamer2.Params();
loggerStreamer20Params.instance.name = "loggerStreamer20";
loggerStreamer20Params.bufSize = 2048;
loggerStreamer20Params.exchangeFxn = "&UARTUtils_loggerSend";
Program.global.loggerStreamer20 = LoggerStreamer2.create(loggerStreamer20Params);

var loggerStreamer21Params = new LoggerStreamer2.Params();
loggerStreamer21Params.instance.name = "loggerStreamer21";
loggerStreamer21Params.bufSize = 2048;
loggerStreamer21Params.exchangeFxn = "&UARTUtils_loggerSend";
Program.global.loggerStreamer21 = LoggerStreamer2.create(loggerStreamer21Params);

var loggerStreamer22Params = new LoggerStreamer2.Params();
loggerStreamer22Params.instance.name = "loggerStreamer22";
loggerStreamer22Params.exchangeFxn = "&UARTUtils_loggerSend";
loggerStreamer22Params.bufSize = 2048;
Program.global.loggerStreamer22 = LoggerStreamer2.create(loggerStreamer22Params);

LoggingSetup.loadLogger = loggerStreamer20;
LoggingSetup.mainLogger = loggerStreamer21;
LoggingSetup.sysbiosLogger = loggerStreamer22;

  • BP101,

    The last three lines are wrong. The should be:

    LoggingSetup.loadLogger = Program.global.loggerStreamer20;
    LoggingSetup.mainLogger = Program.global.loggerStreamer21;
    LoggingSetup.sysbiosLogger = Program.global.loggerStreamer22;

    You can edit the .cfg as a text file and correct this.

    It looks like the Advance tab sees the LoggerStreamer2 runtime handles, but since LoggingSetup only deals in the build world, it gets confused. I'll open a bug report on this.

    Todd
  • Oddly not the logger instance name shown in the drop down list also being created in the configuration file. Nor is that the name of the instance also shown binding to the transport.

     Thanks Todd!

  • It gets worse in ROV and the 3 logger instance names that now successfully compile don't seem to bind to the UART transport handler. So no diagnostic data for Execution graphs etc.. any idea how to WA this issue? Oddly the names then show up in the Advanced properties above post but If you touch them with mouse pointer they revert back to null and change the configuration file instance names to null.

  • The buffers in LoggerStreamer2 are "owned" by the application. For this reason, we decided not to support the decoding of the Log records in ROV.

    Todd
  • ToddMullanix said:
    The buffers in LoggerStreamer2 are "owned" by the application.

    Yet that makes little to no sense to me, since LoggerStreamer2 has buffer sizes for all three instances configured Logging Setup module. The 3 buffers are for RTOS Load, RTOS Execution and user written log events.

    It would seem the logger instance Prime Fxn pointer is somewhat a vague description as the 3 buffers should hand off data to the transport binding (UART) selected as Exchange Fxn for each logger instance.

    If the latter is true I should be seeing debug Live Session data without providing an array[] pointer (Prime Fxn) to each Logger instance buffer in order for it to unload data into the UART transport binding to the (Exchange Fxn).