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.

Log_info() leads to linking error #10234-D: unresolved symbols remain

Other Parts Discussed in Thread: SYSBIOS

Hello,

I tried to add Logging capabilities to my Project using Log_info() function.
I Added a Agent and a LoggerBuf instance to my .cfg File over the Available Products View,
but i can't use it cause using Log_info() returns into an Linking Error:

Log_info  ./Th3_ofdm_symbol_sync.obj

error #10234-D: unresolved symbols remain

Do i forgot some library to add or something?

I think this is the necessary part of my .cfg File:

var Agent = xdc.useModule('ti.sysbios.rta.Agent');
var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
var Log = xdc.useModule('xdc.runtime.Log');

Agent.loadLogging = false;
Agent.loadLoggingRuntimeControl = false;
Agent.mainLoggerSize = 4096;
Agent.mainLoggerBufferSection = ".mainLoggerSec";
var loggerBuf0Params = new LoggerBuf.Params();
loggerBuf0Params.instance.name = "loggerBuf0";
loggerBuf0Params.bufSection = ".mainLoggerSec";
Program.global.loggerBuf0 = LoggerBuf.create(loggerBuf0Params);
BIOS.common$.logger = Program.global.loggerBuf0;
BIOS.common$.diags_INFO = Diags.ALWAYS_ON;
LoggerBuf.common$.logger = Program.global.loggerBuf0;
LoggerBuf.common$.diags_INFO = Diags.ALWAYS_ON;

best regards

Florian

  • Hello Florian,

    Check if you're including Log.h in your application

    #include <xdc/runtime/Log.h>

    Also, take a look at the Log section in the XDCtools API Reference guide in the CCS help window. You'll see that the function that you use is Log_info0() if you don't want to pass in any parameters other than the string, Log_info1() if you want to pass in a string plus one parameter, Log_info2() for a string and two parameters, etc...

    Whitney

  • Hey Whitney,

    yes this helped. I included <xdc/runtime/Log.h> and could use Log_info0();

    But when executing this code i get an xdc.runtime.Error.raise: terminating execution
    on all Cores and a Stack Overflow:

    [C66xx_5] enter main()
    My CoreId: 5
    [C66xx_6] enter main()
    My CoreId: 6
    [C66xx_1] enter main()
    [C66xx_2] enter main()
    [C66xx_3] enter main()
    [C66xx_4] enter main()
    [C66xx_7] enter main()
    [C66xx_1] My CoreId: 1
    [C66xx_2] My CoreId: 2
    [C66xx_3] My CoreId: 3
    [C66xx_4] My CoreId: 4
    [C66xx_7] My CoreId: 7
    [C66xx_0] enter main()
    My CoreId: 0
    enter task0()
    [C66xx_1] enter task0()
    [C66xx_2] enter task0()
    [C66xx_3] enter task0()
    [C66xx_4] enter task0()
    [C66xx_6] enter task0()
    [C66xx_7] enter task0()
    [C66xx_0] Heap size: @00089a80hSharedHeap_create() success!
    [C66xx_1] a†[C66xx_2] a†[C66xx_3] a†[C66xx_4] a†[C66xx_6] a†[C66xx_7] a†[C66xx_0] allocated space in shared Heap... Adress: @0c043500
    [C66xx_1] xdc.runtime.Error.raise: terminating execution
    [C66xx_2] xdc.runtime.Error.raise: terminating execution
    [C66xx_3] xdc.runtime.Error.raise: terminating execution
    [C66xx_4] xdc.runtime.Error.raise: terminating execution
    [C66xx_6] xdc.runtime.Error.raise: terminating execution
    [C66xx_7] xdc.runtime.Error.raise: terminating execution
    [C66xx_0] HeapBufMP_Create() success!
    Access to Heap success
    ti.sysbios.knl.Task: line 355: E_stackOverflow: Task 0x800428 stack overflow.
    xdc.runtime.Error.raise: terminating execution
    [C66xx_5] enter task0()
    a†xdc.runtime.Error.raise: terminating execution

    i put the .mainLoggerSec into L2SRAM, i even tried MSMCSRAM but it happend again.
    Is my .cfg posted above correct?

    best regards
    Florian

  • Try removing the Agent module code from your cfg. I'm not sure it's necessary since you are creating a logger yourself. Also, the Agent has been deprecated to support only stop-mode instrumentation data since System Analyzer and UIA is now recommended for runtime support. Here's a link to the UIA download page if you're interested in that.

    Also try increasing the stack size of the Task that had a stack overflow.

    Whitney

  • Hello Whitney,

    thank you! removing the Agent from my .cfg did it. The Program Runs now without errors, but i can't see any logs now.

    I replaced a System_printf() with a Log_info0() at the beginning of my code, so every core should log that string, but when opening Raw Logs View or RTOS Object View i can't see any Logs.

    Do you know why?

    best regards

    Florian

  • ah ok, i overlooked an error,
    i got an:

    Invalid CIO command (0) in the CIO buffer at address (0x86ea00) was not recognized. Please check the device and program memory maps.

    but just sometimes.
    now i could run the program without this failure but i still can't see a log.

    I compiled my code as a Release, does that matter?

    best regards
    florian

  • I imported the SYS/BIOS Log example, and I changed its cfg file a little bit to match yours to see if I could get an idea of what was causing the logs not to show up. If you haven't run the Log example yet, I would recommend it.

    I think you may want to try setting the default logger to the logger that you've created

    Defaults.common$.logger = loggerBuf0;

    You may also need to turn on INFO logs in the Main module

    Main.common$.diags_INFO = Diags.RUNTIME_ON;

    Whitney

  • ok thank you,

    i will try this in a couple of days.

    Florian