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.

DSP/BIOS, DSPLink, tconf, and EABI

Other Parts Discussed in Thread: OMAP-L138, OMAPL138

Hi,

I'm trying to switch my DSP/BIOS + DSPLink application from COFF to EABI because the COFF compiler has some limit on C++ virtual inheritance class size of 0x7FFF bytes (and EABI sets the limit to 0xFFFFFF).

I can compile all my code with the --abi=eabi switch, but I'm having problems with configuration for linking.

My COFF method of linking is to:

1) Run tconf :

/opt/TI/xdctools_3_22_00_09/tconf -Dconfig.importPath="/opt/TI/dspbios_5_41_03_17/packages;/opt/TI/dspbios_5_41_03_17/packages/ti/bios;/opt/TI/dsplink_1_65_00_03/dsplink/dsp/inc/DspBios;/opt/TI/dsplink_1_65_00_03/dsplink/dsp/inc/DspBios/5.XX;.;" -Dconfig.programName="dsp" dsp.tcf 0

2) Compile the generated files.

3) Link my project using the generated dspcfg.cmd linker script.

 

If I try the same flow with the "--abi-eabi" switch then the compiler throws an error for the "tconf" generated files, e.g.:

" dspcfg.s62", ERROR!   at line 2196: [E0200]

         Unable to resolve this relocatable expression; relocation support for arbitrary expressions is not available in the C6000 EABI

                .word   ((:name:$stkptr - :name:$stackname) / STD_TARGWORDMAUS) + 1     ; count

 

Is there a way to get tconf to generate my EABI linker script like it did for COFF?

 

I originally asked this question on the compiler tools forum, but I was pointed here with the following suggestion:

    As I understand it, you need to use an EABI-friendly version of DSP/BIOS.  You probably want to ask this in the DSP/BIOS forum.

 

Thanks,

Will

 

  • I forgot to mention - this is for the OMAP-L138 processor.

     

  • BIOS 5.x and DSP link do not support the ELF (--abi=eabi) format.  We only deliver COFF libraries for these devices.  ELF is supported for the newer devices with SYS/BIOS 6.x and SysLink, but not sure if/when we will support OMAPL138 with SYS/BIOS and SysLink.

    -Karl-

  • Is there any way to currently achieve the following on the OMAP-L138?

    - use EABI/ELF

    - start the DSP from the ARM side (i.e., something like PROC_setup/attach/start.  I don't need PROC_load - I can do that myself)

    - communicate between the ARM and DSP with something like NOTIFY and MSGQ

    - shared memory between the ARM and DSP with something like POOL

     

    It looks like SYS/BIOS + IPC is supported on the OMAP-L138 and gives similar functionality to NOTIFY, MSGQ, and POOL.  If so, is there any way to power up and start the DSP from the ARM side without SysLink?

     

    Thanks,

    Will