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.

CCS/TMS320C6678: no symbol are defined for ...

Part Number: TMS320C6678

Tool/software: Code Composer Studio

Hi all,

we have a board which have  4 pieces of TMS320C6678.

I am running a piece of code on dsp2 ,which communicate with dsp1 through SRIO and EMAC.

I run the code without breakpoint to test and verify the stability , when I artificially stopped the and Observed, find that showed a message (as shown in picture )

"No symbols are defined for 0xF02ED872" , but Program can continue to run and Looks normal

where and what exactly is the problem? I am using CCS 5.5.0

Thanks in advance,JOB

  • Hi,

    I've notified the software experts. Their feedback will be posted here.

    Best Regards,
    Yordan
  • thanks very much!
  • Do you have a map file for the binary running on the C66xx_core8. can you check what section of code is located at location 0xF02ED872?

    who is loading the DSP cores? Are you loading them using the emulator or are they being loaded  by the master core. 

    Are all the cores running the same application binary or are they running independent .out files.  

    No symbols defined  in CCS just means that the CCS IDE is unable to correlate the assembly code in a particular memory section with any symbols or code from the search path. IF the core is being loaded by some other core or host then you will need to go to Run->Load Program-> Add Symbols and load that out file to see the symbols located at that location in DDR memory.

    Regards,

    Rahul

  • The problem seems to be caused by an interruption that is prone to the problem when the program returns from the interrupt routine.
    The interrupt registration uses the following methods:

    ;create interrupt vector table for C6000 DSP
    ;--------------------------------------------------------------
    ;This file can be modified to add Interrupt Service Routine(ISR)
    ;for an interrupt, the steps are:
    ;1,reference to the externally defined ISR, for example
    ; .ref EDMA_ISR
    ;2,modify the corresponding entry in the interrupt vector table.
    ; For example, if interrupt 8 is used for EDMA, then you should
    ; modify the entry number 8 like below:
    ; VEC_ENTRY EDMA_ISR ;interrupt 8
    ;--------------------------------------------------------------
    ;Author: Brighton Feng
    ;Created on 2010-12-6
    ;--------------------------------------------------------------

    ;reference to the externally defined ISR
    .ref _c_int00
    .ref GE_Message_ISR
    .ref SRIO_ISR
    .ref Exception_service_routine
    .ref Nested_Exception_service_routine
    .ref exception_record
    .global vectors

    ;--------------------------------------------------------------
    .sect ".text"
    ;create interrupt vector for NMI
    NMI_ISR:
    STW B1,*-B15[1]

    ;save some key registers when exception happens
    MVKL exception_record,B1
    MVKH exception_record,B1

    STW B3, *+B1[0]
    STW A4, *+B1[1]
    STW B4, *+B1[2]
    STW B14, *+B1[3]
    STW B15, *+B1[4]

    ;jump to exception service routine
    MVKL Exception_service_routine, B1
    MVKH Exception_service_routine, B1
    B B1

    LDW *-B15[1],B1
    NOP 4

    ;--------------------------------------------------------------
    ;create interrupt vector for reset (interrupt 0)
    VEC_RESET .macro addr
    MVKL addr,B0
    MVKH addr,B0
    B B0
    MVC PCE1,B0
    NOP 4
    .align 32
    .endm

    ;create interrupt vector for other used interrupts
    VEC_ENTRY .macro addr
    STW B0,*--B15
    MVKL addr,B0
    MVKH addr,B0
    B B0
    LDW *B15++,B0
    NOP 4
    .align 32
    .endm

    ;create interrupt vector for unused interrupts
    VEC_DUMMY .macro
    unused_int?:
    B unused_int? ;dead loop for unused interrupts
    NOP 5
    .align 32
    .endm


    ;--------------------------------------------------------------
    ;interrupt vector table
    .sect "vecs"
    .align 1024

    vectors:
    VEC_RESET Nested_Exception_service_routine ;Nested exception
    VEC_ENTRY NMI_ISR ;NMI/Exception
    VEC_DUMMY ;RSVD
    VEC_DUMMY ;RSVD
    VEC_ENTRY GE_Message_ISR ;interrupt 4
    VEC_ENTRY SRIO_ISR ;interrupt 5
    VEC_DUMMY ;interrupt 6
    VEC_DUMMY ;interrupt 7
    VEC_DUMMY ;interrupt 8
    VEC_DUMMY ;interrupt 9
    VEC_DUMMY ;interrupt 10
    VEC_DUMMY ;interrupt 11
    VEC_DUMMY ;interrupt 12
    VEC_DUMMY ;interrupt 13
    VEC_DUMMY ;interrupt 14
    VEC_DUMMY ;interrupt 15

    .end

    I changed the way to interrupt the registration, using the CSL library function as follow,and the programme runs stable

    registerInterrupt(48 , CSL_INTC_VECTID_4 , &GE_Message_ISR);
    registerInterrupt(20 , CSL_INTC_VECTID_5 , &SRIO_ISR);

    int32_t registerInterrupt(uint32_t event , uint32_t vector , CSL_IntcEventHandler isr)
    {
    hintc[vector] = CSL_intcOpen (&intcObj[vector], event, (CSL_IntcParam*)&vector , NULL);
    if (hintc[vector] == NULL)
    {
    printf("Error: GEM-INTC Open failed\n");
    return -1;
    }

    /* Register an call-back handler which is invoked when the event occurs. */
    EventRecord.handler = isr;
    EventRecord.arg = 0;
    if (CSL_intcPlugEventHandler(hintc[vector],&EventRecord) != CSL_SOK)
    {
    printf("Error: GEM-INTC Plug event handler failed\n");
    return -1;
    }

    /* clear the events. */
    if (CSL_intcHwControl(hintc[vector],CSL_INTC_CMD_EVTCLEAR, NULL) != CSL_SOK)
    {
    printf("Error: GEM-INTC CSL_INTC_CMD_EVTCLEAR command failed\n");
    return -1;
    }

    /* Enabling the events. */
    if (CSL_intcHwControl(hintc[vector],CSL_INTC_CMD_EVTENABLE, NULL) != CSL_SOK)
    {
    printf("Error: GEM-INTC CSL_INTC_CMD_EVTENABLE command failed\n");
    return -1;
    }

    return 0;

    }

    I do not know very well about the function CSL_intcOpen /CSL_intcPlugEventHandler/CSL_intcHwControl ,would you give me some reference?

    Thanks again for your reply!
    from job
  • All of these CSL functions that you are looking for are provided here:
    pdk_c667x_x_x_x\packages\ti\csl\src\intc

    You can look at the details of the implementation there.

    Regards,
    Rahul
  • thans for your reply!