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.

Symbol undefined in DSPBIOS->SYSBIOS migration project

Other Parts Discussed in Thread: SYSBIOS

Hi Guys,

By means of Conversion tools, my DSPBIOS tcf file is converted to a SYSBIOS cfg file. And there is a statement inside it:

bios.HWI.instance("HWI_INT6").fxn = "ECM_dispatch";

which register a function called ECM_dispatch to INT6.

I could find the function is implemented in <ecm.h> of bios_6_x_x_x\packages\ti\bios\include.

But in the linking stage, the linker reports the symbol _ECM_dispatch is not defined.

The similar issue occurs to another variable which is defined in converted CFG file:

bios.MEM.instance("EMIFB").heapLabel = "heapEMIFA";

which assign a label name heapEMIFA to the heap located in EMIFB. The name will be used in my application C code.

But similar to ECM_dispatch, the linker reports it's undefined.

What am i missed?

Thanks.

Allen

  • Hi Allen,

    Is this thread address the issue? http://e2e.ti.com/support/embedded/bios/f/355/p/184383/665385.aspx#665385

    For the "heapEMIFA", what is the value of bios.MEM.enableHeapLabel in the .cfg file. Can you try setting it to true?

    Todd

  • Hi Todd,

    The 'heap' problem is solved when I add 'bios.MEM.instance("EMIFB").createHeap = true;' to the cfg file.

    But 'ECM_dispatch' is still missing, i have checked that the 'bios.ECM.ENABLE=true' already existed in the cfg file. So any suggestion?

    Thanks.

    Allen

  • Hi Allen,

    Reiterating your post, you are seeing that even though you have included the <ecm.h> header in your application's *.c, the linker generates an undefined reference error right ? Are you referencing ECM_dispatch in multiple C files ? Why I ask is because ECM_dispatch is defined as a static and if it is referenced from a different file that does not include the <ecm.h> header, you will see an undefined reference error.

    Best,

    Ashish

  • Hi Ashish,

    In my application ECM_dispatch is invoked in cfg file not in C code. Yes, i found this function is defined as static, so how to let xdctools 'see' this definition and include it in the process of build my xxx.cfg file?

    Allen

  • Hi Allen,

    I dont think you can reference ECM_dispatch in your *.cfg file. Can you try replacing "&ECM_dispatch" with "&ti_sysbios_family_c64p_EventCombiner_dispatch" ? ECM_dispatch is a wrapper for the EventCombiner_dispatch function which should be visible from the *.cfg file. This is a workaround to configure the interrupt dispatch function from the *.cfg file.

    Best,

    Ashish