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.

RTOS/TMS320C6413: DSP BIOS configuration file

Part Number: TMS320C6413
Other Parts Discussed in Thread: TMS320C6416

Tool/software: TI-RTOS

Hello,

I need to create a project using DSP BIOS kernel on a board based upon a TMS320C6413 DSP.

With the DSP BIOS distribution I 've just downloaded, the TI available platforms do not contain (at least not directly) reference to TMS320C6413 DSP.

Which existing plateform would be the best to use for this DSP (perhaps sim64xx ?) ?

Best regards.

Paul-Henri

  • Hi Paul-Henri,

    The team is notified. They will post their feedback directly here.

    BR
    Tsvetolin Shulev
  • Paul-Henri,

    What version of DSP/BIOS are you on? You can certainly try the sim64xx to see if that works for you.
    I don't see this one...I only see sim6xxx and sim64Pxx. sim6xxx would be better.
    Or you can create your own platform and specify your memory map accordingly.

    Judah
  • Hello Judah,

    I use CC studio V8.1.0.

    With this release, when I create a new DSP Bios configuration file project, I'm not able to select the ti platform sim6xxx (not proposed in the dialog box, even if there is a sim6xxx directory in the ti\bios_5_42_02_10\packages\ti\platforms directory.

    I will continue trying to generate a configuration file which I hope will compile and work.

    Thank you.

    Regards.

    Paul-Henri

  • Hi,

    Did this get resolved?

    Todd
  • Hi,

    Not fully resolved...

    I started with the 64xx platform and specify TMS C6413:

    utils.loadPlatform("ti.platforms.sim64xx", {deviceName: '6413'});

    /* The following DSP/BIOS Features are enabled. */
    bios.enableRealTimeAnalysis(prog);
    bios.enableRtdx(prog);
    bios.enableTskManager(prog);

    bios.MEM.instance("SDRAM").destroy();
    bios.GBL.CLKIN = 33333;
    bios.GBL.CLKOUT = 400.0000;
    bios.GBL.ENDIANMODE = "big";
    bios.GBL.ENABLEINST = 0;
    bios.GBL.INSTRUMENTED = 0;
    bios.GBL.ENABLEALLTRC = 0;
    // !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!

    prog.gen();

    When I try to compile my project which includes this DSP BIOS configuration file, I have some compilation errors in my .h62 genrated file. I have a first error on KNL_swi function:

    ;; ======== SWI_Obj KNL_swi ========
    ;; This Software Interrupt calls the TSK scheduler
    ;;
    ;; SWI_Obj KNL_swi (function, pri, mailbox, arg0, arg1, dorta, Order, filter, maxformat, sumformat, avgformat, filtmaxmult, filtsummult, unittype)
    .global KNL_swi
    .asg _KNL_run, _function
    .asg 00H, _pri
    .asg 00H, _mailbox
    .asg 00H, _arg0
    .asg 00H, _arg1
    .asg 01H, _dorta
    .asg 00H, _Order
    .asg 02H, _filter
    .asg "%g inst", _maxformat
    .asg "%g inst", _sumformat
    .asg "%.2f inst", _avgformat
    .asg 01H, _filtmaxmult
    .asg 01H, _filtsummult
    .asg 00H, _unittype
    SWI_Obj 1, KNL_swi, 0, _function, _pri, _mailbox, _arg0, _arg1, _dorta, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype

    The compiler gives the following error:

    >> Compilation failure
    subdir_rules.mk:26: recipe for target 'rgwycfg.obj' failed
    "rgwycfg.s62", ERROR! at line 842: [E0003] Invalid constant specification
    SWI_Obj 1, KNL_swi, 0, _function, _pri, _mailbox, _arg0, _arg1, _dorta, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype

    "rgwycfg.s62", REMARK at line 842: [R0001] After symbol substitution the line became:
    SWI_Obj 1, KNL_swi, 0, _KNL_run, 00H, 00H, 00H, 00H, 01H, 00H, 02H, %g inst, %g inst, %.2f inst, _filtmaxmult, _filtsummult, _unittype

    I suppose the problem comes from the _maxformat, _sumformat, _avgformat which are not correctly defined, but I don't know how to define them in the configuration tool.

    Can you help ?

    Best regards.

    Paul-Henri

  • Paul-Henri,

    Sorry, I think I was looking at BIOS 6.x instead of BIOS 5.x platforms....

    So what I did was created a new CCS Project.
    Under DSP/BIOS v5.xx Examples select the "hello example" from the "sim6416 Examples".

    Then I took your code above and modified the hello.tcf to match it.  I had to modify the hello.c and update some endian settings for my compiler options.
    After doing that, my program build fine.  The error you are getting is most likely due to a mismatch of DSP/BIOS version.
    Could you double check that the DSP/BIOS version is the version from which you created the project?
    I'm assuming you have multiple DSP/BIOS v5 in your installation.

    Judah

  • Hello Judah,

    I have try to follow your recommandation. I have created a new project based upon BDP/BIOS/sim6416/hello example project :

    My project properties is the following:

    When I try to compile it, I have exactly the same error as with my project:

    "hellocfg.s62", ERROR! at line 887: [E0003] Invalid constant specification
    SWI_Obj 1, KNL_swi, 0, _function, _pri, _mailbox, _arg0, _arg1, _dorta, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype

    "hellocfg.s62", REMARK at line 887: [R0001] After symbol substitution the line became:
    SWI_Obj 1, KNL_swi, 0, _KNL_run, 00H, 00H, 00H, 00H, 01H, 00H, 02H, %g inst, %g inst, %.2f inst, _filtmaxmult, _filtsummult, _unittype

    I have checked that I have only one DSP BIOS distribution on my PC....

    Any other idea ?

    Best regards.

    Paul-Henri

  • Can you attach the full build output (and not just the error)? Please place it into a file and attach it (instead of copy/paste into a reply since the thread gets really long).

    Thanks,
    Todd
  • Paul,

    Here's my full build log:


    **** Build of configuration Debug for project test1 ****

    "C:\\ti\\ccsv6.2.0.48\\ccsv6\\utils\\bin\\gmake" -k all
    'Building file: ../hello.tcf'
    'Invoking: TConf'
    "C:/ti/ccsv6.2.0.48/bios_5_42_02_10/xdctools/tconf" -b -Dconfig.importPath="C:/ti/ccsv6.2.0.48/bios_5_42_02_10/packages;" "../hello.tcf"
    remark:Sim64xx platform is configured for 6413 device. To change the configuration to another 64xx device, please add that device as a parameter to utils.loadPlatform() call in your TCF file. Ex:
    utils.loadPlatform('ti.platforms.sim64xx', {deviceName: '###'});

    For more information, please refer to Chapter 4 of the Tconf User's Guide
    (SPRU007G)
    'Finished building: ../hello.tcf'
    ' '
    'Building file: ../hello.c'
    'Invoking: C6000 Compiler'
    "C:/ti/ccsv6.2.0.48/ccsv6/tools/compiler/c6000_7.4.18/bin/cl6x" -mv6400 --big_endian --abi=coffabi -g --include_path="C:/ti/ccsv6.2.0.48/ccsv6/tools/compiler/c6000_7.4.18/include" --include_path="C:/Users/a0783947/workspace_v6_2_0_48k/test1/Debug" --include_path="C:/ti/ccsv6.2.0.48/bios_5_42_02_10/packages/ti/bios/include" --include_path="C:/ti/ccsv6.2.0.48/bios_5_42_02_10/packages/ti/rtdx/include/c6000" --diag_wrap=off --diag_warning=225 --display_error_number --preproc_with_compile --preproc_dependency="hello.d" "../hello.c"
    'Finished building: ../hello.c'
    ' '
    'Building file: hellocfg.s??'
    'Invoking: C6000 Compiler'
    "C:/ti/ccsv6.2.0.48/ccsv6/tools/compiler/c6000_7.4.18/bin/cl6x" -mv6400 --big_endian --abi=coffabi -g --include_path="C:/ti/ccsv6.2.0.48/ccsv6/tools/compiler/c6000_7.4.18/include" --include_path="C:/Users/a0783947/workspace_v6_2_0_48k/test1/Debug" --include_path="C:/ti/ccsv6.2.0.48/bios_5_42_02_10/packages/ti/bios/include" --include_path="C:/ti/ccsv6.2.0.48/bios_5_42_02_10/packages/ti/rtdx/include/c6000" --diag_wrap=off --diag_warning=225 --display_error_number --preproc_with_compile --preproc_dependency="hellocfg.d" "hellocfg.s??"
    'Finished building: hellocfg.s??'
    ' '
    'Building file: hellocfg_c.c'
    'Invoking: C6000 Compiler'
    "C:/ti/ccsv6.2.0.48/ccsv6/tools/compiler/c6000_7.4.18/bin/cl6x" -mv6400 --big_endian --abi=coffabi -g --include_path="C:/ti/ccsv6.2.0.48/ccsv6/tools/compiler/c6000_7.4.18/include" --include_path="C:/Users/a0783947/workspace_v6_2_0_48k/test1/Debug" --include_path="C:/ti/ccsv6.2.0.48/bios_5_42_02_10/packages/ti/bios/include" --include_path="C:/ti/ccsv6.2.0.48/bios_5_42_02_10/packages/ti/rtdx/include/c6000" --diag_wrap=off --diag_warning=225 --display_error_number --preproc_with_compile --preproc_dependency="hellocfg_c.d" "hellocfg_c.c"
    'Finished building: hellocfg_c.c'
    ' '
    'Building target: test1.out'
    'Invoking: C6000 Linker'
    "C:/ti/ccsv6.2.0.48/ccsv6/tools/compiler/c6000_7.4.18/bin/cl6x" -mv6400 --big_endian --abi=coffabi -g --diag_wrap=off --diag_warning=225 --display_error_number -z -m"test1.map" -i"C:/ti/ccsv6.2.0.48/ccsv6/tools/compiler/c6000_7.4.18/lib" -i"C:/ti/ccsv6.2.0.48/ccsv6/tools/compiler/c6000_7.4.18/include" -i"C:/ti/ccsv6.2.0.48/bios_5_42_02_10/packages/ti/rtdx/lib/c6000" -i"C:/ti/ccsv6.2.0.48/bios_5_42_02_10/packages/ti/bios/lib" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="test1_linkInfo.xml" --rom_model -o "test1.out" "./hello.obj" "./hellocfg.obj" "./hellocfg_c.obj" -l"./hellocfg.cmd" -llibc.a
    <Linking>
    'Finished building target: test1.out'
    ' '

    **** Build Finished ****

  • Hi Judah,

    Could you please attach the complete project in a .zip file?
    That would help everybody could look at the config and src files.

    Thanks in advance!
    A.
  • Judah,
    Thanks!

    Paul-Henri,
    You might want to make a "DIFF" to compare the different files of your project vs Judah's project.
    This could help to highlight the config differences.

    A.

  • I am having this exact same problem with my CCS 8.1 project that has some similar configurations. Hopefully this info helps find a solution to this mutual problem.

    DSP Device: TMS320C6416
    Compiler: TI v7.4.24 (Same C6000 compiler as Paul-Henri)
    DSP/BIOS: 5.42.0.07
    Output format: legacy COFF
    Device endianness: little

    Based on some tests on this end, the problem seems to be somehow related to the symbol substitution being done for the _avgformat string in the <proj>cfg.s62 file that is being replaced with the string "%.2f inst" as part of the C6000 device CDB template file of dspbios.

    For some reason, the 7.4.24 C6000 compiler does not seem to like "%f" formatting directives for printf format strings. Based on some hints from other posts, I was able to hack the <proj>cfg.s62 file to replace the "%.2f" substitutions with "%.2g" format strings, and this change lets the build proceed past the assembler errors, but this is not a fix, just a way to temporarily hack past the assembler errors. The problem returns as soon as the project is cleaned and rebuilt.

    Bob
  • A bit of additional new info.  I was able to install C6000 compiler V7.3.23 and just tested my same project with a clean build. 

    The build is successful with the older C6000 compiler.  The only configuration change I made was selecting the V7.3.23 compiler version.

    I have a team member who seems to have also successfully built the same project with an older version of CCS using the V7.4.12 compiler version. 

    It looks like Judah did not have problems building with V7.4.18, so it looks like the problem is likely to occur somewhere between C6000 V7.4.18 and V7.4.24.  CCS 8.1 doesn't let me install any other 7.4 variants prior to 7.4.24, since 7.4.24 is the latest update.

    Does anyone know how to make CCS install compiler sub-releases, even if a more recent update is available?  Anyone know if the test project was built successfully with a C6000 compiler version between 7.4.18 and 7.4.24?

    Bob

  • I was able to uninstall C6000 V7.4.24 and reinstall the V7.4 compiler with a couple of earlier releases to rebuild my project.

    It looks like this problem is specific to C6000 V7.4.24. The build works fine with V7.4.23, but fails with V7.4.24.

    Bob
  • Hi Judah,

    The trouble comes from the release of the C6000 compiler.

    I have no trouble with release 7.4.23. The trouble comes with 7.4.24.

    Thank you for you help !

    Paul-Henri