TMS320F28P550SJ: Libraries only available in eabi (ELF) output format, but COFF needed.

Part Number: TMS320F28P550SJ
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Hello,

We would like to use CLAmath, but the needed libraries are only provided in eabi (ELF) output format. As our project needs to be in COFF, we need the libraries to be in COFF aswell. 

Could you please provide libraries of F28P55xCPU1_CLAROM_Symbols_fpu32.lib and F28P55xCPU1_BootROM_Symbols_fpu32.lib in COFF format?

Thank you and kind regards

Gabriel

  • Hi,

    Our expert on this matter is out of office until early January. Please expect a delayed response. 

    Best Regards,

    Ben Collier

  • Hi Gabriel,

    is there a particular reason to want to use COFF project output format? Please note we encourage our customers to migrate applications to EABI for systems that are actively being developed.

    if you’re not sure how to migrate to EABI from COFF, please check out this migration guide: https://software-dl.ti.com/ccs/esd/documents/C2000_c28x_migration_from_coff_to_eabi.html

    it has useful information about the migration performance of EABI and steps to migrate.

    Regards,

    Ozino

  • Hi Ozino,

    We have specific requirements related to variable addressing that align better with the COFF format.

    Regards,

    Gabriel

  • Hi Gabriel;

    If you experience the same eabi→coff problem after every C2000Ware update as we do and need coff output, proceed as below:

    1. Import the driverlib project (as .lib) into CCS for your µController (e.g. → C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28p55x\driverlib)

    2. In 'Project Properties' change the output format to coff

    3. Rebuild project → The new output (driverlib.lib) will be in coff format

    Good luck Expressionless

  • Hi Ibrahim,

    In general the project is compiling and I already recompiled driverlib as coff. This is not the problem.

    However, from what I found in the documentation of CLAmath (CLA_MATH_LIB_UG.pdf in C:\ti\c2000\C2000Ware_X_XX_XX_XX\libraries\math\CLAmath\c28\docs), CLAmath needs separate libraries, which are mentioned in my original question.

    For my device CLA Math library is present in the CLA Data ROM and I would like to use that.

    Kind regards 

    Gabriel

  • HI Gabriel,

    Thanks for the additional information. Please allow us some time as we reach out to the ROM team to gather more information about the COFF versions of the library. 

    Regards,

    Ozino

  • Hi Ozino,

    Just checking if there are any updates from the ROM team.

    Best regards,
    Gabriel

  • Hi Gabriel,

    Still waiting to hear back from the team. I've gone ahead and CC'ed them on the post for their awareness. I'm following up with them offline.

    Regards,

    Ozino

  • Hi Gabriel,

    I have heard back from our ROM team and I have the library to share with you. It will be publicly be available in the next C2000Ware release. 

  • Hi Ozino,

    Thanks for the good news. Could you please send me the library? I assume you have access to my email address

    Kind regards 

    Gabriel

  • Hi Gabriel,

    Here are the COFF equivalent files. Thanks again for your patience during this time.

    Regards,

    Ozino

    F28P55x_CLADATROM_Symbols_COFF.lib

    F28P55x_CLADATROM_Symbols_fpu32_COFF.lib

  • Hi Ozino, 

    Thank you for the files. 

    Can you please send F28P55xCPU1_BootROM_Symbols_fpu32.lib in coff format aswell ?

    Gabriel

  • Hi Gabriel, 

    Let me get back to the team to generate the necessary libraries. Thanks!

    Regards,

    Ozino

  • Hi Gabriel, 

    Please find attached the necessary libraries. Thank you for your patience!

    F28P55xCPU1_BootROM_Symbols_COFF.lib

    F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib

    Please let me know if you need any further help!

    Regards,

    Ozino

  • Hi Ozino

    It seems like the libraries are not compatible with the cla2_math_library_datarom_fpu32.lib. From the error messages I receive, I think cla2_math_library_datarom_fpu32.lib uses vcrc while F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib uses vcu2

    If i choose VCU support vcrc in my my main project I get this error:

    error #16004-D: file "../lib/F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setAnalogMode_tmp.obj>" has a Tag_VCU attribute value of "2" that is different than one previously seen ("3"); combining incompatible files

    and with VCU support vcu2 i get this error

    error #16004-D: file "../lib/cla2_math_library_datarom_fpu32.lib<CLAsincos.obj>" has a Tag_VCU attribute value of "3" that is different than one previously seen ("2"); combining incompatible files

    Apart from that i get errors about redefined symbols in driverlib.lib now:

    error #10056: symbol "_GPIO_setAnalogMode" redefined: first defined in "../lib/F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setAnalogMode_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_GPIO_setPinConfig" redefined: first defined in "../lib/F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setPinConfig_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_GPIO_setDirectionMode" redefined: first defined in "../lib/F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setDirectionMode_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_GPIO_setQualificationMode" redefined: first defined in "../lib/F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setQualificationMode_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_GPIO_setPadConfig" redefined: first defined in "../lib/F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setPadConfig_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_Interrupt_enable" redefined: first defined in "../lib/F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__Interrupt_enable_tmp.obj>"; redefined in "../lib/driverlib.lib<interrupt.obj>"
    error #10056: symbol "_Interrupt_initModule" redefined: first defined in "../lib/F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__Interrupt_initModule_tmp.obj>"; redefined in "../lib/driverlib.lib<interrupt.obj>"

    Kind regards 

    Gabriel

  • Hi Gabriel,

    Thank you for the information. I've sent your question to the bootROM team to clarify and regenerate any necessary libraries. Thank you for your patience.

    Regards,

    Ozino

  • Hi Gabriel,

    Thank you for your patience. The team has generated new binaries. Please confirm if these work on your system.

    Regards,

    Ozino

    7711.F28P55xCPU1_BootROM_Symbols_COFF.lib

    2425.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib

    2425.F28P55x_CLADATROM_Symbols_COFF.lib

    2425.F28P55x_CLADATROM_Symbols_fpu32_COFF.lib

  • Hi Ozino,

    is it possible that those libraries are now compiled for vcu2 and f28p55 needs vcrc?

    Kind regards Gabriel

  • Hi Gabriel,

    Yes F28P55 supports vcrc mode. I understand from the team that previously they were compiled with vcu2.

    Please note these libraries, attached, should work now work for the F28P55 devices. Please let me know if that is not the case.

    5756.F28P55xCPU1_BootROM_Symbols_COFF.lib

    8461.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib

    8461.F28P55x_CLADATROM_Symbols_COFF.lib

    8461.F28P55x_CLADATROM_Symbols_fpu32_COFF.lib

    Regards,

    Ozino

  • Hi Ozino,

    Thank you. Now only the errors about the redefined symbols remain. In the documentation nothing about this is mentioned. Does this really need to be in the precompiled library? 

    error #10056: symbol "_GPIO_setAnalogMode" redefined: first defined in "../lib/8461.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setAnalogMode_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_GPIO_setPinConfig" redefined: first defined in "../lib/8461.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setPinConfig_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_GPIO_setDirectionMode" redefined: first defined in "../lib/8461.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setDirectionMode_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_GPIO_setQualificationMode" redefined: first defined in "../lib/8461.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setQualificationMode_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_GPIO_setPadConfig" redefined: first defined in "../lib/8461.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__GPIO_setPadConfig_tmp.obj>"; redefined in "../lib/driverlib.lib<gpio.obj>"
    error #10056: symbol "_Interrupt_enable" redefined: first defined in "../lib/8461.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__Interrupt_enable_tmp.obj>"; redefined in "../lib/driverlib.lib<interrupt.obj>"
    error #10056: symbol "_Interrupt_initModule" redefined: first defined in "../lib/8461.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib<F28P55x_ROM_out__Interrupt_initModule_tmp.obj>"; redefined in "../lib/driverlib.lib<interrupt.obj>"

    Kind regards 

    Gabriel

  • Hi Gabriel,

    Thanks for confirming that the libraries are now compatible. Can you confirm if you rebuild the driverlib object (.lib)? Can you confirm that you are not rebuilding the driverlib directory in your project. You can always re add the dependencies back into the project if you're unsure.

    Can you confirm if the directory is excluded from your workspace. And only leave the .lib included. See example below:

    Regards,

    Ozino

  • Hi Ozino,

    Thank you for your response. 
    I believe the libraries are not compatible yet. In my understanding the error messages I posted before tell us, symbols are defined in 8461.F28P55xCPU1_BootROM_Symbols_fpu32_COFF.lib and driverlib.lib

    If I am supposed to actively remove functions in the driverlib I would be thankful for instructions.

    I can confirm, the driverlib is not rebuilt in the project and the precompiled .lib file is used as confirmed in the .map file.

    Regards,

    Gabriel

  • Hi Gabriel,

    You shouldn't make have to remove libraries from driverlib. Can you confirm if you added the same bootROM libraries to an empty or led blinky project that you are observing the same compilation errors. If not, then I suspect something may be amiss with your project.

    Can you confirm what version of the C2000Ware you are including in your project?

    Regards,

    Ozino