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.
Hi all,
Any one know what is the detail difference between build a program to COFF or newer ELF format, given same/similar build/optimized option.
we concern three major aspects:
1) code size
2) MIPS
3) debug capability
now we are facing if still use the COFF or moving to newer ELF format, and want to know the major benefits to move to ELF format.
thanks
Ivan
Hi,
Please refer following TI wikis.
http://processors.wiki.ti.com/index.php/C6000_EABI:Introduction_to_EABI
http://processors.wiki.ti.com/index.php/A_Brief_History_of_TI_Object_File_Formats
http://processors.wiki.ti.com/index.php/EABI_Support_in_C6000_Compiler
http://processors.wiki.ti.com/index.php/C6000_EABI_Migration
Hi thanks for the links, but I am curious about when moving from COFF ELF format, any performance degradation or improvement? The performance I mean the MIPS usage for same program.
Another thing is when moving from COFF to ELF, does the code size will increase?
Does TI has any document for that benchmark of these two format, or simply no different from these aspects?
Hi,
Please refer the C6000 EABI application guide
http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=sprab89&fileType=pdf
1) In COFF, 'double' size is 32 but 'double' size is 64 in EABI.
2) EABI is differ than COFF on initialization of variables that in COFF static/global variable won't set to '0' but EABI
will do.
Refer C6000 compiler and optimizing guide to know more.
Moving this query to the TI compiler forums for a more detailed answer from the compiler champs.
Titusrathinaraj Stalin said:1) In COFF, 'double' size is 32 but 'double' size is 64 in EABI.
That's not true for C6000, that's only true for MSP430 when moving from COFF to EABI. For C6000, double is 64 bits in both COFF and EABI.
Generally, performance (cycles and size) are the same in C6000 COFF and EABI. You probably won't see much difference in user code, but the size is different for a few library functions.
[ Edit: 64 bits for C6000 double, not 32 bits -- Archaeologist ]