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.

Running OpenMP Hello World example outside of CCS

Other Parts Discussed in Thread: CCSTUDIO

Dear Experts,

I am able to build, load, and execute the Hello World OpenMP example from within CCS v5.1. Now I would like to use the scripts provided by TI that utilize CCS's scripting capabilities (DSS) that allow running a built OpenMP executable and viewing CIO output from within a Windows console. Per the instructions in the OMP (OpenMP Runtime for SYS/BIOS) User's Guide, I have updated:

  1. DEBUGSERVER in common_variables.bat to point to my CCS installation.
  2. Tried both evm6678_xds560.xs and evm6678_xds560v2.xs, pointing them to my c6678evm-builtin560.ccxml file

I get the following mysterious error when using the supplied run.bat:

C:\home\omp_hello_world\runscript>run.bat platforms\evm6678_xds560v2.xs ../Debug/HelloWorld_example.out -n 4
ERROR: Couldn't load gel file  to C66xx_0
JavaException: com.ti.ccstudio.scripting.environment.ScriptingException: Error evaluating "GEL_LoadGel("")": GEL_LoadGel requires file name parameter

My CCS window looks like this:

And my modified .xs file is:

/* ========= Start edit here ======== */
/* Configure the scripts for this specific target configuration. */

var platformName = "ti.omp.examples.platforms.evm6678";

Main.addCpu(platformName, "C66xx_0", false);
Main.addCpu(platformName, "C66xx_1", false);
Main.addCpu(platformName, "C66xx_2", false);
Main.addCpu(platformName, "C66xx_3", false);
Main.addCpu(platformName, "C66xx_4", false);
Main.addCpu(platformName, "C66xx_5", false);
Main.addCpu(platformName, "C66xx_6", false);
Main.addCpu(platformName, "C66xx_7", false);

Main.CCSPlatform = "*";
Main.shortPlatformName = "evm6678";

Main.ccxmlConfigFile = "c6678evm-builtin560.ccxml";

/* ========= End edit here ======== */

Main.run(arguments);

Also, I have attached my ccxml file, which I use just fine when attaching and debugging from my CCS.

Thanks in advance,

-SQ

