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.

Using RTDX with DSK6211

Other Parts Discussed in Thread: CCSTUDIO

Hi,

I try to use RTDX connection with a Dsk6211 and Code composer studio 3.3. When I try to create tcf file with DSP/BIOS config tools. I try to create new configuration
but 6211 is not a listed platform. If I look in the platform directory the DSK6211 is listed. Why it does not appear in the platform list? the only 62xx device
is sim62xx.

I'm also looking for best documentation about RTDX or good tutorial

Thank you

  • My installation of CCS 3.3 with DSP/BIOS 5.33 includes a platform folder for dsk6211. See if you can upgrade your setup using Update Advisor. If you have a full version, you should be able to get the same things installed. My system has SR12 which is CCS 3.3.82.13.

    For information on RTDX, start with the TI ExpressDSP Wiki site, click on Emulation and look for RTDX.

  • I downloaded version 5.33.05 from Ti web site. I tried to create new configuration for DSK6211 but this borad is not in the list when I create a new configuration Why it is not in the list?

  • What version of CCS do you have installed?

    Under the folder C:\CCStudio_v3.3\bios_5_33_01\packages\ti\platforms, is there a folder called dsk6211?

    In CCS under Help->About / Component Manager, make sure DSP/BIOS 5.33.01 is selected. Was it selected already?

  • It is exactly what I don't understand. yes this folder appear in this path.

  • If you see file C:\CCStudio_v3.3\bios_5_33_01\packages\ti\platforms\dsk6211\Platform.tci, it mentions that "dsk6211 platform has been deprecated and it will not be supported in later releases of DSP/BIOS"

    print("Warning: dsk6211 platform has been deprecated.")
    print("It will not be supported in later releases of DSP/BIOS.");

    So you can either go for older version of DSP/BIOS, or you can continue with same version and select dsk6713 and make appropriate changes in configuration file.

    Mitul - www.einfochips.com

  • Ok I think I will continue with latest version with dsk6713 but can you give me more information about  "appropriate changes"

  • I have not tried it myself, but I suspect you could just take the pertinent contents from the C6211 TCI file and replace the equivalents in the C6713 TCI file. Both the boards are similar, the major functional differences are the amount of memory being half in C6211 and the clock rate being lower at 150MHz in the C6211. For example copy:

    dsk6211\Platform.tci said:

    mem_ext[0] = {
        comment: "This object defines space for the DSP's off-chip memory",
        name: "SDRAM",
        base: 0x80000000,
        len:  0x00400000,
        space: "code/data"
    };

    /* Specify the L2 memory setting */
    var device_regs = {
        l2Mode: "SRAM"
    };

    var params = {
        clockRate: 150.0000,
        catalogName: "ti.catalog.c6000",
        deviceName: "6211",
        regs: device_regs,
        mem: mem_ext
    };

    Over the equivalent section in the C6713 TCI:

    dsk6713\Platform.tci said:

    mem_ext[0] = {
        comment: "This object defines 8MB for the DSP's off-chip memory",
        name: "SDRAM",
        base: 0x80000000,
        len:  0x00800000,
        space: "code/data"
    };

    /* Specify the L2 memory setting */
    var device_regs = {
        l2Mode: "SRAM"
    };

    var params = {
        clockRate: 225.0000,
        catalogName: "ti.catalog.c6000",
        deviceName: "6713",
        regs: device_regs,
        mem: mem_ext
    };

    It also looks like you may remove the PLL initialization code from the bottom of the C6713 file as that is not present in the C6211 file.

    dsk6713\Platform.tci said:

    bios.GBL.CALLUSERINITFXN = 1;
    bios.GBL.USERINITFXN = prog.extern("GBL_setPLLto225MHz");

  • Thank you. I will try this solution and I will give you feedback

  • I did changes in 6711 file and I add it to my project. I received this error

     

    [Configuration5.tcf] "C:\CCStudio_v3.3\bios_5_31_02\xdctools\tconf" -b -Dconfig.importPath="C:/CCStudio_v3.3/bios_5_31_02/packages;" Configuration5.tcf
    js: "./Configuration5.tcf", line 11: Heaps are enabled, but the segment for DSP/BIOS Objects (MEM.BIOSOBJSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.BIOSOBJSEG to it.

    I undersand that my heap is not allocated  at the right place for 6211 but I don't know where I can set this value or where to find MEM.BIOSOBJSEG

    My cmd file is

    -stack 0x400
    -heap 0x1000000
    -lrts6200.lib
     
    MEMORY
    {
        vecs:       o = 00000000h   l = 00000200h
        IRAM:       o = 00000200h   l = 00003A98h
        ALLOC:      o = 00003C98h   l = 0000AFC8h                          
        CE0:         o = 80000000h    l = 01000000h
        CE1:         o = 90000000h    l = 01000000h
    }


    SECTIONS
    {
        "vectors"   >       vecs
        .cinit      >       IRAM
        .text       >       IRAM
        .stack      >       ALLOC
        .bss        >       IRAM
        .const      >       IRAM
        .data       >       ALLOC
        .far        >       IRAM
        .switch     >       IRAM
        .sysmem     >       CE0
        .tables     >       IRAM
        .cio        >       IRAM
    }

  • Since you are using DSP/BIOS, you should also be using the linker command file that is generated automatically when Configuration5.tcf is built. The filename is <confignam>cfg.cmd, or in your case Configuration5cfg.tcf. If any additions need to be made for special sections, you can add a small user-linker-cmd file to add those sections. For more information on user linker command files, see the DSP/BIOS User's Guide and search for "create your own linker command".

    The error message you get is due to BIOS requiring two steps to get heaps enabled. The first you have already done, which is to uncheck the box in the tcf file under System->MEM / General tab, "No Dynamic Memory Heaps". If you do this manually, there will be a dialog box that pops up that says "Please reconfigure heaps under individual mem segments". The next step is to right-click on at least one of your memory elements under System->MEM and select Properties, in your case this would be SDRAM unless you changed the name - now check "create a heap in this memory" and set the size to what you require.

    According to the dsk6211 folder's .tci file, there is only 4MB of external memory at 0x80000000, so the amount of heap you have selected in your current cmd file is too large, as is the amount of memory defined for CE0 in the MEMORY part.

    If there is a reason for having the IRAM and ALLOC definitions separated as you have done in your current cmd file, you can do this same thing in your tcf file by shrinking the IRAM definition and inserting a new memory item to be named ALLOC.

  • Hi,

    I think I have done all steps you have suggested  but I always have the same problem.

    This is the text content of my  tcf file

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

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

    bios.MEM.instance("SDRAM").createHeap = 1;
    bios.MEM.instance("SDRAM").heapSize = 0x00008000;
    // !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!

    prog.gen();

    Error

    Configuration1.tcf] "C:\CCStudio_v3.3\bios_5_31_02\xdctools\tconf" -b -Dconfig.importPath="C:/CCStudio_v3.3/bios_5_31_02/packages;" Configuration1.tcf
    js: "./configuration1.tcf", line 13: Heaps are enabled, but the segment for DSP/BIOS Objects (MEM.BIOSOBJSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.BIOSOBJSEG to it.

  • You have enabled your the use of dynamic memory and created a heap in your SDRAM section, but in the code snippet you provided you never actually assigned your heap as the default for BIOS. You need to add something like this below the bios.MEM.instance commands:

    bios.MEM.BIOSOBJSEG = prog.get("SDRAM");
    bios.MEM.MALLOCSEG = prog.get("SDRAM");



    This will define your SDRAM heap as the default for BIOS objects and malloc-like calls. If using the GUI you can find two drop-downs in the System->Memory Section Manager properties (right click->properties).

  • I have added these lines and it corrects my error. I have an other error but I suppose it is very simple. It probably a lib inclusion problem The linker error is

     

    TARGET_INITIALIZE               C:\\Document\\Contrat\\DSP\\Program\\TestRTDX\\Debug\\main.obj
    >>   error: symbol referencing errors - './Debug/TestRTDX.out' not built

     

    My main function is

    #include <rtdx.h>

    RTDX_CreateOutputChannel(D2A_channel);

    int main ( )
    {
        TARGET_INITIALIZE();                /* Enable RTDX interrupt */
        return 0;
    }

    When I add TARGET_INITIALIZE function it creates this linker error. I haved added the rtdx.lib in  \c6000\rtdx\lib dirrectory. I also add this dirrectory and lib in build option.

     

    Thank you

     

  • This error occurs because the linker is not able to find a function or label named TARGET_INITIALIZE. The compiler should have given you a warning that it did not know what TARGET_INITIALIZE was, then the linker fails because it cannot find it.

    Please refer to whatever example code you got this from and follow all the steps there.

  • It is exactly what I have tried. I have tried with example described in chapter 6 of TMS320C6000 Code Composer Studio Tutorial SPRU301A. but when I open volume.mak it is not able to convert this old format to the new tcf format. CCS did many errors. Whe I tried to follow the tutorial CCS does always errors. Where it is possible to download RTDX up to date project.

  • Since we have moved to a second display page on this thread, please allow me to summarize our progress.

    1. You are using a DSK6211 and wish to learn to run RTDX on the DSK6211 using Code Composer Studio 3.3 because it is the latest release.
    2. Mitul pointed out that the DSK6211 is no longer supported with the newer versions of DSP/BIOS and therefore CCS 3.3.
    3. Bernie gave you some direct examples of how to modify your tci file to get past an error.
    4. Randy made suggestions for getting past the DSP/BIOS configuration build errors related to heaps.
    5. Tim wrote specific code to add manually to your tcf to get past those configuration build errors.
    6. You posted a 9-line main function that is causing errors for the linker and I interpreted the error for you.
    7. You pointed out that you are following an example in SPRU301A.

    I believe your choices are between the following:

    • Use the install disks that came with your DSK6211 and run the examples and tutorials using the older version of CCS and BIOS from when the DSK6211 was still supported. The old version of SPRU301 (rev A is not available, but rev C is now available) was probably the one that came with those older versions of CCS and BIOS, and everything should work better there. This will avoid all the pain you have gone through and are still going through, by using the version of tools that were checked out with the DSK6211 that you have.
    • To stay with CCS 3.3 and the DSK6211, you will have to search through all the source files including system header files and project files to figure out where things like TARGET_INITIALIZE are defined and figure out why they are not defined for your case. This will not be a trivial job for you, but will require your skill at C programming and understanding of header files and #defines. This added work for you is because the board you are using is not formally supported by the tools now. The tools have improved, but decisions were made to end support for some platforms including the DSK6211.
    • Acquire a newer development platform that is supported under CCS 3.3. There are many different DSPs and development platforms available. For example, the C6713 DSK retails for usd$395 and includes a DSK version of CCS. Even though it offers floating point support, it is a superset of the C6211 so you can also do equivalent fixed-point programming.
    • Contract with one of the very experienced and knowledgeable TI Third Party partners to help you work through the issues with migrating to CCS 3.3 with the unsupported DSK6211. None of us wants this forum to be used as an advertisement medium, but you have already received some help from one of the TI Third Parties, so that might be of interest if you consider this path.

    When I tried to figure out what you were doing in the 9-line main.c posting, I did a search of SPRU301C for TARGET_INITIALIZE and only found one place in the document where it was mentioned. The code shown on that page included several other header files that you did not include in your listing, and one of the obvious ones, "target.h", was where I found definitions of TARGET_INITIALIZE that were selected based on the definition of other labels or variables. Since you are using a platform that is not explicitly supported, the #ifdef's may be different or missing so you may have to add new ones.

    Since I know nothing more about your project goals, I cannot make an intelligent recommendation as to the best path for you to take.

    Geoffroy Rivet-Sabourin said:

    Where is it possible to download RTDX up to date project?

    Because the DSK6211 is no longer directly supported by DSP/BIOS and CCS, there is no updated project for you. The up-to-date RTDX project would be acquired by moving to a newer development platform, such as the DSK6713.