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/TDA3XEVM: How to debug switching of function execution in IPU.

Part Number: TDA3XEVM
Other Parts Discussed in Thread: SYSBIOS

Tool/software: Code Composer Studio

Hi,

I would like to know how to debug switching of function execution in IPU.

CCS has PC trace for A15 and DSP. However, IPU does not have PC trace. Is there any alternative method for IPU?

I am using processor SDK vision 3.00.

Regards,
Kenshow

  • Hello Kenshow,

    You can use function profiling, task hooks instrumentation using sysbios UIA (system analyzer) module.
    Please refer to below for more details. Let me know if any more info needed.

    http://www.ti.com/.../spruh43f.pdf

    Refer to http://processors.wiki.ti.com/index.php/Processor_SDK_RTOS_PROFILING for  RTOS profiling details

  • Hi Prasad,

    I checked sysbios UIA. However, I did not know how to set UIA into processor SDK vision3.00 referring to page 88 in spruh43f.pdf
    So, please advise me how to change specifically in the SDK.

    Regards,
    Kenshow
  • Hello Kenshow,

    What is VSDK version you are using? We have added profiling support in the VSDK3.2 which you can enable using ENABLE_UIA_PROFILING flag in cfg.mk
  • Hi Kenshow,

    We haven't heard back from you, I'm assuming you were able to resolve your issue.
    If not, just post a reply below (or create a new thread if the thread has locked due to time-out).

    Regards,
    Yordan
  • Hi,

    I'm sorry for the late reply.

    The build succeeded.However, It did not worked as UIA debugging with TDA3x.
    I have interrupted it afterwards, but I will challenge next week and report them.

    Thanks,
    Kenshow

  • Hi Prasad,

    I installed UIA version 2.00.5 50 under the folder C:\PROCESSOR_SDK_VISION_03_02_00_00\ti_components\os_tools. And, I tried to build for UIA with ENABLE_UIA_PROFILING flag in cfg.mk.
    However, It did not worked on TDA3x. the build is OK, but It seems that UIA for TDA3x was not included by ENABLE_UIA_PROFILING flag at the building.
    Could you advise me to build using UIA for TDA3x.

    In addition, I also tried to build for TDA2x. It has error as following:

    # Making tda2xx-evm:c66xdsp_1:release:vision_sdk_lib...
    # Compiling tda2xx-evm:c66xdsp_1:release:vision_sdk: src/main_common_c6xdsp1.c
    # Compiling tda2xx-evm:c66xdsp_1:release:vision_sdk: C:/PROCESSOR_SDK_VISION_03_02_00_00/vision_sdk/apps/src/common/main_app/tda2xx/dsp1/src/main_c6xdsp1.c
    # Compiling tda2xx-evm:c66xdsp_1:release:vision_sdk: C:/PROCESSOR_SDK_VISION_03_02_00_00/vision_sdk/apps/src/common/app_init/app_init_dsp.c
    # Compiling generated MAIN_APP_c6xdsp1_pe66.oe66
    # Linking into C:/PROCESSOR_SDK_VISION_03_02_00_00/vision_sdk/binaries/apps/tda2xx_evm_bios_all/vision_sdk/bin/tda2xx-evm/vision_sdk_c66xdsp_1_release.xe66...
    "C:/PROCESSOR_SDK_VISION_03_02_00_00/vision_sdk/binaries/apps/tda2xx_evm_bios_all/obj/vision_sdk/tda2xx-evm/c66xdsp_1/release/vision_sdk_configuro/linker_mod.cmd", line 235: error:
    program will not fit into available memory. placement with alignment fails
    for section ".cinit" size 0x35feba . Available memory ranges:
    DSP1_DATA_MEM size: 0xc80000 unused: 0x2d5d98 max hole: 0x2d5ce0
    error: errors encountered during linking;
    "C:/PROCESSOR_SDK_VISION_03_02_00_00/vision_sdk/binaries/apps/tda2xx_evm_bio
    s_all/vision_sdk/bin/tda2xx-evm/vision_sdk_c66xdsp_1_release.xe66" not
    built
    gmake[7]: *** [C:/PROCESSOR_SDK_VISION_03_02_00_00/vision_sdk/binaries/apps/tda2xx_evm_bios_all/vision_sdk/bin/tda2xx-evm/vision_sdk_c66xdsp_1_release.xe66] Error 1
    gmake[6]: *** [c66xdsp_1] Error 2
    gmake[5]: *** [apps_dsp1] Error 2
    gmake[4]: *** [apps] Error 2
    gmake[3]: *** [apps] Error 2
    gmake[2]: *** [apps_exe] Error 2
    gmake[1]: *** [apps] Error 2
    gmake: *** [vision_sdk] Error 2

    I checked PSDKV 3.02 and 3.03, but met same errors.

    Best Regards,
    Kenshow
  • Hi,

    It works!
    For TDA3x, I found that it is not included UAI setting in BIOS_common.cfg.
    I added in the file as follows:

    if (enableProfiling == "yes")
    {
    BIOS.logsEnabled = true;
    var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
    LoggingSetup.sysbiosSwiLogging = true;
    LoggingSetup.sysbiosHwiLogging = true;
    LoggingSetup.sysbiosSemaphoreLogging = true;
    LoggingSetup.loadLogging = false;
    LoggingSetup.benchmarkLogging = false;
    LoggingSetup.mainLoggingRuntimeControl = false;
    LoggingSetup.loadTaskLogging = false;
    LoggingSetup.loadSwiLogging = false;
    LoggingSetup.loadHwiLogging = false;
    LoggingSetup.loadLoggerSize = 262144;
    LoggingSetup.sysbiosLoggerSize = 524288;
    LoggingSetup.mainLoggerSize = 262144;

    var UIAMetaData = xdc.useModule('ti.uia.runtime.UIAMetaData');
    UIAMetaData.overrideTimestampFreq = true;
    UIAMetaData.timestampFreq.lo = 20000000;
    }
    else
    {
    :
    }

    Is it OK for TDA3x? Especially, Logger size.

    Best regards,
    Kenshow
  • Hello Kenshow,

    Yes, this configuration is fine for TDA3xx but it would not enable function level profiling. For enabling it please refet to below.
    processors.wiki.ti.com/.../SystemAnalyzerTutorial1F
  • Hello Prasad,

    Thanks for your advice. I'll try to use UIA on TDA3x.

    However, I have not solved about the compiling errors of TDA2x that I posted.
    Could you advise me to solve them.

    Best Regards,
    Kenshow
  • Hello Kenshow,

    Are you getting below error? If yes, can you please increase  DSP1_DATA_MEM in apps/build/tda2xx/mem_segment_definition_bios.xs?

    "C:/PROCESSOR_SDK_VISION_03_02_00_00/vision_sdk/binaries/apps/tda2xx_evm_bios_all/obj/vision_sdk/tda2xx-evm/c66xdsp_1/release/vision_sdk_configuro/linker_mod.cmd", line 235: error:
    program will not fit into available memory. placement with alignment fails
    for section ".cinit" size 0x35feba . Available memory ranges:
    DSP1_DATA_MEM size: 0xc80000 unused: 0x2d5d98 max hole: 0x2d5ce0

  • Hi Prasad,

    Yes.
    The build passed by changing in mem_segment_definition_bios.xs file as follows:

    /* EVE4_DATA_SIZE =13.5*MB; */
    EVE4_DATA_SIZE =13*MB;
    :
    /* DSP1_DATA_SIZE = 12.5*MB; */
    DSP1_DATA_SIZE = 13*MB;

    Thanks,
    Kenshow