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.

TMS28035的CCS编译错误问题



TI的例程程序,我使用FLASH.CMD文件可以编译通过,没有错误,顺利生成.OUT文件。但是转到RAM.CMD文件就会出现错误无法通过编译。

在主程序中有如下语句

只有在FLASH中运行才能执行。为什么在RAM.CMD中会出现倒数2,3,4项错误?请工作人员帮忙解释一下。谢谢!

  • 确定RAM.CMD之后,还要以下配置中,将FLASH的宏定义拿掉

  • 如果在RAM里面运行,预编译请不要定义FLASH,因为RAM的CMD文件里面,没有定义那几个量

  • 你好!非常感谢

    我按照你的说法操作,错误减少了很多,但是还有3个。麻烦指导一下。错误如下:

    第一个和第三个均指向RAM.CMD文件的结尾处,如下图

    我这个是在调试状态,为什么还会有第二个问题出现?应该不用生成.OUT文件吧。麻烦你了谢谢!

  • b调试也是需要将编译生成的.out文件加载到芯片里面进行仿真的?

    从问题看应该是CMD的问题,提示段有冲突,你使用的是TI的例程吗?有更改过吗?

    如果是TI例程我可以帮你看一下。

  • 确认是否将SolarHV_DCAC-F28035_Flash.CMD exclude掉了(工程中变成灰色), 是否正确将SolarHV_DCAC-F28035_RAM.cmd加到工程中了.

    程序的默认RAM配置是没有问题的.

  • 我是按照你说的这样做的。CMD文件是TI例程自带的 我没有做过修改。

  • 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

    ADCDRVRAM : origin = 0x009800, length = 0x000020
    PFCICMDRAM : origin = 0x009820, length = 0x000020
    GENSINCOS : origin = 0x009840, length = 0x000020
    PWMDRVRAM : origin = 0x009860, length = 0x000020
    CNTL2P2ZRAM : origin = 0x009880, length = 0x000030
    dataRAM1 : origin = 0x0098b0, length = 0x000010
    CNTL2P2ZBUFF : origin = 0x0098c0, length = 0x000030
    DLOG : origin = 0x009900, length = 0x000020

    dataRAM : origin = 0x009920, length = 0x000680

    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 : > progRAM, 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

    /* Uncomment the section below if calling the IQNexp() or IQexp()
    functions from the IQMath.lib library in order to utilize the
    relevant IQ Math table in Boot ROM (This saves space and Boot ROM
    is 1 wait-state). If this section is not uncommented, IQmathTables2
    will be loaded into other memory (SARAM, Flash, etc.) and will take
    up space, but 0 wait-state is possible.
    */
    /*
    IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
    {

    IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)

    }
    */
    /* Uncomment the section below if calling the IQNasin() or IQasin()
    functions from the IQMath.lib library in order to utilize the
    relevant IQ Math table in Boot ROM (This saves space and Boot ROM
    is 1 wait-state). If this section is not uncommented, IQmathTables2
    will be loaded into other memory (SARAM, Flash, etc.) and will take
    up space, but 0 wait-state is possible.
    */
    /*
    IQmathTables3 : > IQTABLES3, PAGE = 0, TYPE = NOLOAD
    {

    IQmath.lib<IQNasinTable.obj> (IQmathTablesRam)

    }
    */

    }


    SECTIONS
    {

    ISRVariables : > dataRAM PAGE = 1
    /************* DPLIB Sections C28x ************************/
    ADCDRV_5ch_Section : > ADCDRVRAM PAGE = 1

    /* CNTL_2P2Z section */
    CNTL_2P2Z_Section : > CNTL2P2ZRAM PAGE = 1
    CNTL_2P2Z_InternalData : > CNTL2P2ZBUFF PAGE = 1
    CNTL_2P2Z_Coef : > dataRAM PAGE = 1

    /*DLOG_4CH section */
    DLOG_4ch_Section : > DLOG PAGE = 1
    DLOG_BUFF : > dataRAM PAGE = 1

    /*MATH_EMAVG section */
    GEN_Sin_Cos_Section : > GENSINCOS PAGE = 1

    /*PFC_ICMD section*/
    INV_ICMD_Section : > PFCICMDRAM PAGE = 1

    /* PWMDRV_PFC2PhiL driver section */
    PWMDRV_FBINV_Section : > PWMDRVRAM PAGE = 1

    /* ZeroNet_Section */
    ZeroNet_Section : > dataRAM PAGE = 1
    DLOG : > dataRAM PAGE = 1
    }

    这个是RAM.CMD文件