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.

TMS320F28075: Migration from COFF to EABI unresolved sysbios symbols

Part Number: TMS320F28075
Other Parts Discussed in Thread: SYSBIOS

Hello C2000 forum,

I want to migrate an existing coff project to EABI. Those are the steps I did so far:

1) switched the output format in the project settings from "legacy COFF" to "eabi ELF"

2) fixed the linker file and all directly used symbols like described in "C2000 Migration from COFF to EABI" guide

3) replaced all used coff build libs (like IQmath) with elf build libs 

The problem is that the linker can not resolve any sysbios symbols. I assume I have missed something what would tell the TI sysbios to be compiled as elf. I get a warning that sysbios.ae28FP is not compiled as elf. What I need to do to compile the sysbios as elf instead of coff?

Following versions are used:

Compiler -> TI v21.6.0.LTS

XDCtools -> 3.61.2.27_core

SYS/BIS -> 6.83.0.18

CCS -> 12.2.0

Console output:

warning #10373-D: library "C:\<ProjectPath>\src\sysbios\sysbios.ae28FP" contains TI-COFF object files which are incompatible with the ELF output file.  Ensure you are using the proper library.

undefined
symbol
---------
SetDBGIER
ti_sysbios_BIOS_getCpuFreq__E
ti_sysbios_BIOS_linkedWithIncorrectBootLibrary__E
ti_sysbios_BIOS_setCpuFreq__E
ti_sysbios_BIOS_setThreadType__E
ti_sysbios_BIOS_start__E
ti_sysbios_family_c28_Hwi_Instance_finalize__E
ti_sysbios_family_c28_Hwi_Instance_init__E
ti_sysbios_family_c28_Hwi_Module_startup__E
ti_sysbios_family_c28_Timer_Instance_finalize__E
ti_sysbios_family_c28_Timer_Instance_init__E
ti_sysbios_family_c28_Timer_Module_startup__E
...

Regards,

Paul

  • I imported an example project to play with this, I found that when I switched from COFF to EABI, the target in my product settings switched to "ti.targets.elf.C28_float". What is yours set to? Will it let you change it?

    Also note that there is a custom build option in the runtime settings that will allow you to specify different compiler options for the SYS/BIOS build, so you could try adding --abi=eabi to that list of options if the target change doesn't help.

    Whitney

  • Hello Whitney,

    Thank you very much for your response. I have double-checked the flags, and it appears that "--abi=eabi" is correctly placed as a compiler flag when changing the output format to "eabi" in the drop-down menu. However, upon reviewing the project's configuration file, I discovered that there were custom CC options set for BIOS, which override the global settings.

    Basically, if anybody encounter the same problem, check if there is a "BIOS.customCCOpts" entry in the .cfg file. If such an entry exists, add "--abi=eabi" there as well.

    Regards,

    Paul