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.

CCS/TMS320DM642: Unresolved symbols

Part Number: TMS320DM642
Other Parts Discussed in Thread: SYSBIOS

Tool/software: Code Composer Studio

Hello. We are porting an old application written in CCS 3.3 to CCS 4.2.4. For some reason, linker complains that semaphore objects SEM_create and SEM_ATTRS are undefined. My project is RTSC-type, and in my app.cfg I do have semaphore functionality enabled:

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

I'd appreciate any clues as to what could be wrong with my setup.

Thanks!

Alex.

  • Hi Alex,

    What version of SYS/BIOS were you using and are trying to use now?

    Todd
  • Todd,

    In CCS 3.3, we were using BIOS 5.31.02. In CCS 4.2, we are using BIOS 6.32.2.39.

    Alex.

  • Hi Alex,

    Thanks for the info.

    In BIOS 5.x, we had the SEM module and the APIs were SEM_pend, etc.
    In BIOS 6.x, we have the Semaphore module and the APIS are Semaphore_pend, etc. We also have a legacy wrapper in BIOS 6.x to support the older APIs (e.g. SEM_pend).

    This document describes how to migrate from DSP/BIOS -> SYS/BIOS: www.ti.com/.../spraas7g.pdf

    Having said that, we've found that using the legacy APIs is more trouble than it's worth. We'd recommend you change the code to simply using the new APIs (e.g. Semaphore_create instead of SEM_create and Semaphore_params instead of SEM_ATTRS).

    Todd
  • Hi Todd,

    Thank you for your response. While awaiting it I've actually tried to see what semaphore functionality was implemented in the ti.sysbios.knl.Semaphore module, and I did see that you now have new "Semaphore" functions. I've tried to use them instead of SEM_XXX calls, but apparently I am missing some other detail(s). Despite me including Semaphore.h, compiler complains that new types declared in the header (e.g. Semaphore_Handle) are not defined. The definitions of those types are in the end of the header and from what I could see the new types can only be seen if neither (__nested__) nor (ti_sysbios_knl_Semaphore__nolocalnames) are defined. I don't think I define neither of those two in my project. Am I mistaken in something?

    Thanks!
  • Do you have

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

    in your .cfg file?

    Then in the source file

    #include <ti/sysbios/knl/Semaphore.h>

    Can you attach the build log with the compiler error (please attach in a file instead of a copy/paste).

    Todd
  • Todd,

    Thanks for your help. I actually resolved my issues by once again analyzing my setup. It turned out I was using incorrect BIOS. I was using BIOS v 6.X while the proper version for us was 5.41.10.36. Now everything builds.

    Thanks once again.

    Alex.