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.

[参考译文] 编译器/TMS320F28.027万:CCS

Guru**** 633810 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/614645/compiler-tms320f280270-ccs

部件号:TMS320F28.027万
主题中讨论的其他部件:controlSUITEC2000WARE

工具/软件:TI C/C++编译器

我正在尝试使用ePWM模块生成三相正弦波。这些是一些预定义的变量

#define dead波段37.5
#define TB_PRD 61.351.5625万
#define CLK_DIV TB_DIV4
#define HSPCLK_DIV TB_DIV4

程序卡在epwm2初始化功能。

void InitEPwm1()

EPwm1Regs.PCCTL.bit.CHPFREQ = 1;
EPwm1Regs.PCCTL.bit.CHPEN = 1;

EPwm1Regs.TBPRD = TB_PRD;//设置计时器周期
EPwm1Regs.TBPHS.Half.TBPHS = 0x0000;//相位为0
EPwm1Regs.TBCTR = 0x0000;//清除计数器

//设置TBCLK
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;//计数
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;//禁用相加载
EPwm1Regs.TBCTL.bit.HSPCLKDIV = HSPCLK_DIV;//与SYSCLKOUT的时钟比率
EPwm1Regs.TBCTL.bit.CLKDIV = CLK_DIV;
EPwm1Regs.TBCTL.bit.SYNCOSEL = Tb_ctr_zero;//generar una señal cuando cr = 0。 这是一家很棒的酒店

EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOD;//加载每零个寄存器
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADO;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

//设置比较
EPwm1Regs.CMPA.Half.CMPA = TB_PRD;

//设置操作
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;//将PWM1A设置为零
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;


EPwm1Regs.AQCTLB.bit.CAU = AQ_Clear;//将PWM1A设置为零
EPwm1Regs.AQCTLB.bit.CAD = AQ_SET;

//活动低PWM -设置死区
EPwm1Regs.DBCTL.bit.out模式= DB_FULL启用;
EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
EPwm1Regs.DBCTL.bit.in_mode = DBA_All;
EPwm1Regs.DBRED =死带;
EPwm1Regs.DBFED =死带;

EPwm1Regs.ETSEL.bit.inten = 1;// Habilitar interrupción por evento。
EPwm1Regs.ETSEL.bit.INTSEL = ET_CTRD_CMPA;
EPwm1Regs.ETPS.bit.INTPRD = ET_1ST;//第一个事件中断。
}


void Initepwm2 ()

EPwm2Regs.TBPRD = TB_PRD;//设置计时器周期
EPwm2Regs.TBPHS.Half.TBPHS = EPwm1Regs.TBPRD/3;// TBPHS = 1/3*TBPRD。
EPwm2Regs.TBCTR = 0x0000;//清除计数器

//设置TBCLK
EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;//计数
EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;//禁用相位加载
EPwm2Regs.TBCTL.bit.HSPCLKDIV = HSPCLK_DIV;//与SYSCLKOUT的时钟比率
EPwm2Regs.TBCTL.bit.CLKDIV = CLK_DIV;//仅为观察范围而缓慢
EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;// PWM2 esclavo del PWM1。

//设置比较
EPwm2Regs.CMPA.Half.CMPA = TB_PRD;

//设置操作
EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;//将PWM2A设置为零
EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR;


EPwm2Regs.AQCTLB.bit.CAU = AQ_Clear;//将PWM2A设置为零
EPwm2Regs.AQCTLB.bit.CAD = AQ_SET;

//有源低互补PWM -设置死区
EPwm2Regs.DBCTL.bit.out模式= DB_FULL启用;
EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
EPwm2Regs.DBCTL.bit.in_mode = DBA_All;
EPwm2Regs.DBRED =死带;
EPwm2Regs.DBFED =死带;
}

此问题是否是 由于#define TB_PRD 61.351.5625万 和#define dead波段37.5 提供了浮点值。