c6678evm-builtin560.zip
  • SQ,

    I’ve looked over your files and the one idea I have relates to the relative paths to the gel file in your c6678evm-builtin560.ccxml file.  The OMP user’s guide says to put the .ccxml file in “a place where your scripts can access them”.  So I wonder where you’ve placed the .ccxml file, and if the relative paths in the .ccxml file need to be updated to properly find the gel file.  Could this be the problem?

    Thanks,
    Scott

  • Thanks for taking a look Scott.

    I don't think it's the case where it cannot locate the .ccxml file. I say this because I also tried inserting the fully qualified path to my .ccxml file inside of the .xs file, and got the same mysterious GEL_LoadGel("") error. Also, if I purposely put an incorrect path to the .ccxml file inside of the .xs file, the launch aborts (as expected) with a different error message saying that "the primary document entity could not be opened".

    So then I went into the .ccxml file and added fully qualified paths to evmc6678l.gel.

    I still get the same original error when executing the run.bat script..

    -SQ

  • SQ,

    OK, thanks.

    I looked some more at the scripting files and don’t see anything that looks like an issue to me.

    One thing to try… to your .xs file can you add: “Main.enableTracing = true;”  This should provide some more verbose script output.  

    If there isn’t something there that helps, I’ll have to contact the CCS team and try to recreate the issue locally.

    Thanks,
    Scott

  • I added the tracing to the .xs file as you suggested and it didn't add much, one line with a date and time stamp then "Trying to load gel to C66xx_0" and after a while that same error pops up.

  • Please add the following line to your platform file evm6678_xds560.xs or evm6678_xds560v2.xs

    Main.gelFile = "platforms/evmc6678l.gel";

    Thanks

    Yogesh

  • Better, but now I get the following error. I think the .xs and other associated OpenMP run scripts are now valid, but this error about failure to start the CCS Debug Server is weird.

    C:\home\omp_hello_world\runscript>dir platforms
     Volume in drive C is OSDisk
     Volume Serial Number is 8615-B5C4

     Directory of C:\home\omp_hello_world\runscript\platforms

    10/15/2012  11:03 AM    <DIR>          .
    10/15/2012  11:03 AM    <DIR>          ..
    09/27/2012  09:10 AM             2,333 evm6670_xds560bh.xs
    09/27/2012  09:10 AM             2,424 evm6678_xds100.xs
    10/15/2012  01:57 PM             2,420 evm6678_xds560.xs
    09/27/2012  09:10 AM             2,515 evm6678_xds560bh.xs
    10/19/2012  03:20 PM             2,505 evm6678_xds560v2.xs
    09/27/2012  09:10 AM            96,920 evmc6670l.gel
    09/27/2012  09:10 AM           115,278 evmc6678l.gel
                   7 File(s)        224,395 bytes
                   2 Dir(s)  184,867,807,232 bytes free

    C:\home\omp_hello_world\runscript>run.bat platforms\evm6678_xds560v2.xs ../Debug/HelloWorld_example.out -n 4
    Mon, 22 Oct 2012 16:44:10 GMT: parseArgs: numCores = 4, fileName = ../Debug/HelloWorld_example.out, iterations = 1
    Mon, 22 Oct 2012 16:44:12 GMT: Trying to load gel to C66xx_0
    ERROR: Couldn't load gel file platforms/evmc6678l.gel to C66xx_0
    JavaException: com.ti.ccstudio.scripting.environment.ScriptingException: Could not start server: DebugServer.1: Timed out after 30000ms

  • Is the target connected in CCS when running this script?

    If yes, please disconnect the same and try again.

    Regards

    Yogesh

     

     

  • I don't think the target was connected but I did have CCS up in the background. So I closed that down and now get further, but get a different "data verification error" shown below. I re-verified that this all works fine from within CCS. Just for good measure, I did a clean rebuild and ran it from CCS. And then I closed down CCS completely before executing run.bat again.

    One other note, whenever I run from CCS I use version 2.000 of the evmc6678l.gel file. I get the same error if I use this older version or version 2.003 of the evmc6678l.gel file (the one that was under platforms\).

    I'm also using the Blackhawk 560 v2 mezzanine card to connect the emulator to my laptop. That is why I'm using the evm6678_xds560v2.xs file.

    -SQ

    C:\home\omp_hello_world\runscript>run.bat platforms\evm6678_xds560v2.xs ../Debug/HelloWorld_example.out -n 4
    Mon, 22 Oct 2012 20:51:09 GMT: parseArgs: numCores = 4, fileName = ../Debug/HelloWorld_example.out, iterations = 1
    Mon, 22 Oct 2012 20:51:09 GMT: Trying to load gel to C66xx_0
    Mon, 22 Oct 2012 20:51:25 GMT: Trying to connect to C66xx_0
    Mon, 22 Oct 2012 20:51:50 GMT: Trying to connect to C66xx_1
    Mon, 22 Oct 2012 20:51:52 GMT: Trying to connect to C66xx_2
    Mon, 22 Oct 2012 20:51:53 GMT: Trying to connect to C66xx_3
    Connected to cores #0-3
    Mon, 22 Oct 2012 20:51:54 GMT: Running ../Debug/HelloWorld_example.out on 4 cores.
    js: "./Run.xs", line 126: Load ../Debug/HelloWorld_example.outon core 0 failed because of error: JavaException: com.ti.ccstudio.scripting.environment.ScriptingException: Error loading "../Debug/HelloWorld_example.out": File: C:\home\omp_hello_world\Debug\HelloWorld_example.out: a data verification error occurred, file load failed.
        "./Run.xs", line 37
        "./Main.xs", line 92
        "./platforms/evm6678_xds560v2.xs", line 57

  • You will need to use the same GEL file that is working for you. You may either replace the gel file under platform directory with the working one or modify the evm6678_xds560v2.xs  to point Main.gelFile to the working gel file.

    Also if OpenMP.autoDnldCore is set to true(default), please run the out file on only one core

    i.e. run.bat platforms\evm6678_xds560v2.xs ../Debug/HelloWorld_example.out -n 1

    To run the outfile from 4 cores, rebuild your out-file with OpenMP.autoDnldCore=false.

     -Yogesh

  • I am using the identical GEL file that is working for me when I run under CCS.

    Even though OpenMP.autoDnldCore = true by default, I added that explictly in helloworld.cfg, rebuilt and then executed the run script as you suggested (with -n 1). The error message is similar as reported in my earlier posts, except now of course it connects to just the single core.

    Just to make double (triple) sure, I then ran from within CCS using the following steps:

    1. Connect just to C66xx_0
    2. System reset
    3. Scripts -> EVMC6678L Init Functions -> Global_Default_Setup
    4. Load Debug\HelloWorld_example.out
    5. Run

    This procedure executed fine. Next, I set OpenMP.autoDnldCore = false, rebuilt, and then tried to run using four cores (-n 4). It now gives me a different timeout error (see below).

    At this point, I am just about willing to continue my testing within CCS ...

     C:\home\omp_hello_world\runscript>run.bat platforms\evm6678_xds560v2.xs ../Debug/HelloWorld_example.out -n 4
    Tue, 23 Oct 2012 17:53:47 GMT: parseArgs: numCores = 4, fileName = ../Debug/HelloWorld_example.out, iterations = 1
    Tue, 23 Oct 2012 17:53:47 GMT: Trying to load gel to C66xx_0
    Tue, 23 Oct 2012 17:54:03 GMT: Trying to connect to C66xx_0
    Tue, 23 Oct 2012 17:54:28 GMT: Trying to connect to C66xx_1
    Tue, 23 Oct 2012 17:54:29 GMT: Trying to connect to C66xx_2
    Tue, 23 Oct 2012 17:54:30 GMT: Trying to connect to C66xx_3
    Connected to cores #0-3
    Tue, 23 Oct 2012 17:54:32 GMT: Running ../Debug/HelloWorld_example.out on 4 cores.
    Tue, 23 Oct 2012 17:54:35 GMT: Running all cores Asynchronously 30000
    Tue, 23 Oct 2012 17:54:35 GMT: Waiting for apps to halt
    Tue, 23 Oct 2012 17:54:35 GMT: Waiting for CORE0 to halt
    Session Blackhawk XDS560v2-USB Mezzanine Emulator_0/C66xx_0 timed out after 30000ms.
    [CORE0]
    [CORE1]
    [CORE2]
    [CORE3]
    Total Test: 1   Passed: 0   Failed: 1
    ===============================================
    ===========Test Results=============
    ===============================================
    Total Test: 1   Passed: 0   Failed: 1
    Failed Tests list:

  • The last run shows that it was able to load and run the out-file

    Connected to cores #0-3
    Tue, 23 Oct 2012 17:54:32 GMT: Running ../Debug/HelloWorld_example.out on 4 cores.
    Tue, 23 Oct 2012 17:54:35 GMT: Running all cores Asynchronously 30000
    Tue, 23 Oct 2012 17:54:35 GMT: Waiting for apps to halt
    Tue, 23 Oct 2012 17:54:35 GMT: Waiting for CORE0 to halt
    Session Blackhawk XDS560v2-USB Mezzanine Emulator_0/C66xx_0 timed out after 30000ms.

    How-ever it didn't give desired result. Also the failures in loading the out-file looks strange.

    I just have a quick question, have you used CCSV5 DEBUGSERVER outside OpenMP run-time scripts?

    -Yogesh

  • I have used them before on a different laptop, where I was using MATLAB to call into the CCSV5 DSS to load DSP binaries, set breakpoints, etc.

    I have not done it on this particular laptop, but I can surely do so. Can you send me a link to an example script/project I can try?

    -SQ