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.

Problems building a simple DSP/BIOS application for the 6747

Other Parts Discussed in Thread: CCSTUDIO

Folks, I am using CCS 3.3.81.11, BIOS 5.33.01 and codegen tools 6.1.5.  I get the following compile error when attempting to build a DSP/BIOS application:

[bioscfg.s62] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -g -pdsw225 -fr"C:/TI/simpledspbios/Debug" -d"_DEBUG" -d"CHIP_6747" -mv67p -@"Debug.lkf" "bioscfg.s62"
"bioscfg.s62", ERROR!   at line 365: [ ***** USER ERROR ***** - ]
         Project build options do not match Global configuration settings.
           Compiler options do not specify -mv64+, but configuration is for
           C64x+
                .emsg "Project build options do not match Global configuration settings.  Compiler options do not specify -mv64+, but configuration is for C64x+"

"bioscfg.s62", ERROR!   at EOF: [E0300] The following symbols are undefined:
2 Assembly Errors, No Assembly Warnings
  GBL_L2MARMASK
  HWI_INTRMULTHIGH
  HWI_INTRMULTLOW

Errors in Source - Assembler Aborted

As you can see, I have #defined CHIP_6747 in my project settings, and chose the EVM6747 DSP/BIOS seed file.  The .cdb clearly states util.loadPlatform("ti.platforms.evm6747"), so where is all this C64 stuff coming from?

