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.

EVE debug on TDA2xx hardware problem

Hi Champs,

I have developed the kernel for sobel and able to debug/run it on simulator. (Kernel with test app)

(for information: I am using CCS7.4 for development and CCS5.4 for EVE simulator because above CCS5.4 EVE simulator support not available.)

Now i want to run/debug the same kernel (Kernel with test app) on hardware TDA2x. when i try to do the same h/w directly goes into running mode, it does not stops at any break point and neither producing any error but it keep in running mode.

Just to add, on the same h/w i am able to run/debug DSP code.

for comparison i tried helloworld sample code for EVE and DSP, for DSP it worked as expected but for EVE it goes in zombie state(keep running ,not giving output).

Need your help for the same.

Thanks,

Mohammed

  • Hi Mohammed,

       Have followed all the steps as mentioned in getting started guide :

    1. Goto <CCS Installation directory>/ccs_base/emulation/TDA2X and set EVE_SW_CONFIG macro to 1 in TDA2xx_multicore_reset.gel file
    2. In CCS, launch the Target Configuration for TDA2X.
    3. Select the 'CortexA15_0' Target -> Do a 'System Reset' -> Select 'Connect Target'.
    4. Select the 'CortexA15_0. Goto ‘Scripts’ menu -> ‘TDA2XX MULTICORE Initialization’ -> EVExSSClkEnable_API
    5. Select 'ARP32_EVE_x' Target -> Do a 'Connect Target' -> Do a 'CPU Reset'.
    6. Any binary can now be loaded to ARP32_EVE_x and executed.
    7. To execute EVE starterware mailbox example – additional steps will be required for interrupt mapping – please refer starter ware documentation for the details

     Specially make sure step 1 and step 5 are done.

    Regards,

    Anshu

  • thanks Anshu,
    let me retry and get back to you soon.
  • Hi Anshu,

    i tried the steps as mentioned by you, i did not got any luck. Can you suggest something else please?

    Also, to add... just for narrow downing the approach.

    i can debug/run the DSP helloworld program on same setup but i am failing for EVE helloworld program.

    Thanks,

    Moohammed

  • Hi Mohammed,

        Few things to look :

    • What linker command file you are using?
    • Once EVE core hungs can you click on CPU reset button and then look for vop_error register  in registers window and share the register value if its non-zero.

    Regards,

    Anshu

  • Hi Anshu,

    1. i am using linker file from the location "vision_sdk/ti_components/drivers/pdk_01_08_00_16/packages/ti/csl/example/lnk_arp32.cmd" and deleted the "-e _reset_handler".

    2. i see zero in vcop_error. please find attached screenshot.

    thanks,

    mohammed

  • Can you share this linker.cmd file

    Regards,
    Anshu
  • Hi Anshu,

    PFA linker file, change .txt to .cmd please.

    Thanks,

    mohammed

    
    -heap  0x3000
    -stack 0x1000
    
    MEMORY
    {
        PAGE 0:
          DMEM            :    origin = 0x40020000 length = 0x8000
          WBUF            :    origin = 0x40040000 length = 0x8000
          IMEMLA          :    origin = 0x40050000 length = 0x4000
          IMEMHA          :    origin = 0x40054000 length = 0x4000
          IMEMLB          :    origin = 0x40070000 length = 0x4000
          IMEMHB          :    origin = 0x40074000 length = 0x4000
          OCMC_RAM1       :    origin = 0x40300000 length = 0x80000
          OCMC_RAM2       :    origin = 0x40400000 length = 0x100000
          OCMC_RAM3       :    origin = 0x40500000 length = 0x100000
          DDR_VECS_MEM    :    origin = 0x80000000 length = 0x0100
          DDR_CMD_MEM     :    origin = 0x80000100 length = 0x1000
          DDR_CODE_MEM    :    origin = 0x80001100 length = 0x200000
          DDR_DATA_MEM    :    origin = 0x80201100 length = 0xd80000
    }
    
    SECTIONS
    {
      .intvecs      > DDR_VECS_MEM  PAGE 0
      .inthandler   > DDR_CMD_MEM   PAGE 0   /* needs a dedicated region */
      .exitlocation > DDR_VECS_MEM  PAGE 0
      .vecs:        > DDR_VECS_MEM  PAGE 0
    
      .text > DDR_CODE_MEM  PAGE 0
      {
        *(.text)
        }
    
       GROUP
       {
          .bss            /* This order facilitates a single segment for */
          .data           /* GDP-relative addressing                     */
          .rodata
        }>DDR_DATA_MEM  PAGE 0
    
      Adata:                 load = IMEMLA          PAGE 0
      Bdata:                 load = IMEMHA          PAGE 0
      Cdata:                 load = WBUF            PAGE 0
      .imemha:               load = IMEMHA          PAGE 0
      .imemhb:               load = IMEMHB          PAGE 0
      .imemla:               load = IMEMLA          PAGE 0
      .imemlb:               load = IMEMLB          PAGE 0
      .wmem:                 load = WBUF            PAGE 0
      .vcop_parameter_block: load = WBUF            PAGE 0
      Udata:                 load = WBUF            PAGE 0
      .const                 load = DDR_DATA_MEM    PAGE 0
      EOutdata:              load = DDR_DATA_MEM    PAGE 0
      Sdata:                 load = DDR_DATA_MEM    PAGE 0
      .cint:                 load = DDR_DATA_MEM    PAGE 0
      .bss :                 load = DDR_DATA_MEM    PAGE 0
      .data:                 load = DDR_DATA_MEM    PAGE 0
      SRC_REGION:            load = DDR_DATA_MEM    PAGE 0
      DST1_REGION:           load = DDR_DATA_MEM    PAGE 0
      DST2_REGION:           load = DDR_DATA_MEM    PAGE 0
      DST3_REGION:           load = DDR_DATA_MEM    PAGE 0
      DST4_REGION:           load = DDR_DATA_MEM    PAGE 0
      DST5_REGION:           load = DDR_DATA_MEM    PAGE 0
      DST6_REGION:           load = DDR_DATA_MEM    PAGE 0
      DST7_REGION:           load = DDR_DATA_MEM    PAGE 0
      DST8_REGION:           load = DDR_DATA_MEM    PAGE 0
      DST_REGION:            load = DDR_DATA_MEM    PAGE 0
      .cinit:                load = DDR_DATA_MEM    PAGE 0
      .far:                  load = DDR_DATA_MEM    PAGE 0
      .fardata:              load = DDR_DATA_MEM    PAGE 0
      .stack:                load = DDR_DATA_MEM    PAGE 0
      .sysmem:               load = DDR_DATA_MEM    PAGE 0
      .init_array:           load = DDR_DATA_MEM    PAGE 0
      .cio:                  load = DDR_DATA_MEM    PAGE 0
    }
    

  • Mohammed,
    Why did you removed "-e _reset_handler"? This defines the entry point of the executable.

    Regards,
    Anshu
  • Hi Anshu,
    I removed "-e _reset_handler" because while compiling i see the error "unresolved symbol".
    Just to add i have removed "-e _reset_handler" for SDP too but good thing is DSP is running as expected, if I remove "-e _reset_handler" i can see build without any warning or error.
    please refer below build log if i include "-e _reset_handler".

    ======================================================================================


    **** Build of configuration Debug for project evetest ****

    /home/tiautomotive/ti/ccsv7/utils/bin/gmake -k -j 8 all -O

    Building target: "evetest.out"
    Invoking: EVE Linker
    "/home/tiautomotive/ti/ccsv7/tools/compiler/arp32_1.0.9/bin/cl-arp32" -v210 -g --diag_wrap=off --display_error_number --diag_warning=225 -z -m"evetest.map" -i"/home/tiautomotive/ti/ccsv7/tools/compiler/arp32_1.0.9/lib" -i"/home/tiautomotive/ti/ccsv7/tools/compiler/arp32_1.0.9/include" --reread_libs --warn_sections --xml_link_info="evetest_linkInfo.xml" --rom_model -o "evetest.out" "./main.obj" "../lnk_arp32.cmd" -llibc.a
    <Linking>

    undefined first referenced
    symbol in file
    --------- ----------------
    _reset_handler

    error #10234-D: unresolved symbols remain
    warning #10062-D: entry-point symbol "_reset_handler" undefined

    warning #10202-D: no suitable entry-point found; setting to 0
    >> Compilation failure
    makefile:139: recipe for target 'evetest.out' failed
    error #10010: errors encountered during linking; "evetest.out" not built
    gmake[1]: *** [evetest.out] Error 1
    gmake: *** [all] Error 2
    makefile:135: recipe for target 'all' failed

    **** Build Finished ****

    ======================================================================================

  • Please include the following file to your build
    <eve_sw_release>\kernels\common\boot_arp32.asm

    Regards,
    Anshu
  • Anshu,

    Thanks Anshu,
    it helps for helloworld program, i will switch back to my kernel debug.
  • Anshu,

    I am able to run my kernel on hardware :) . thanks for your help.

    Sharing, what i was trying to do :)

    I have very smple kernel that can processing image size 88x72. below are my comparison.

    on simulator : [EVE_1] CPU cycles after processing on core1 = 6050

    on hardware : [EVE_1] CPU cycles after processing on core1 = 6370



    Thanks,
    Mohammed.