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.

Does BIOS6 support C66 coff format?

Other Parts Discussed in Thread: SYSBIOS

Hi all,

When creating a new CCS4 project with BIOS6 support for C66 target. If I choose the target format as "legacy COFF", there is compilation error that BIOS6 doesn't support C66 COFF format which is located in file "ti\sysbios\famliy\Setting.xs"? I am aware that in BIOS V6.32, no C66 COFF format support as well in "ti\sysbios\famliy\Setting.xs"? I am concern that whether BIOS6 won't support C66 COFF in the future and the ELF format will replace COFF? Thanks a lot.

  • Hi Chen,

    No, there are no plans to support C66/COFF with BIOS in the future.  The ELF format is succeeding COFF for newer XDC targets because ELF has a number of advantages over COFF in terms of debugging and link support.

    Regards,

    Shreyas

  • Is there any TI reference on ELF format I can refer to? Thanks.

  • Chen,

    See this wiki article: http://processors.wiki.ti.com/index.php/A_Brief_History_of_TI_Object_File_Formats which includes references to docs on ELF.

    Mark

  • Mark,

    With COFF not being supported on the C66x and the old COFF libs not having been ported to ELF yet, what should I tell my customer who wants to use the Audio lib on his C6657? Tough luck....??? Don't think that would fly.

    CCSv5 allows you to choose COFF and C66x in your project configuration and then when you do the build, it tells you "target not supported" because XDC has not added C66x to the list of allowable targets. CCSv5 allowing it creates a level of expectation by the customer that he CAN use it, then we pull the rug from under his feet when he tries to build.

    I am quite dissappointed that the TI strategy to go from COFF to ELF did not include a better way of moving our customers effortlessly from the old devices to the new devices by either keeping up with the lib conversions (COFF to ELF) or by adding the newer devices to the XDC so the customer can use COFF libs on the new devices in the interim.

    Right now basically my customer is up a creek unless he re-develops the audio lib himself. Not very good for  biz...... :-(
    Tiemen

  • Tiemen,

    I understand your frustration. The BUs and SDO made this decision a few years ago and have stuck with it since then. The effort to build, test, and deploy 2 sets of object files for a new ISA was determined to be too much versus working on other projects/features. Unfortunately, it's not as simple as just a re-compile when low-level code, especially assembly code, is involved. There may be some components available in COFF, but I know many others are not. We decided it would be less confusing to go with all-or-nothing approach. Contact the BU manager for C6657 and explain the situation/opportunity and let me know what they think.

    Mark

  • Mark,

    We have run into a similar issue with trying to move from a C64x to a C66x device. Our libraries previously used the COFF format and now we have run into the issue with this no longer being supported for the C66x. Does TI provide any sort of c source code for reading or parsing an ELF file and loading it onto a DSP?

    Regards,

    Chris

    Signalogic

  • Chris,

    Again, apologies for the inconvenience of making the transition, but long term, ELF will be a better format to use than COFF. One reason is that ELF is a "standard" so you can use any vendor's or open source project's code for working with ELF files. For example, you can use the GNU utilities to view and manipulate ELF files: objdump, readelf, ... will work on C6x ELF files. In addition, you can continue to use the TI-supplied hex6x and ofd6x utilities with ELF files.

    TI does offer a source project to work with ELF files, including providing dynamic linking and loading support. A couple wiki articles will get you started and point to a TI website to get source code.

    http://processors.wiki.ti.com/index.php/C6000_Dynamic_Linking
    http://processors.wiki.ti.com/index.php/C6000_EABI:Dynamic_Loader

    Mark

  • Mark-

    Is the souce for the dynamic loader core available?  We're developing an "ELF reader" for our software tools that support TI devices and TI-based PCIe cards.  We don't need to load DLLs but instead need to load the overall program file generated by CCS5. 

    It was not clear to me whether all source or only some is available.  Thanks.

    -Jeff

    Signalogic

     

  • Jeff,

    All the source is available from the gforge web site: https://gforge.ti.com/gf/project/ridl_oss/frs/  If I am mistaken, you should probably open another thread in the compiler forum on that topic.

    Mark

  • Mark-

    Thanks very much.  Couple more questions:

    1) What's the log-in procedure to download files from https://gforge.ti.com?  My my.TI log-in is not accepted.

    2) Will the ELF format dynamic loader source handle a standard C66x / SYSBIOS executable program?  I.e. not a library?

    Thanks.

    -Jeff

  • Jeff,

    1) I believe you just register via the front page: https://gforge.ti.com  . As far as I know, the gforge site is not integrated with the other TI authentication schemes :(

    2) Yes, the loader definitely handles a base executable program. We use the loader in our SYS/Link IPC product to do just that.

    Mark

  • Mark-

    We're in the process of porting the TI ELF loader to host-side C/C++ software.  One question, so far we see multiple of 2 (byte) and multiple of 4 segment sizes in CCS-generated .out files (for C667x devices).   Should we also code to expect odd byte segment sizes?  Can that happen with C66x code generation?

    Thanks.

    -Jeff

    Signalogic

  • Jeff,

    That's a question for the compiler experts. Try posting it over in the Development Tools -> TI C/C++ Compiler forum.

    Mark