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.

RTDX_interrupt - symbol referencing error C6713

Hi, 
I am working with DSK C6713 on a project that takes audio from the PC though LINE IN,
encrypts it and gives the output audio signal though the headphone jack..
I have two RTDX projects that are similar.
One of the projects has been created by myself (1) and the other is a modified example problem that
comes with CCS (2).
Both projects (1) and (2) have the same the support files and the same C code.
In project (1) I keep getting the error ,
_RTDX_interrupt_mask C:/CCStudio_v3.1/C6000/rtdx/lib/rtdx.lib
>> error: symbol referencing errors - './Debug/RTDX_MATLAB_sim.out' not built.

In project (2), I dont get this error but the functions input_sample and output_sample do not function
as expected.
 I am not able to hear the audio output from the headphone jack.
This problem is not there in project (1) and C code works as expected without the RTDX.

Are there any setting changes that I have over looked in project (1) due to which I get the symbol
referencing error?
Was there any setting in the example code that disables the functions input_sample and
output_sample?
I have added all the support files including rtdx.lib. The compiler and linker options in the two
projects are the same.
I am not able to identify why the two projects work differently when all the settings and the C code
is the same.
The original C code works only in project (1) and the RTDX component works only in project (2).
 I need both parts to work in the same project.

Any help would be greatly appreciated.

Thank you very much.



  • Tronix,

    I don't know if this will be much help.  From the few documents I've found on RTDX, it seems like _RTDX_interrupt_mask should be defined in the linker command file.  Is this the case?  Are both of your projects using the same linker.cmd? 

    I would suggest, on the code that links, finding where it's getting the _RTDX_interrupt mask from, and seeing what's different with the other project. (Be sure include paths and library paths are the same).  I know you said that the options were the same. 

     

    Regards,
    Dan

     

     

     

     

  • I found some more info that details _RTDX_interrupt_mask.  This mask details which interrupts should be disabled before entering an RTDX critical section. Defining this incorrectly could cause the application to not behave as expected. 

     

    Regards,
    Dan

     

  • Dan,

    Thank you for your input.

    The linker.cmd files in both the projects were different even though

    the build options were the same.

    The linker.cmd file of the project (1) in which only the C code is working is

    - c

    -heap 0x1000

    -stack 0x1000

    -u __vectors

    -u _auto_init

    _HWI_Cache_control = 0;

    _RTDX_interrupt_mask = ~0x000001808

    MEMORY

    {

    IVECS:  org=0h, len = 0x220

    IRAM: org=0x00000220, len=0x0002FDEO

    SDRAM: ord=0x80000000, len=0x00100000

    FLASH: org=0x9000000, len=0x00020000

    }

    SECTIONS

    {

    .EXT_RAM :> SDRAM

    .vectors :> IVECS

    .text :> IRAM

    .bss :>IRAM

    .cinit :> IRAM

    .stack :> IRAM

    .sysmem :> IRAM

    .const :> IRAM

    .switch :> IRAM

    .far :> IRAM

    .cio :> IRAM

    .csldata :> IRAM

    }

    The linker.cmd file of project (2) in which only RTDX is working:

    -c

    -heap 0x1000

    -stack 0x1000

    -u __vectors

    -u _auto_init

    _HWI_Cache_Control = 0;

    _RTDX_iterrupt_mark = ~0x000001808;

    MEMORY

    {

    VECS: o=00000000h  l=00000200h

    PMEM: o=00000200h  l=0000FE00h

    BMEM: o=0x80000000h  l=01000000h

    }

    SECTIONS

    {

    .intvecs > 0h

    .text > BMEM

    .rtdx_text > BMEM

    .far > BMEM

    .stack > BMEM

    .bss > BMEM

    .cinit > BMEM

    .pinit > PMEM

    .cio > BMEM

    .const > BMEM

    .data > BMEM

    .rtdx_data > BMEM

    .switch > BMEM

    .sysmem > BMEM

    }

    We tried modifying project (2) to include sections such as .rtdx_text ,

    .data and .rtdx_data. We got an error in target map and memory map.

    Could you please suggest  the MEMORY and SECTION elements to

     use so that it is compatible with both the RTDX part as well as the

    audio input and output from the board.

    Thank you so much for your help!

     

     

  • I don't think this is a problem with where the sections were being located.  if it were, the Linker should give you an error saying it doesn't know where to allocate something.

    I think I found your problem.  Look at the following from the two Linker command files you pasted in.

    1 - _RTDX_interrupt_mask = ~0x000001808

    2 - _RTDX_iterrupt_mark = ~0x000001808;

     

    If this isn't set correctly, your RTDX interrupt isn't going to be acknowledged.


    Regards,
    Dan

     

     

  • Dan,

    The only problem with the project is that we are not able to hear the audio output.

    We have debugged the code and found that input signals are received correctly

    and the right output samples are given to the board.

    The RTDX component works properly.

    Does the linker file specify any audio enable that we may have over looked?

    Can you suggest any address for _RTDX_interrupt_mask which may overcome this problem.

    We are using comm_poll to read and write samples to the board.

    Thank you for your timely help and valuable suggestions.

    Regards,

    Tronix