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.

DM814x DSP core seems to support COFF static libraries generated with GenAlg Wizard!

Other Parts Discussed in Thread: SYSBIOS

Hello,

I was under the impression that the DSP core in DM814x/DM816x only works with ELF libraries as mentioned in the following threads:

http://e2e.ti.com/support/embedded/tirtos/f/355/p/240763/847209.aspx#847209
http://e2e.ti.com/support/embedded/multimedia_software_codecs/f/356/p/279313/974744.aspx

Yet, it seems to be working with COFF libraries as well. I took the following steps to test this statement:

1. I use the RPE package in DVR-RDK for loading customized algorithms in C674x core of DM8148.

2. Using the xDM GenAlg Wizard of CCS v5, I created a simple xDM compliant source code with IAUDDEC1 interface.

3. Using CCS v.5, I built an ELF static library (.ae674 file) for C674x.

4. I integrated my library into RPE and recompiled the DSP firmware using the discussions in the following thread:

http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/268990/990628.aspx

After loading the DSP firmware, I am able to run my xDM sample application successfully.

Then, in my CCS project, I specified the output format to legacy COFF and rebuilt the static library (.ae674 file). Surprisingly, I can rebuild the DSP firmware in DVR-RDK successfully and run the xDM algorithm with RPE using the COFF library.

Please let me know if you confirm that the RPE package can work with both ELF and COFF static libraries. Is there a difference between DM816x and DM814x in this matter? Can I use any COFF library provided by third parties and integrate it in the RPE pacakge?

Thanks,
Mohammad

  • As you mentioned the c674 core supports both COFF or ELF as it is only a executable format and the instruction set is still the same.

    Howvever support for COFF format is not present in the syslink ProcMgr to enable loading of COFF binaries and also foundation s/w like sysbios and ipc don't have support for COFF format for c674 target on ti81xx devices.

    Whatever support you may find is legacy code that has not been exercised in atleast 3 years on 81xx devices.

    Your experiment should not have worked. It is not possible to link a COFF library into a ELF executable.

    The COFF library will not have extension (.ae674).It will have extension (.a674).It is probably still  linking the ELF library.

    Supporting COFF is significant effort both on syslink side and also from validation point of view as there are differences in primitive types like enums between EABI and COFF format and it will introduces subtle bugs on migrating from one format to another.

    It is strongly advised to not use COFF format and recompile all libraries in ELF format .

  • Hello Badri,

    Thank you very much for your response. I understand that all Syslink-based processors can only work with ELF libraries. In my experience, it seems to be the problem of CCS which keeps building the ELF library even though I specify the output format as legacy COFF.

    Regards,
    Mohammad