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.

TivaC uart console link problem

Other Parts Discussed in Thread: SYSBIOS

Hi

I am modifying uart console to support UDP sockets, but , after including UDP, the following errors appears:

undefined first referenced
symbol in file
--------- ----------------
ti_sysbios_knl_Swi_create C:\ti\tirtos_tivac_2_10_01_38\packages\ti\drivers\lib\drivers_tivaware.aem4f<EMACSnow.oem4f>
ti_sysbios_knl_Swi_delete C:\ti\tirtos_tivac_2_10_01_38\packages\ti\drivers\lib\drivers_tivaware.aem4f<EMACSnow.oem4f>
ti_sysbios_knl_Swi_post__E C:\ti\tirtos_tivac_2_10_01_38\packages\ti\drivers\lib\drivers_tivaware.aem4f<EMACSnow.oem4f>

error #10234-D: unresolved symbols remain

I tried several inclusions and revised config file, but, unsuccessfull. I am using udp echo example as reference.

Any clue about?

Thanks

Sergio

  • Sergio,

    When you revised the config file did you bring in the Swi module?  Specifically:

        var Swi = xdc.useModule('ti.sysbios.knl.Swi');

    Also, you’ll need to change this:

        BIOS.swiEnabled = false;

    to this:

        BIOS.swiEnabled = true;

    If not, and you do the above, does this resolve the link error?

    If yes, you’d tried this, can you please post your config file contents?

    Thanks,
    Scott

  • 8640.uartconsole.cfg

    Hi Scott

    Only inserting "BIOS.swiEnabled = true;" fixed the link issue.

    After doing this insertion, I could finish link and execute my application. UDP is echoing properly now. And so printf and System_print, printing to UART0 as expected.

    I didn't place " var Swi = xdc.useModule('ti.sysbios.knl.Swi');". Is it necessary? If positive, where I need to setup it? I mean, using XGCONF, where I need to access to setup it?

    Thanks.

    Sergio

  • Sergio,

    OK, great!

    No, it seems you don’t need to explicitly “use” the Swi module.  I wasn’t sure if you needed to explicitly use it, but could tell from the link errors that some code somewhere in your app is using Swi APIs.  

    Swi is probably being implicitly used by one of the other modules in your application.  For example, when the Clock module is used, if BIOS.swiEnabled is true, then Clock will implicitly use the Swi module before creating a Swi (which Clock uses to service its timeout queue, in a Swi context).

    Regards,
    Scott