Any help you can provide would be greatly appreciated!

  • Tim, thank you for the resolution to this problem.  The BIOS and CGTools for both C64x and C67x were set to the same thing.  The issue turned out to be the -mv6740 compiler switch.  The interesting thing on my CCS is that -mv6740 isn't a valid selection under the pull-down.  I had to go into the .pjt file and manually edit it.  Now my project builds.

    On a related note, I am using the -mv67p compiler switch flag on the 6727 (investigating upgrading to the 6747 from the 6727).  Is that the correct flag to be using for that processor core?

  • Thank you, Tim.

    SQ, likely you will need to also watch for thing like CHIP_6747 for the preproc etc... in the codegen.

    Do you know if there is a newer DSPLIB to go along with the new floating core ROM?

     

  • SQ said:
    Tim, thank you for the resolution to this problem.  The BIOS and CGTools for both C64x and C67x were set to the same thing.  The issue turned out to be the -mv6740 compiler switch.  The interesting thing on my CCS is that -mv6740 isn't a valid selection under the pull-down.  I had to go into the .pjt file and manually edit it.  Now my project builds.

    I don't know why the -mv6740 switch is not included in the available processor types, but I certainly agree that it should be. If there's not already a bug filed against this I will make sure to add one.

    SQ said:
    On a related note, I am using the -mv67p compiler switch flag on the 6727 (investigating upgrading to the 6747 from the 6727).  Is that the correct flag to be using for that processor core?
    Yes, -mv67p is used for the C67x+ core which the C672x parts include.

    SK said:
    Do you know if there is a newer DSPLIB to go along with the new floating core ROM?
    I have heard that one is in development, but I do not know when it will be available. I will see if I can find an updated timeframe on this.

  • I saw a duplicate of this original post and tried to delete it, but apparently it deleted both copies - whoops. Re-adding my original response just to keep it here on the forum...

    SQ said:
    [bioscfg.s62] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -g -pdsw225 -fr"C:/TI/simpledspbios/Debug" -d"_DEBUG" -d"CHIP_6747" -mv67p -@"Debug.lkf" "bioscfg.s62"
    "bioscfg.s62", ERROR!   at line 365: [ ***** USER ERROR ***** - ]
             Project build options do not match Global configuration settings.
               Compiler options do not specify -mv64+, but configuration is for
               C64x+
                    .emsg "Project build options do not match Global configuration settings.  Compiler options do not specify -mv64+, but configuration is for C64x+"
    I found it best to make sure that both the C64x and C67x point to the same versions of BIOS and CGTools inside the Component Manager. The C674x core is tricky because it includes both 67x+ and 64x+ instruction sets (think of it as a dual-core inside of a single core). As a result a few of these little quicks popped up. I also suggest using the -mv6740 compiler switch instead of -mv67p so as to take full advantage of the DSP's dual-instruction set feature.

  • TimHarron said:
    I found it best to make sure that both the C64x and C67x point to the same versions of BIOS and CGTools inside the Component Manager. The C674x core is tricky because it includes both 67x+ and 64x+ instruction sets (think of it as a dual-core inside of a single core). As a result a few of these little quicks popped up. I also suggest using the -mv6740 compiler switch instead of -mv67p so as to take full advantage of the DSP's dual-instruction set feature.

    There is a wiki article describing this as well.

  • > .Do you know if there is a newer DSPLIB to go along with the new floating core ROM?

    There is no DSPLIB in the ROM of 674x. We are working on cretaing a DSPLIB for 674x core and should have the initial release available by Late April

    Gagan

  • I am seeing similar a similar problem. In my case, I was using the free CCS version that came with the evmOMAPL137 board. When I bought the full up version to use with my real target hardware, I changed the gel files. Now I can't build the project anymore.

    My build flag is -mv6740. My configuration manager has all in agreement with bios selection. As an example of my problem, when I try to build the mutex example project for my board, I get the message "Compiler options do not specify -mv64+, but configuration is for C64x+"

    I would like to build for -mv6740. How would I change the "Global configuration settings". The line it tags with the problem is in mutexcfg.s62:

    GBL_config _ROM, _PROCID, _CLKIN, _FREQ, _DSPTYPE, _DSPSUBTYPE, _CLKTYPE, _BIGENDIAN, _USERINIT, _USERINITFXN, _ENABLEINST, _SUPPORTCSL, _TRCMASKVALUE, _CALLCSLCFGINIT, _CACHE, _L2CONFIGURE, _L1PMODE, _L1DMODE, _L2MODE, _L2MAR0_31, _L2MAR32_63, _L2MAR64_95, _L2MAR96_127, _L2MAR128_159, _L2MAR160_191, _L2MAR192_223, _L2MAR224_255, _ENABLE_SK, _GEMTRUECOMPEN, _BCACHEREADADDR0, _BCACHEREADADDR1, _BCACHEREADADDR2

    You mentioned dsplib release in April. Did such a thing happen? If not, what else can I do?

  • Please copy/paste your compiler and linker options here.  Also, do Help -> About to let me know CCS version, BIOS version, codegen version.  It might also be helpful if you Rebuild All and copy/paste the entire build output.

  • compiler options:

    -g -pdr -fr"$(Proj_dir)\Debug" -i"$(Proj_dir)" -i"." -d"_DEBUG" -mv6740

     

    linker options:

    -c -m".\Debug\mutex.map" -o".\Debug\mutex.out" -w -x -i"%BIOS_INSTALL_DIR%/packages/ti/rtdx/lib/c6000"

    Build output:

    -----------------------------  mutex.pjt - Debug  -----------------------------
    [mutex.tcf] "C:\CCStudio_v3.3\bios_5_33_03\xdctools\tconf" -b -Dconfig.importPath=".;../;C:/CCStudio_v3.3/bios_5_33_03/packages/ti/bios/examples/common;C:/CCStudio_v3.3/bios_5_33_03/packages" mutex.tcf

    [mutex.c] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -g -pdr -fr"C:/CCStudio_v3.3/bios_5_33_03/packages/ti/bios/examples/basic/mutex/evmOMAPL137/Debug" -i"C:/CCStudio_v3.3/bios_5_33_03/packages/ti/bios/examples/basic/mutex/evmOMAPL137" -i"." -d"_DEBUG" -mv6740 -@"evmOMAPL137/Debug.lkf" "mutex.c"

    [mutexcfg.s62] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -g -pdr -fr"C:/CCStudio_v3.3/bios_5_33_03/packages/ti/bios/examples/basic/mutex/evmOMAPL137/Debug" -i"C:/CCStudio_v3.3/bios_5_33_03/packages/ti/bios/examples/basic/mutex/evmOMAPL137" -i"." -d"_DEBUG" -mv6740 -@"Debug.lkf" "mutexcfg.s62"
    "mutexcfg.s62", ERROR!   at line 365: [ ***** USER ERROR ***** - ]
             Project build options do not match Global configuration settings.
               Compiler options do not specify -mv64+, but configuration is for
               C64x+
                    .emsg "Project build options do not match Global configuration settings.  Compiler options do not specify -mv64+, but configuration is for C64x+"

    "mutexcfg.s62", ERROR!   at EOF: [E0300] The following symbols are undefined:
    2 Assembly Errors, No Assembly Warnings
      GBL_L2MARMASK
      HWI_INTRMULTLOW
      HWI_INTRMULTHIGH

    Errors in Source - Assembler Aborted

    >> Compilation failure

    [mutexcfg_c.c] "C:\CCStudio_v3.3\C6000\cgtools\bin\cl6x" -g -pdr -fr"C:/CCStudio_v3.3/bios_5_33_03/packages/ti/bios/examples/basic/mutex/evmOMAPL137/Debug" -i"C:/CCStudio_v3.3/bios_5_33_03/packages/ti/bios/examples/basic/mutex/evmOMAPL137" -i"." -d"_DEBUG" -mv6740 -@"Debug.lkf" "mutexcfg_c.c"

    Build Complete,
      2 Errors, 0 Warnings, 0 Remarks.

  • Which CCS version and compiler?

  • 3.3.38.2

    IDE: 5.98.0.219

    BIOS: 5.33.03

    Code Generation Tools: v6.08

  • Support for the C6747 started at CGT 6.1.5, I would advise to get the latest one because some bugs were corrected since then... After installing, please see article below for component version settings:

    http://tiexpressdsp.com/index.php/-mv_option_to_use_with_the_C6747

     

  • The mutex project now builds, but I can't load the program onto my target board. (target types disagree)

    Since I need to build for my custom board, I need to change the tcf file to point to my "platform". I have created a gel file, but I don't know how to generate a "platform" directory and contents. (I tried to do it on the Linux box because I have the same problem when I try to load the symbol table from the server build. I've tried copying the evmOMAPL137 platform, renaming it, changing every filename that had evmOMAPL137 in it, changing the contents of every file to use my platform name, etc. When I tried to "make" it on the Linux box, it said it was missing a schema file. Do I need to make it? That is, if I've changed all the files, is that sufficient?

    I would then edit the tcf file to identify the new location and name of the platform?

     

  • Look in the Platform.tci file.  Look for this piece:

    Platform.tci said:

    /*
     * The following comment is used by the Graphical Config Tool:
     * !DESCRIPTION 6XXX!  evmOMAPL137 (300 MHz) with 16 Mbytes SDRAM
     * !NAME! ti.platforms.evmOMAPL137
     */

    The !NAME! field is actually really important even though it's part of a comment.  It has to exactly match your directory structure.  In this case the Platform.tci file is located in a directory ti/platforms/evmOMAPL137 and so that is why name is ti.platforms.evmOMAPL137.  If you put yours in a directory called mycompany/myplatforms/cur_proj then you would need to set the !NAME! field to mycompany.myplatforms.cur_proj.

    Also, let's say the complete path of that platform is C:\work\mycompany\myplatforms\cur_proj.  In your project options on the DspBiosBuilder tab you should add a path for C:\work.

    Finally, in your tcf file, e.g. mutex.tcf, your loadPlatform() should load mycompany.myplatforms.cur_proj.

    This should really be a wiki page...  Thanks for your patience.

    Brad

     

  • I'm trailing a bit, but I made some updates to this page:

    http://wiki.davincidsp.com/index.php/-mv_option_to_use_with_the_C6747

    I also added this page:

    http://wiki.davincidsp.com/index.php/Updating_Code_Generation_Tools_in_CCS_3.3

    I'm going to wait a bit to make a wiki article on how to create your own platform.  The procedure is going to change a little bit when BIOS 5.41 gets released (month or two?).  Right now CCS 3.3 uses BIOS 5.33 and uses the procedure above.  CCS 4.0 uses BIOS 5.40 and uses a slightly different procedure because all the platforms have "migrated" to the xdctools product which has been ripped out of BIOS.  The 5.41 release is targeted to work on both CCS 3.3 and CCS 4.0.  So once that comes out we can create a wiki page with a uniform procedure.  Until then, this thread will be the authoritative source!

    Brad

  • I tried creating the platform in the bios... directory, but under "myplatforms". I couldnt' get that to build. (Lots of Java whines.) I moved the whole thing into ti/platforms, and it built fine. (Yes, I had added the directory to the dsp builder tab. It found my file just fine, just couldn't build it.)

    After many resets, power cycles, etc, I managed to connect to the board.

    I opened the project and tried to load the file, but it still says that the file (mutex.out) does not match the target type. I'm going to attach files associated with this and hope you can let me know why the target types don't match. (Okay, well I can attach a single file, so here is the mutex.tcf file:

    /*
     *  Copyright 2008 by Texas Instruments Incorporated.
     *  All rights reserved. Property of Texas Instruments Incorporated.
     *  Restricted rights to use, duplicate or disclose this code are
     *  granted through contract.
     *
     *  @(#) DSP/BIOS_Examples 5,3,3 11-19-2008 (biosEx-j04)
     */
    /*
     *  ======== mutex.tcf ========
     *  Configuration script used to generate the example's configuration files
     */

    /*
     *  Load the evmOMAPL137 settings that are common to most examples.
     */

    utils.loadPlatform("ti.platforms.HIO_OMAP_L137_DSP");

    /*
     *  Import the bios settings that are common to evmOMAPL137.
     */

    utils.importFile("evmOMAPL137_common.tci");

    /*
     *  Import the mutex configuration settings that apply to all platforms.
     */

    utils.importFile("mutex.tci");

    // !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!

    if (config.hasReportedError == false) {
        prog.gen();
    }

     

  • Your platform should be able to go anywhere so there must have been a path issue.  I recommend keeping it outside the BIOS directory so that you can update to new versions of BIOS without having to keep copying it to new versions.  Please post the exact error message or "java whines" that you were seeing (if you decide to pursue it).

    So can you connect to your board without any problems?  Which CCS configuration are you using (or which was it based on)?  Were you able to run the (original) example on the EVM?  Please post the exact error message.

  • Sorry it takes me so long to respond. I'm trying two different paths to resolve my SEM_pend hang, and one of them requires the boot switches in one position and the other in a different position.

    I no longer have an evm board. It is on loan to someone doing driver development. I'm using the target board. Therefore, I have no indication of whether the project successfully loads on the evm board.

    I can successfully connect. When I try to load my target (mutex.out), I see a pop-up. The banner on the pop-up is "Error". The text is

    "File:

    C:\CCStudio_v3.3\bios_5_33_03\packages\ti\bios\examples\basic\mutex\evmOMAPL137\Debug\mutex.out

    Does not match the target type, not loaded."

    There is an "OK" button. No other options are given.

    Note that the tcf file change that I posted is in the identified directory. That is, I changed the example without copying it elsewhere. (I have the bios package, so I can re-install if I break things too much.)

    I'm unlikely to try a new location for the platform until after I debug the current issue.

  • Can I see a screenshot of your cc_setup?

  • Sorry, it's not obvious to me what's the issue!  Which emulator are you using?  Did you setup that board from scratch or did you just take the one from the EVM and add your own gel file?

    I've attached the out file as built by one of the examples using BIOS 5.33.04 and codegen 6.1.10.  Are you able to load it?  (Note: I've not been able to try it out myself because I'm not in the office right now with a board handy.)

     

    mutex.zip
  • FYI, I was able to load it in a 674x simulator (aside from the error about having the wrong RTDX protocol).

  • I hope I'm answering the right question. I'm using a

    Spectrum Digital XDS510USB Plus JTAG.

    I can get more info after a lengthy meeting that I'll be attending. (Don't hold your breath.)

     

     

  • I connected to the board, but when I try to load (your) mutex.out, CCS presents the same error pop-up as I described before.

    Yeah, I don't get it either.

  • I have a suspicion of what the issue could be...  From an emulation perspective the 674x core gets treated like a 64x+ core.  However, I see in the BIOS projects they have treated the core like a 67x core, i.e. if you open the pjt file in a text editor you should see a field CPUFamily=TMS320C67XX.  Try changing that to TMS320C64XX and rebuilding the entire project.  (Note that this will cause CCS to use code generation tools as determined by the TMS320C64XX section in the Component Manager when you make the change so make sure that it's pointing to the correct/new tools you installed.)

  • I finally got a chance to try things out with real hardware instead of the simulator.  I don't see the issue you are, i.e. that mutex.out file loads and runs without any issue.

    I suggest that you quickly borrow one of the EVMs and see if you can connect to it and load/run your program with your emulator.

    Brad

  • I had a customer this week that was having the same symptoms and the problem was that he was using the eval version that does not come with SR 12. So if you are using the full version, please make sure that you have SR 12 installed, or even if you have the CCS setup correctly configured, you might fail to load the program for C674x core.