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.

CCS/TMDSHVMTRPFCKIT: tmdshvmtrpfckit

Part Number: TMDSHVMTRPFCKIT
Other Parts Discussed in Thread: TMS320F28035

Tool/software: Code Composer Studio

dear team,
i am doing my paper on induction motor control on TMDSHVMTRPFCKIT with tms320f28035 control card, but due to limited GPIO pins on this kit; connected to other external circuit in the main board of the kit.i used to load 8bit data GPIO 16,17,18,19,22,24,25,26 pins. also GPIO 06 TO /LDAC of AD7305; GPIO 32,33,39 connected to A0,A1,/WR OF AD7305. these GPIO PINS are not connected external circuit(i.e free).i want to load the result for my case torque, speed and flux from my algorithm, to display and plot at DAC output(AD7305 device). but i get code error. all the information related to this question attached below

update_AD7305();
// To display the system values at DAC output pins
AD7305_CH_A= (PI_out*25);
AD7305_CH_B= (torque*25);
// Plot the circular trajectory of Actual stator flux
AD7305_CH_C= ((d_flux*255)+255)/2;
AD7305_CH_D= ((q_flux*255)+255)/2;

//==========================

void update_AD7305(void)
{
temp=GpioDataRegs.GPADAT.all;
temp&=0xF8B0FFFF;
GpioDataRegs.GPBCLEAR.all=0x00000003;
GpioDataRegs.GPADAT.all=temp|AD7305_CH_A;
GpioDataRegs.GPBCLEAR.bit.GPIO39=1;
GpioDataRegs.GPBSET.bit.GPIO39=1;
GpioDataRegs.GPBSET.bit.GPIO32=1;
GpioDataRegs.GPADAT.all=temp|AD7305_CH_B;
GpioDataRegs.GPBCLEAR.bit.GPIO39=1;
GpioDataRegs.GPBSET.bit.GPIO39=1;
GpioDataRegs.GPBSET.bit.GPIO33=1;
GpioDataRegs.GPADAT.all=temp|AD7305_CH_D;
GpioDataRegs.GPBCLEAR.bit.GPIO39=1;
GpioDataRegs.GPBSET.bit.GPIO39=1;
GpioDataRegs.GPBCLEAR.bit.GPIO32=1;
GpioDataRegs.GPADAT.all=temp|AD7305_CH_C;
GpioDataRegs.GPBCLEAR.bit.GPIO39=1;
GpioDataRegs.GPBSET.bit.GPIO39=1;
GpioDataRegs.GPACLEAR.bit.GPIO06=1;
GpioDataRegs.GPASET.bit.GPIO06=1;
}

