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.

Migrating a COFF application to ELF

Other Parts Discussed in Thread: CCSTUDIO

We have a 6455 processor/application that is built with BIOS 5.41.11.38 and is in COFF format.  We recently need to add some libraries that are provided in ELF format.  Thinking I could just rebuild the application with the ELF/EABI format instead I got the following errors: (Note: application specific lines removed)

'Building file: Config1cfg.s??'
'Invoking: C6000 Compiler'
"C:/ti/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6400+ -O3 --define="__TI_64XX_DSP__" --define="BUILD_FOR_LIVE_DSP"
 --include_path="C:/ti/ccsv5/tools/compiler/c6000/include"
 --include_path="C:/ti/bios_5_41_11_38/packages/ti/bios/include"
 --include_path="C:/ti/bios_5_41_11_38/packages/ti/rtdx/include/c6000"
 --include_path="C:/ti/xdais_7_21_01_07/packages/ti/xdais"
 --include_path="C:/CCStudio_v3.3/csl_c6455/inc"
 --include_path="C:/CCStudio_v3.3/csl_c64xplus_intc/inc"
 --include_path="C:/CCSTUD~1.3/C6000/csl/include"
 --preproc_with_compile --preproc_dependency="Config1cfg.pp"  "Config1cfg.s??"
"Config1cfg.s62", WARNING! at line 365: [W1500] warning:  relocation template
                                                275 not found; returning
                                                OFR_INVALID
               .word ( (GBL_stackend-GBL_stackbeg+1) / STD_TARGWORDMAUS ) - 16 ; nwords

"Config1cfg.s62", WARNING! at line 365: [W1500] warning:  relocation template
                                                275 not found; returning
                                                OFR_INVALID
               .word ( (GBL_stackend-GBL_stackbeg+1) / STD_TARGWORDMAUS ) - 16 ; nwords

I see from other posts that there are some options.

- Get COFF libraries (does not seem possible)

- Convert application to ELF (Not sure BIOS is in ELF format)

- Build with BOIS 6.x (no 6.x bios support for this chip)

Seems like there are no viable options here.

  • Hi David,

    6455 is supported with SYS/BIOS (BIOS 6.x). Please refer to this thread (and the link on the last post) for more details about converting COFF libraries to ELF (short answer is that we have no tools for doing this conversion).

    http://e2e.ti.com/support/development_tools/compiler/f/343/t/112513.aspx

    Todd

  • Where are these errors coming from?

  • I see that the latest BIOS (we are using for the 6678) does support the 6455.  My other issue with creating a new project is the MCSDK PDK for the 6455.  I only see the 6670/6678 in the RTSC Configuration settings.

  • David,

    Why do you want to use MCSDK for 6455 device? MCSDK is for multicore platforms. 6455 is single core device.

    Regards,

    Bhavin

  • I am working with Omar Barron and Mukesh Kumar on an issue with ELF libraries.  My fundamental question remains.  What are the issues migrating a COFF application to ELF.  It is not as simple as changing CCS (5.1).  So what are the issues?

  • I have read the migration paper and none of those issue apply to our application.

  • David,

    I noticed that this thread hasn't received much additional comments, but was hesitant to close it since it didn't appear that your issue had really been answered.  However, a summary of your problem statement seems to be that you are trying to take some code that was auto-generated by the BIOS config builder for a COFF build and trying to build it for EABI.  I don't believe that we can really support such a scenario.

    One additional comment...  Your first post doesn't show a "--abi=eabi" switch getting thrown.  If you are building for EABI, then that option should be there as well.

    Dave

  • Hi,

    This is still a very very big issue for us.

    Our application was originally built with the CCS3.3 tools.  We then switched to CCS5.1 using the  "import legacy project" tool along with a lot of path corrections.  Our application now builds correctly.  We build a "base" library and an application specific executable; both in COFF format.

    We need to migrate the application (and library) to ELF.  All I changed was the Output format from Legacy COFF to ELF.  The library seemed to compile OK but the application had the errors, a few of which, shown in my first post.  SO, it is not that easy.  My basic question is "what else needs to change"

  • Hi David,

    Can you share the application errors you get when attempting to build for ELF using CCS5.1 ? From your earlier forum posts I understand you are using BIOS 5.41.11.38 and have not moved to SYS/BIOS (BIOS 6.x). Is that still true ?

    Best,

    Ashish

  • Hi,

    We are still using DSP BIOS.  There are many errors but they are similar to those in my first post.

    I can try to use SYS BIOS but I still have to use the "old" CSL from CCS3.3.  I was ready to spend some time investigation this but was warned by TI that there are additional issues.  So I stopped.

    My question remains.  What is needed to build an ELF library and application?  If all the pieces are available, I can proceed.  If not, what are they and their issues?

    -- dave

  • Hi Dave,

    Changing the output format to elf (from legacy COFF) and the target to a elf one in the Build Settings view should be enough. I want to make sure you are using the right target. Can you post a screenshot of your Build Settings -> Main and Build Settings -> RTSC view ?

    To get a screenshot, you need to select your application and right click. Click Build Settings in the menu. Select CCS General and take a screenshot of the Main view. Now select RTSC tab and take a screenshot. See example below:

    Best,

    Ashish

  • Hi,

    First.  Since this project was converted from CCSV3.3 I do no have the RTSC tab.  I was told it is only for multiCore DSP.  We are using the 6455 chip;

    I did change the output format to ELF which generated the errors in my initial post.  Later I did try to create a new project but could not find where to link in the 6455 CSL.

  • David --

    DSP/BIOS only supports COFF format.    I think you have 2 options:

    (1)   Move to SYS/BIOS which supports COFF and ELF for 64x+.   You would also need to recompile the CSL and other libraries for ELF.   Porting to SYS/BIOS would require you to replace DSP/BIOS API calls with similar SYS/BIOS API calls.   There's a migration application note (see link in the release notes) which might help.   We provide a legacy/compatibility wrapper API to put BIOS 5.x APIs atop BIOS 6.x, but I would recommend using the native SYS/BIOS 6.x APIs if possible.

    (2)   Recompile your algorithms for COFF and stay with DSP/BIOS and COFF.  Is there any way you can get the sources for the algorithm code or ask the vendor to provide them in COFF format?

    -Karl-

  • Thanks Karl,

    I think you have covered all of the issues that I expected to deal with.

    We feel that taking option 1 will take some time and effort.  We may elect to do this in the future.  For now, we have instructed our vendors to take option 2.  This puts this issue to rest (for a while).

    -- dave