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.

How do I get multiple processors to dump their Raw Logs?

Other Parts Discussed in Thread: OMAP-L138, SYSBIOS

We are on an OMAP-L138 using CCS 5.2.1.00018, SYSBIOS 6.33.5.46.

If I connect to only the DSP, I get Log_info calls just fine on the Raw Logs console.

If I connect to only the ARM, I get Log_info calls just fine on the Raw Logs console.

If I connect to both, I only seem to get the ones from the side I connected to first.  I have not found any way to rename the "Main Logger".

Also I have a logger0 defined in the cfg on both sides that doesn't seem to be used for anything.  I assumed I needed to define a log but I guess I don't?  True or False?

  • Mike,

    Are you running SYS/BIOS on the ARM also?

    Todd

  • Yes, runing on both.

  • Hi Mike,

       Can you please post the .cfg files for both the ARM and the DSP so that I can get a better idea of how you have things configured?  Are you using JTAG to upload the data?  Also, what version of UIA are you using?

    Regards,

      Brian

  • Thanks Mike,

        There were a number of problems in both .cfg files which would explain the problems you were encountering.  The attached files include a number of corrections which should allow you to upload events from both cores via JTAG.  I've included comments to show which statements were causing the problems and what needed to be added to correct the problems. 

    I think a number of the problems you encountered were caused by combining modules that were provided by SysBios to support the (now obsolete) Real-time Analysis tooling (which used the now obsolete RTDX technology) with the UIA modules that are designed to support System Analyzer tooling.  This is an area we are actively working to clean up.  It's also apparent that we need to clean up the documentation associated with using JTAG as a transport and how and when to use the ServiceMgr module.   The ServiceMgr module was intended to support situations where events were being uploaded either from another CPU via IPC (and then logged to a file on an ARM running Linux)  or via a non-JTAG transport such as Ethernet.  UIA has a service that reads the logger buffers and uploads the events from the buffers to either the IPC transport or to the non-JTAG transport, and this service should not be used at the same time you are uploading events directly to CCS via JTAG.  To make matters even more confusing, this service is named ti.uia.runtime.rta or "RTA" for short (the same name as the now obsolete ti.sysbios.rta module).   Apologies for the confusion this caused - we will be working to clean things up in future releases.

    Also, FWIW, you may find the tutorials at http://processors.wiki.ti.com/index.php/System_Analyzer_Tutorials to be a good way to get familiar with the UIA and System Analyzer capabilities.  The tutorials are probably the best way to get a good understanding of how UIA and System Analyzer work together.

    Please let me know if the attached .cfg files work for you or not, or if you have any further questions.

    Thanks for your patience!

    Regards,

      Brian

    4336.0728.Frankenstien_ARM_Main.cfg

    3644.4604.DSP_Main.cfg

  • Thanks so much for your help.

    I replaced the CFG files with the ones you gave me and got this on the DSP side (The ARM side seems fine):

    **** Build of configuration Debug for project Frankenstien_DSP ****

    C:\TI\ccsv5\utils\bin\gmake -k all

    'Building file: ../DSP_Main.cfg'

    'Invoking: XDCtools'

    "C:/TI/xdctools_3_23_03_53/xs" --xdcpath="C:/TI/dsplib_c674x_3_1_1_1/packages;C:/TI/edma3_lld_02_11_05_02/packages;C:/TI/ipc_1_24_03_32/packages;C:/TI/bios_6_33_05_46/packages;C:/TI/uia_1_01_00_04/packages;C:/TI/xdais_7_21_01_07/packages;C:/TI/xdais_7_21_01_07/examples;C:/CCS/platform;C:/TI/ccsv5/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C674 -p bh.platform.dsp.expOMAPL138 -r debug -c "C:/TI/ccsv5/tools/compiler" "../DSP_Main.cfg"

    making package.mak (because of package.bld) ...

    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

    configuring DSP_Main.xe674 from package/cfg/DSP_Main_pe674.cfg ...

    js: "C:/CCS/VSLED_Source_Code/Frankenstien_DSP/DSP_Main.cfg", line 117: ReferenceError: "LoggerBuf" is not defined.

    "./package/cfg/DSP_Main_pe674.cfg", line 197

    "./package/cfg/DSP_Main_pe674.cfg", line 276

    "./package/cfg/DSP_Main_pe674.cfg", line 184

    gmake.exe: *** [package/cfg/DSP_Main_pe674.xdl] Error 1

    js: "C:/TI/xdctools_3_23_03_53/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    gmake: *** [configPkg/compiler.opt] Error 1

    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

     

  • Darn, I missed the references to LoggerBuf in the .cfg file.

    Attached is an updated version of the .cfg file I posted previously with lines 117 to 120 in the .cfg file commented out to address this.

    4721.4604.DSP_Main.cfg

    Sorry about that!

    Regards,

      Brian

  • I commented out lines 117 to 120 and that got me to compile.  But I dont get any logs out now.

  • Hi Mike,

        I've obtained an OMAP-L138 EVM and am in the process of putting a project together to get a better understanding of the problems your hitting - I'll post again once I've got things working.

    Regards,

      Brian

  • Hi Mike,

       I've installed the same versions of CCS, SysBios, UIA etc that you have and am able to see events captured from both the DSP and ARM.  One thing that I did come across is that, when using IPC, the order in which the processors are loaded and run may be important, since the ARM is generally responsible for initializing the shared region of memory on the OMAP L138.   Could you try the following:

    • load the ARM first, run to main then run for a second and halt.  The Shared Region should have been initialized by this time.
    • load the DSP and allow it to run to main. 
    • start Tools  / System Analyzer. 
    • In the Debug View, right click on both CPUs and select "Sync group cores"
    • select the "Group 1 (Synchronous)" label in the Debug View and then click the green "run" button (or Run / Resume from the CCS menu).
    • halt the group before either program exits

    Do you see any events in System Analyzer from both cores with this approach?

    If not, could you add the following loop to both of your main programs:

    #include <xdc/runtime/Log.h>

    Int main(Int argc, Char* argv[])

    int i = 0;

    while (1){

        Log_info1("Logging event %d",i);

        i++;

    }

    Also, please ensure that the following lines are present in both your ARM and DSP .cfg files (I believe it is currently only in your DSP .cfg file)

    var Main = xdc.useModule('xdc.runtime.Main');

    var Diags = xdc.useModule('xdc.runtime.Diags');

    Main.common$.diags_INFO = Diags.ALWAYS_ON;

    And then try the above steps - do you see events from both CPUs in System Analyzer?

    Regards,

      Brian

  • I do get the logs now with a lot of stuff !

    Thanks...