//===============================================

  • 1. Please add #include "PeripheralHeaderIncludes.h" in this file you added, and set right #include search path in your project.
    2. Please refer to the GPIO definition in "DSP2803x_Gpio.h" , there is no "GPIO06", it's "GPIO6".

  • thanks a lot. i can fix it based on your comment. but i got another error. how can i fix it.

    "../sources/28035_RAM_lnk.cmd", line 85: error #10263: BEGIN memory range has
    already been specified
    "../sources/28035_RAM_lnk.cmd", line 85: error #10264: BEGIN memory range

    overlaps existing memory range BEGIN
    >> Compilation failure
    "../sources/28035_RAM_lnk.cmd", line 86: error #10263: RAMM0 memory range has
    already been specified
    "../sources/28035_RAM_lnk.cmd", line 86: error #10264: RAMM0 memory range
    overlaps existing memory range RAMM0
    "../sources/28035_RAM_lnk.cmd", line 87: error #10263: RAML0L1 memory range has
    already been specified
    "../sources/28035_RAM_lnk.cmd", line 87: error #10264: RAML0L1 memory range
    overlaps existing memory range RAML0L1
    "../sources/28035_RAM_lnk.cmd", line 88: error #10263: RESET memory range has
    already been specified
    "../sources/28035_RAM_lnk.cmd", line 88: error #10264: RESET memory range
    overlaps existing memory range RESET
    "../sources/28035_RAM_lnk.cmd", line 89: error #10263: IQTABLES memory range
    has already been specified
    "../sources/28035_RAM_lnk.cmd", line 89: error #10264: IQTABLES memory range
    overlaps existing memory range IQTABLES
    "../sources/28035_RAM_lnk.cmd", line 90: error #10263: IQTABLES2 memory range
    has already been specified
    "../sources/28035_RAM_lnk.cmd", line 90: error #10264: IQTABLES2 memory range
    overlaps existing memory range IQTABLES2
    "../sources/28035_RAM_lnk.cmd", line 91: error #10263: IQTABLES3 memory range
    has already been specified
    "../sources/28035_RAM_lnk.cmd", line 91: error #10264: IQTABLES3 memory range
    overlaps existing memory range IQTABLES3
    "../sources/28035_RAM_lnk.cmd", line 93: error #10263: BOOTROM memory range has
    already been specified
    "../sources/28035_RAM_lnk.cmd", line 93: error #10264: BOOTROM memory range
    overlaps existing memory range BOOTROM
    "../sources/28035_RAM_lnk.cmd", line 98: error #10263: BOOT_RSVD memory range
    has already been specified
    "../sources/28035_RAM_lnk.cmd", line 98: error #10264: BOOT_RSVD memory range
    overlaps existing memory range BOOT_RSVD
    "../sources/28035_RAM_lnk.cmd", line 99: error #10263: RAMM1 memory range has
    already been specified
    "../sources/28035_RAM_lnk.cmd", line 99: error #10264: RAMM1 memory range
    overlaps existing memory range RAMM1
    "../sources/28035_RAM_lnk.cmd", line 100: error #10263: RAML2 memory range has
    already been specified
    "../sources/28035_RAM_lnk.cmd", line 100: error #10264: RAML2 memory range
    overlaps existing memory range RAML2
    "../sources/28035_RAM_lnk.cmd", line 101: error #10263: RAML3 memory range has
    already been specified
    "../sources/28035_RAM_lnk.cmd", line 101: error #10264: RAML3 memory range
    overlaps existing memory range RAML3
    warning #10247-D: creating output section "csm_rsvd" without a SECTIONS specification
    warning #10247-D: creating output section "csmpasswds" without a SECTIONS specification
    "../28035_RAM_lnk.cmd", line 112: error #10099-D: program will not fit into available memory. placement with alignment/blocking fails for section ".text" size 0x1295 page 0. Available memory ranges:
    RAML0L1 size: 0xc00 unused: 0xc00 max hole: 0xc00
    error #10010: errors encountered during linking; "dtcimc.out" not built
    gmake: *** [dtcimc.out] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

  • It seems like the cmd file is not correct, some memory ranges have been overlapping defined. You might have a look at below link about how to design a linker command file to link the code to a controller since we didn't have your whole project files.

    processors.wiki.ti.com/.../C2000_Piccolo_One-Day_Workshop_Module_1

    processors.wiki.ti.com/.../Category:C2000_Training

  • thanks a lot for helping,suggestion and comments, know i got this type of error

  • Sorry, it seems like the cmd file is not correct, can't find some sections or the definition of a section is not correct. I can't tell you how to solve this question since there is not enough information you posted. Please post whole cmd file or project. As talked above, you might have a look at the training material to know how to design the cmd file.
  • this is the error, and i attached the whole code below. the code is written on ccsv6.dtcimc.rar

  • It seems like the length of ".text" is not enough and you didn't define correct sections, you might have a look at below threads to understand the .cmd file to re-design it, and you'd better design yourself .cmd file based on a correct example .cmd file.

    Try TMS320C28x Optimizing C/C++ Compiler v5.0.0 User's Guide (www.ti.com/.../spru514p.pdf).

    In addition, you may also find this wiki article helpful:
    processors.wiki.ti.com/.../C28x_Compiler_-_Understanding_Linking

    If you haven't had a chance to look at the workshop material, I think this will help demystify some of the terminology and architecture as well.
    processors.wiki.ti.com/.../C2000_Archived_Workshops
  • Hello Yanming Luo,

    thank you your continuously replaying my questions.  i build my code it shows no error, when i used the file name F28035_RAM_HVACI_Sensored.CMD attached below. but i have the a question in this cmd file. 

    */
    --diag_suppress=16002

    MEMORY
    {
    PAGE 0 :
    /* Note that the memory allocation below does not create sections as necessary for
    the CLA on the F2803x.
    */

    BEGIN : origin = 0x000000, length = 0x000002
    BOOT_RSVD : origin = 0x000002, length = 0x00004E
    RAMM0 : origin = 0x000050, length = 0x0003B0

    progRAM : origin = 0x008000, length = 0x001800

    IQTABLES : origin = 0x3FE000, length = 0x000B50 /* IQ Math Tables in Boot ROM */
    IQTABLES2 : origin = 0x3FEB50, length = 0x00008C /* IQ Math Tables in Boot ROM */
    IQTABLES3 : origin = 0x3FEBDC, length = 0x0000AA /* IQ Math Tables in Boot ROM */

    RESET : origin = 0x3FFFC0, length = 0x000002
    BOOTROM : origin = 0x3FF27C, length = 0x000D44


    PAGE 1 :

    RAMM1 : origin = 0x000480, length = 0x000380

    dataRAM : origin = 0x009800, length = 0x000800

    CLA_CPU_MSGRAM : origin = 0x001480, length = 0x000080
    CPU_CLA_MSGRAM : origin = 0x001500, length = 0x000080
    }


    SECTIONS
    {
    codestart : > BEGIN, PAGE = 0
    ramfuncs : > RAMM0, PAGE = 0

    .text : > progRAM, PAGE = 0

    .cinit : > RAMM0, PAGE = 0
    .pinit : > RAMM0, PAGE = 0
    .switch : > RAMM0, PAGE = 0
    .reset : > RESET, PAGE = 0, TYPE = DSECT

    .stack : > RAMM1, PAGE = 1

    .ebss : > dataRAM, PAGE = 1
    .econst : > dataRAM, PAGE = 1

    .esysmem : > RAMM1, PAGE = 1

    IQmath : > progRAM, PAGE = 0
    IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD

    Cla1ToCpuMsgRAM : > CLA_CPU_MSGRAM, PAGE = 1
    CpuToCla1MsgRAM : > CPU_CLA_MSGRAM, PAGE = 1

    how can i know this cmd file works correctly related to my results from my code? is that the only function of cmd file interface memory with code