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.

OpenMP Hello World + TMS320C6678 Questions

Other Parts Discussed in Thread: TMS320C6678, SYSBIOS

Hi,

I am attempting to execute a simple Hello World! OpenMP application on a TMS320C6678 DSP with TMDSEVM6678LE evaluation board.

I have followed the instructions from http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_Getting_Started_Guide by:

  • Installing CCS 5.3
  • Installing MCSDK 2.01

My packages are below:

I could not find any specific tutorials or links to running an OpenMP hello world program.  Here are my questions:

  • Could anyone point me to the right direction (e.g.: tutorials)?
  • The OpenMP examples do not exist under File -> New -> New CCS Project with Device: C6000, Variant: Generic C66xx Device.  What are the correct versions of CCS / MCSDK for OpenMP support?

  • Carlo del Mundo said:
    Could anyone point me to the right direction (e.g.: tutorials)?

    Please try this wiki article.  -George

  • Thanks for the quick response, George.  I have attempted at running the OpenMP Hello World, but no printf() statements are generated from any thread.

    Every time I start "Debug", the following error message appears:


    [C66xx_0] A0=0x90000200 A1=0x90000200
    A2=0x0 A3=0x11
    A4=0x1fb10341 A5=0x90000200
    A6=0x4 A7=0x0
    A8=0x1844018 A9=0x1
    A10=0x2 A11=0xa0194a84
    A12=0x5ac02211 A13=0xc03916c
    A14=0x90000200 A15=0x0
    A16=0x90000008 A17=0x8
    A18=0x90000180 A19=0x40
    A20=0x100 A21=0xffffffff
    A22=0x2005000 A23=0xc054828
    A24=0x2005000 A25=0x829880
    A26=0xc054828 A27=0xc054828
    A28=0x0 A29=0xc037b88
    A30=0x2 A31=0xa019205c
    B0=0x1 B1=0x1
    B2=0x1 B3=0xc028e50
    B4=0x90000200 B5=0xc03916c
    B6=0x0 B7=0x1
    B8=0x1000 B9=0x0
    B10=0x90000088 B11=0x0
    B12=0x1 B13=0xc02ae64
    B14=0xa0194878 B15=0x828eb8
    B16=0x0 B17=0x829018
    B18=0xff B19=0x20
    B20=0x20 B21=0x108296ec
    B22=0x0 B23=0x30c47904
    B24=0x137824 B25=0x1898c56d
    B26=0x42a010c9 B27=0x0
    B28=0x20000000 B29=0xff
    B30=0x21 B31=0x0
    NTSR=0x1000f
    ITSR=0xf
    IRP=0xc01bd98
    SSR=0x0
    AMR=0x0
    RILC=0x0
    ILC=0x0
    Exception at 0x4
    EFR=0x2 NRP=0x4
    Internal exception: IERR=0x1
    Instruction fetch exception
    ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x00000004, sp = 0x00828eb8.
    To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'
    xdc.runtime.Error.raise: terminating execution



    After clicking "debug" again, everything seems to setup fine.  I'm able to see the software breakpoint for thread 0.

    However, when I click on "Resume", no visible printf() output is shown.  


    After selecting "Debug" once again, the "Resume" button is no longer possible.  The final output window is as follows (no thread output).


    Could you provide some pointers on this problem?

    I am using:

    • IPC 1.25.0.04
    • MCSDK PDK TMS320C6678 1.1.2.5
    • OpenMP BIOS runtime library 1.1.3.02
    • SYS/BIOS 6.34.2.18
    • XDCTools 3.24.5.48

    on an

    • TMS320C6678
    • Blackhawk XDS560 v2-USB Mezzanine Emulator
    P.S. - The non-OpenMP "Hello World" works fine with my configuration; the printf() command works just fine with the non-OpenMP version.
  • Hi Carlo

    Could you please try the following, and let us know:

    1. Launch your target configuration for your 6678 EVM in CCS Debug perspective

    2. 'Connect Target'

    3. Now for each core, select the core, go to Tools--> Debugger Options --> Generic Debugger Options. This should bring up a window. Under 'Auto Run Options" uncheck the box that says, 'On a program load or restart.'

    4. After completing step 3 for all cores, click on 'Remember my settings'

    5. Now load your .out file on all cores. After loading is completed, all cores should be in suspend mode, and at the symbol __c_int00().

    6. Now run all cores

  • Hi Uday,

    Still no dice.  Here is the exact sequence from start to finish.  

    • Power on TMS320C6678 with BlackHawk XDS560V2-USB Emulator in NO BOOT mode
    • Open CCS v5.3
    • New CCS Project 
    • Family: C6000
    • Variant: Generic C66xx Device
    • OMP Examples -> C6678 Examples -> Hello world example
    • IPC v1.25.0.04
    • MCSDK PDK TMS320C6678 v1.1.2.5
    • OpenMP BIOS runtime library v1.1.3.02
    • SYS/BIOS v6.34.2.18
    • omp_config.cfg -- Add line "OpenMP.autoDnldCore = false;" under OpenMP.setNumProcessors(4);
    • New Target Configuration File
    • Blackhawk XDS560v2-USB Mezzanine Emulator and TMS320C6678
    • Right Click on NewTargetConfigurationFile.ccxml -> Launch Selected Configuration.  I am met with the following screen.

    • Right click on Core 0 -> Connect Target 
    • Right click on Core 1 -> Connect Target 
    • Right click on Core 2 -> Connect Target 
    • Right click on Core 3 -> Connect Target
    • Tools -> Debugger Options -> Auto Run and Launch Options
    • Unchecked "On a program load or restart" for all cores
    • Remember my settings
    • Highlighted Core 0, then Run -> Load -> Load Program -> .out file from OpenMP project
    • Highlighted Core 1, then Run -> Load -> Load Program -> .out file from OpenMP project
    • Highlighted Core 2, then Run -> Load -> Load Program -> .out file from OpenMP project
    • Highlighted Core 3, then Run -> Load -> Load Program -> .out file from OpenMP project
    I am met with the following screenshot.

    • Highlight Core 0 and click Resume (F8)
    • Highlight Core 1 and click Resume (F8)
    • Highlight Core 2 and click Resume (F8)
    • Highlight Core 3  and click Resume (F8)
    The following screenshot is shown.

    There is no visible output in the console.  Any other ideas?
  • You should not use CCS5.3, use lower edition.

  • Hi Carlo del Mundo, 

    have you find the Solution for your Problem?  I try to run the OpenMP parallel Hello World Example , but after compiling and debugging , no output appear .

    Plattform :

     TMS320C6678 

    CCS 5.3

    MCSDK 2.1

    Thank you for Reply 

    Lopez 

  • Carlo,

    Let's try updating to the latest version of MCSDK and OMP.

    You can find the latest version of MCSDK at http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html As of today this is MCSDK 2.01.02.06.

    Next, update your OpenMP package to the latest build by downloading the installer from http://software-dl.ti.com/sdoemb/sdoemb_public_sw/omp/latest/index_FDS.html  As of today this is OMP 1.02.00.05.

    Also ensure that you download the recommended compiler version 7.4.0 (and not a newer/older version).

    When you create the OMP Hello World example, make sure that you select the software component versions of BIOS, IPC, PDK and XDC, so that they are those that were installed with  this MCSDK 2.01.02.06 install. Also make sure you select the newly installed OMP version 1.02.00.05.

    Please let us know what you observe once you do this.