有人可以提供一些补救措施吗。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我写这封信是为了告诉您,一位C2000小组成员已被指派担任此职位,应该很快就会回答。

    此致
    Baskaran
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    Mithilesh Chaubey 说:
    此问题是否是 由于#define TB_PRD 61.351.5625万 和#define dead波段37.5 提供了浮点值。

    首先,TBPRD和DBRED/FED都不采用浮动值。 您需要更正该问题。 其次,请参阅以下示例代码:

    C:\ti\controlSUITE\DEVICE_SUPPORT\f2802x0\v230\f2802x0_examples_structs\ePWM_deadband</s>2802

    此致,

    Gautam  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    执行了上述建议,仍然面临同样的问题。
    没有"0x3f73ac"的可用源
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正在等待响应
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mithilesh,

    如果将TBPRD更改为整数值,问题是否会消失? 您是否已使用硬件断点验证通常执行的最后一行代码是什么?

    此致,
    克里斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我已将其更改为整数,但未得到解决。 它在epwm2初始化后被卡在某个位置,并且没有进入epwm1 ISR循环。
    发布完整代码
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    #include "DSP28x_Project.h" //设备标题文件和示例包括文件
    #include "IQMAthLib.h"



    #pragma data_section(sine_table,"IQmathTables";
    _iq30正弦表[512];

    //本文件中找到的函数的prototype语句。

    /************************************************************************ /

    /******************************************************************************************* /

    void InitEPwm1(void);
    void InitEPwm2 (void);
    void InitEPwm3 (void);

    中断无效epwm1_isr (void);


    //本示例中使用的全局变量
    UINT32 EPwm1TimerIntCount;
    UINT16环计数;
    UINT16转换计数;
    UINT32税;
    浮子振幅;


    #define dead波段375
    #define TB_PRD 6000
    #define CLK_DIV TB_DIV4
    #define HSPCLK_DIV TB_DIV4

    Void主(void)

    //步骤1. 初始化系统控制:
    // PLL,看门狗,启用外设时钟
    //此示例函数位于DSP2802x_sysctrl.c文件中。
    InitSysCtrl();

    //步骤2. 初始化GPIO:
    //此示例函数位于DSP2802x_GPIO.c文件和中
    //说明了如何将GPIO设置为其默认状态。
    // InitGpio();//跳过此示例

    //在这种情况下,只需初始化ePWM1,ePWM2,ePWM3的GPIO引脚
    //这些函数位于DSP2802x_ePWM.c文件中
    Initepwm1gpio();
    Initepwm2gpio();
    Initepwm3gpio();

    //步骤3. 清除所有中断并初始化PIE矢量表:
    //禁用CPU中断
    色调;

    //将PIE控件寄存器初始化为其默认状态。
    //默认状态是禁用所有PIE中断和标志
    //被清除。
    //此函数位于DSP2802x_PIECTRL.c文件中。
    InitPieCtrl();

    //禁用CPU中断并清除所有CPU中断标志:
    IER = 0x0000;
    IFR = 0x0000;

    //使用指向外壳中断的指针初始化PIE矢量表
    //服务例程(ISR)。
    //这将填充整个表,即使中断也是如此
    //在本例中不使用。 这对于调试非常有用。
    // shell ISR例程可在DSP2802x_DefaultIsr.C.中找到
    //此函数位于DSP2802x_PieVect.C.中
    InitPieVectorTable();

    //本示例中使用的中断被重新映射到
    //此文件中找到ISR函数。
    EALLOW;//这是写入EALLOW保护寄存器所必需的
    PieVectorTable.EPWM1_INT =&epwm1_ISR;
    // PieVectorTable.ADCINT1 =&ADC_ISR;
    EDIS;//这是禁用写入EALLOW保护寄存器所必需的

    //步骤4. 初始化所有设备外围设备:
    //此函数位于DSP2802x_InitPeripherals.c中
    // InitPeripherals();//本示例不需要


    EALLOW;
    SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
    EDIS;

    InitEPwm1();
    Initepwm2 ();
    InitEPwm3();

    EALLOW;
    SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
    EDIS;

    //步骤5. 用户特定代码,启用中断
    //初始化计数器:
    EPwm1TimerIntCount = 0;

    //启用连接到EPWM1-3 INT的CPU INT3:
    IER |= M_INT3;
    IER || M_INT1;//启用CPU中断1

    //在PIE中启用ePWM INTN:组3中断1-3
    PieCtrlRegs.PIEIER1.bit.INTx1 =1;//在饼图中启用INT 1.1
    PieCtrlRegs.PIEIER3.bit.INTx1 = 1;
    PieCtrlRegs.PIEIER3.bit.INTx2 = 1;
    PieCtrlRegs.PIEIER3.bit.INTx3 = 1;

    //启用全局中断和更高优先级的实时调试事件:
    EINT;//启用全局中断INTM
    ERTM;//启用全局实时中断DBGM


    //步骤6。 空闲循环。 只需坐下来永远循环(可选):
    对于(;;)

    ASM (" NOP");
    }

    }

    中断无效epwm1_isr (无效)

    查找表中的静态无符号int索引=0;//索引。
    EALLOW;
    SysCtrlRegs.WDKEY = 0xAA;//Whatchdog服务#2。
    EDIS;

    EPwm1Regs.CMPA.Half.CMPA =(EPwm1Regs.TBPRD)-_IQsat (_IQ30pudy ((sin_table[index]+_IQ30 (0.9999))/2,EPwm1Regs.TBPRD),EPwm1Regs.TBPRD,0);
    EPwm2Regs.CMPA.Halt.CMPA = EPwm1Regs.CMPA.Halt.CMPA;
    EPwm3Regs.CMPA.Halt.CMPA = EPwm1Regs.CMPA.Halt.CMPA;

    索引+=1;
    如果(索引> 511)索引= 0;
    //清除此计时器的INT标志
    EPwm1Regs.ETCLR.bit.INT = 1;
    //确认此中断以接收来自组3的更多中断
    PieCtrlRegs.PIEACG.ALL = PIEACK_Group3;
    }

    void InitEPwm1()

    EPwm1Regs.PCCTL.bit.CHPFREQ = 1;
    EPwm1Regs.PCCTL.bit.CHPEN = 1;

    EPwm1Regs.TBPRD = TB_PRD;//设置计时器周期
    EPwm1Regs.TBPHS.Half.TBPHS = 0x0000;//相位为0
    EPwm1Regs.TBCTR = 0x0000;//清除计数器

    //设置TBCLK
    EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;//计数
    EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;//禁用相加载
    EPwm1Regs.TBCTL.bit.HSPCLKDIV = HSPCLK_DIV;//与SYSCLKOUT的时钟比率
    EPwm1Regs.TBCTL.bit.CLKDIV = CLK_DIV;
    EPwm1Regs.TBCTL.bit.SYNCOSEL = Tb_ctr_zero;//generar una señal cuando cr = 0。 这是一家很棒的酒店

    EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOD;//加载每零个寄存器
    EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADO;
    EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

    //设置比较
    EPwm1Regs.CMPA.Half.CMPA = TB_PRD;

    //设置操作
    EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;//将PWM1A设置为零
    EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;


    EPwm1Regs.AQCTLB.bit.CAU = AQ_Clear;//将PWM1A设置为零
    EPwm1Regs.AQCTLB.bit.CAD = AQ_SET;

    //活动低PWM -设置死区
    EPwm1Regs.DBCTL.bit.out模式= DB_FULL启用;
    EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
    EPwm1Regs.DBCTL.bit.in_mode = DBA_All;
    EPwm1Regs.DBRED =死带;
    EPwm1Regs.DBFED =死带;

    EPwm1Regs.ETSEL.bit.inten = 1;// Habilitar interrupción por evento。
    EPwm1Regs.ETSEL.bit.INTSEL = ET_CTRD_CMPA;
    EPwm1Regs.ETPS.bit.INTPRD = ET_1ST;//第一个事件中断。
    }


    void Initepwm2 ()


    EPwm2Regs.TBPRD = TB_PRD;//设置计时器周期
    EPwm2Regs.TBPHS.Half.TBPHS = EPwm1Regs.TBPRD/3;// TBPHS = 1/3*TBPRD。
    EPwm2Regs.TBCTR = 0x0000;//清除计数器

    //设置TBCLK
    EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;//计数
    EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;//禁用相位加载
    EPwm2Regs.TBCTL.bit.HSPCLKDIV = HSPCLK_DIV;//与SYSCLKOUT的时钟比率
    EPwm2Regs.TBCTL.bit.CLKDIV = CLK_DIV;//仅为观察范围而缓慢
    EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;// PWM2 esclavo del PWM1。

    //设置比较
    EPwm2Regs.CMPA.Half.CMPA = TB_PRD;

    //设置操作
    EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;//将PWM2A设置为零
    EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR;


    EPwm2Regs.AQCTLB.bit.CAU = AQ_Clear;//将PWM2A设置为零
    EPwm2Regs.AQCTLB.bit.CAD = AQ_SET;

    //有源低互补PWM -设置死区
    EPwm2Regs.DBCTL.bit.out模式= DB_FULL启用;
    EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
    EPwm2Regs.DBCTL.bit.in_mode = DBA_All;
    EPwm2Regs.DBRED =死带;
    EPwm2Regs.DBFED =死带;
    }

    void Initepwm3()


    EPwm3Regs.TBPRD = TB_PRD;//设置计时器周期
    EPwm3Regs.TBPHS.Half.TBPHS = 2*(EPwm1Regs.TBPRD)/3;// TBPHS = 2/3 * TBPRD
    EPwm3Regs.TBCTR = 0x0000;//清除计数器


    //设置TBCLK
    EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;//计数
    EPwm3Regs.TBCTL.bit.PHSEN = TB_ENABLE;//禁用相位加载
    EPwm3Regs.TBCTL.bit.HSPCLKDIV = HSPCLK_DIV;//与SYSCLKOUT的时钟比率
    EPwm3Regs.TBCTL.bit.CLKDIV = CLK_DIV;//慢速,以便我们可以观察范围

    //设置比较
    EPwm3Regs.CMPA.Half.CMPA = TB_PRD;

    //设置操作
    EPwm3Regs.AQCTLA.bit.CAU = AQ_SET;//将PWM3A设置为零
    EPwm3Regs.AQCTLA.bit.CAD = AQ_CLEAR;


    EPwm3Regs.AQCTLB.bit.CAU = AQ_Clear;//将PWM3A设置为零
    EPwm3Regs.AQCTLB.bit.CAD = AQ_SET;

    //有源高互补PWM -设置死区
    EPwm3Regs.DBCTL.bit.out模式= DB_FULL启用;
    EPwm3Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
    EPwm3Regs.DBCTL.bit.in_mode = DBA_All;
    EPwm3Regs.DBRED =死带;
    EPwm3Regs.DBFED =死带;
    }

    /********************************************************************************************************* /
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否可以在"EINT"行设置断点并告诉我是否已到达? 如果已到达,请尝试将其移至以下行并再次运行。 缩小范围的最简单方法是进入调试模式,右键单击前面的几行并执行"运行到行"。 您应该能够使用此方法在10-15分钟内找出出现故障的行。

    您是从RAM还是闪存运行? 您在错误中提供的地址在闪存中。 如果是这种情况,您是否可以尝试从RAM运行它?

    谢谢!

    克里斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不是,它没有达到"EINT"。它控制着Void InitEPwm2 ()之后的损失。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mithilesh,

    我们需要您使用前面介绍的"运行到行"方法将其缩小为一行代码。

    您的程序是闪存还是RAM?

    此致,
    克里斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    void Initepwm2 ()


    EPwm2Regs.TBPRD = TB_PRD;//设置计时器周期
    EPwm2Regs.TBPHS.Half.TBPHS = EPwm1Regs.TBPRD/3;// TBPHS = 1/3*TBPRD。
    EPwm2Regs.TBCTR = 0x0000;//清除计数器

    //设置TBCLK
    EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;//计数
    EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;//禁用相位加载
    EPwm2Regs.TBCTL.bit.HSPCLKDIV = HSPCLK_DIV;//与SYSCLKOUT的时钟比率
    EPwm2Regs.TBCTL.bit.CLKDIV = CLK_DIV;//仅为观察范围而缓慢
    EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;// PWM2 esclavo del PWM1。

    //设置比较
    EPwm2Regs.CMPA.Half.CMPA = TB_PRD;

    //设置操作
    EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;//将PWM2A设置为零
    EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR;


    EPwm2Regs.AQCTLB.bit.CAU = AQ_Clear;//将PWM2A设置为零
    EPwm2Regs.AQCTLB.bit.CAD = AQ_SET;

    //有源低互补PWM -设置死区
    EPwm2Regs.DBCTL.bit.out模式= DB_FULL启用;
    EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
    EPwm2Regs.DBCTL.bit.in_mode = DBA_All;
    EPwm2Regs.DBRED =死带;
    EPwm2Regs.DBFED =死带;
    四线270***}

    void Initepwm3()


    四行275** EPwm3Regs.TBPRD = TB_PRD;//设置计时器周期
    EPwm3Regs.TBPHS.Half.TBPHS = 2*(EPwm1Regs.TBPRD)/3;// TBPHS = 2/3 * TBPRD
    EPwm3Regs.TBCTR = 0x0000;//清除计数器

    该控件将转到第270行,但不跳到第275行,该行是要执行的下一个语句
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mithilesh,

    是否可以确保关闭编译器优化以进行测试?

    您是否还可以对270行执行跑步至行,然后截取反汇编窗口的屏幕截图? 请在前后显示一些说明。

    您是否能够发布项目的.zip文件? 我想在本地运行它以加速调试。

    此致,
    克里斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kris,

    附加.zip文件 e2e.ti.com/.../threepwm.rar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kris,

    刚尝试从示例文件夹导入死区项目。生成后出现错误。
    下面是我遇到的错误


    ****为项目Example_F2802xEPwmDeadBand构建配置RAM ****

    "C:\\ti\\ccsv7\\utils\\bin\\gmake "-k all
    '生成文件:../example_2802xEPwmDeadBand.c'
    '调用:C2000编译器'
    c:/ti/ccsv7/tools/compiler/ti-CGT-C2000_ICP_IS.3.LTS/bin/cl2000"<xmt-block0>2000 16.9 -v28 -ml -mt -g --include_path="C:16.9 .3.-include_path="/scbad_scb_ex_exclus_scp_scp_scp_ex_exp_exclus_dip_d=dip_exclus_dip_dip_d=dip_d_dip_dipt_d/subic_dipt_dipt_ex-dipt_dipt_ex-dipt_ex-dipt_dipt_ex-dipt_exclus-d_dipt_dipt_dipt_ex-dipt_ex-dipt_exclus_exclipt_exclus_d_ex-dipt_exclipt_ex-dipt_dipt_
    '完成的建筑:../example_2802xEPwmDeadBand.c'
    ''
    '构建目标:Example_F2802xEPwmDeadBand.Out '
    '调用:C2000连接器'
    c:/ti/ccssv7/tools/compiler/ti-CGT-2000_2000_ltsm/bin/cl2000"<xmt-block0>2000 16.92000 16.9 -v28 -ml -mt -g --define=debug-define=lag_model --quiet --quile_diagnostics ---lib_warn=225 --output_all_syms --cm -cm_2x_debug数据-2x/quit_lips/spacks -dips/ipt/dipt/crt/crt/crt/lip_lip/ip/ip-cip/ip_lip/ip/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ipt/ip- 16.9 16.9

    >>编译失败
    Makefile:137:目标'Example_F2802xEPwmDeadBand.Out的配方失败
    警告:正在创建不带书帖规范的输出书帖"csmpasswds"
    警告:正在创建不带节规范的输出节"CSM_rsvd"
    "C:/ti/controlSUITE/development _kits/c2000_LaunchPad/F2802x_common/cmd/F2802x_generic_ram.cmd",2802,第2802第111行:错误:
    程序将不适合可用内存。使用放置
    对".text"节大小0x7c6页0的对齐/阻止失败。 可用
    内存范围:
    RAMM0 大小:0x3b0 未使用:0x0 最大孔数:0x0
    RAML0 大小:0x400 未使用:0x0 最大孔数:0x0
    文本 :>> RAMM0 | RAML0, 页面= 0
    "C:/ti/controlSUITE/development _kits/c2000_LaunchPad/F2802x_common/cmd/F2802x_generic_ram.cmd",2802,第2802第112行:错误:
    程序将不适合可用内存。使用放置
    对".cinit"大小0x1a页面0的区域进行校准/阻止失败。 可用
    内存范围:
    RAMM0 大小:0x3b0 未使用:0x0 最大孔数:0x0
    RAML0 大小:0x400 未使用:0x0 最大孔数:0x0
    cinit :> RAMM0 | RAML0, 页面= 0
    "C:/ti/controlSUITE/development _kits/c2000_LaunchPad/F2802x_common/cmd/F2802x_generic_ram.cmd",2802,第2802第110行:错误:
    程序将不适合可用内存。使用放置
    对"ramfuncs"区域大小0x4页0的校准/阻止失败。 可用
    内存范围:
    RAMM0 大小:0x3b0 未使用:0x0 最大孔数:0x0
    RAML0 大小:0x400 未使用:0x0 最大孔数:0x0
    Ramfuns :>> RAMM0 | RAML0, 页面= 0
    警告:指定的入口点符号不是"_c_int00":"code_start"
    错误:链接时遇到错误;“Example_F2802xEPwmDeadBand.out”不是
    已构建
    gmake:***[example_F2802xEPwmDeadBand.Out ]错误1
    gmake:由于错误,目标'all'没有重制。

    ****构建已完成****

    您是否可以提供一些补救措施。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mithilesh,

    这可能是F2802x_generic_ram.cmd文件的问题。 这是许多项目中使用的通用文件。 您是否有机会为您的代码或其他项目修改它? 如果您向项目中添加了也可以执行此操作的代码。

    此致,
    克里斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kris,

    您是否已浏览了之前的代码。是否建议进行任何更正?

    此致,
    很棒的酒店
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kris,

    问题仍然存在

    此致,
    很棒的酒店
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mithilesh,

    感谢您耐心等待。 Kris目前不在办公室。

    有关链接错误,我建议在链接程序命令文件上查看此资源:
    processors.wiki.ti.com/.../C28x_Compiler_-_Understanding_Linking

    您还可以启动新的工作空间,从C2000Ware或controlSUITE导入示例项目,然后在不进行任何修改的情况下构建该项目以避免错误。

    此致,
    伊丽莎白