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.

28335用ccs编译时出现的问题 ?



<Linking>
>> warning: entry point symbol _c_int00 undefined

undefined                        first referenced
 symbol                              in file
---------                        ----------------
_c_int00                         C:\\tidcs\\c28\\DSP2833x\\v131\\DSP2833x_examples\\pwmc\\Debug\\DSP2833x_CodeStartBranch.obj
FS$$TOL                          C:\\tidcs\\c28\\DSP2833x\\v131\\DSP2833x_examples\\pwmc\\Debug\\DSP2833x_CpuTimers.obj
FS$$MPY                          C:\\tidcs\\c28\\DSP2833x\\v131\\DSP2833x_examples\\pwmc\\Debug\\DSP2833x_CpuTimers.obj
>>   error: symbol referencing errors - './Debug/pwmc.out' not built

>> Compilation failure

Build Complete,
  2 Errors, 1 Warnings, 0 Remarks.

麻烦大家看下了,那两个错误怎么解决呢?谢谢

  • 1. 没有添加Code_start_brach.asm文件

    2. 如果添加了,就是您可能改动此文件了,更换成标准文件再编译。

  • 但是我加了呀 没改也是出现错呢 怎么搞的呢?

  • Jones Chen 我加了那个asm的文件 然后没改 用的标准文件cputimers.c的标准文件

    也不对哦

  • 那就更改Prj模板,找个TI的历程,重做一个Pjt

  • 楼主,你用的是不是TI的库文件?

    楼主添加库的时候添加rts2800_fpu32.lib,不要用rts2800n.lib这类第三方提供的库文件。

  • Jones chen 不好意思啊 呵呵 可能是我ccs出问题了 我卸载了重装看看,还有那个时基同步问题我再看看再向您请教 谢谢了

  • 恩 好的 谢谢您的回答,不知道您用过epwm模块的时基同步没?

  • Jones,已经在那个帖子里回答你了呀,你再看看。

    你可以看看epwm的文档,里面直接就有关于PWM的SYNC的例程。

    下面是我做同步实验室时写的程序,里面主要是两步,由于是实验没有用中断,用的是软件同步,

    1、是SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;

    2、是测试软件同步EPwm1Regs.TBCTL.bit.SWFSYNC = 1;

    void InitEPwm1Example(void);

    void main(void)

    {

      InitSysCtrl();

      InitEPwm1Gpio();

      InitEPwm2Gpio();

      InitEPwm3Gpio();  

      EALLOW;

      GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0;    

      GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 2;  

      EDIS;

      EALLOW;

      SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;

      EDIS;

      InitEPwm1Example();  

      EALLOW;

      SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;

      EDIS;

      for(;;)

      {

     EPwm1Regs.TBCTL.bit.SWFSYNC = 1;

    asm("          NOP");

     asm("          NOP");

      asm("          NOP");

       asm("          NOP");

     asm("          NOP");

      asm("          NOP");

       asm("          NOP");

        asm("          NOP");

      asm("          NOP");

         asm("          NOP");

      }

    }

    void InitEPwm1Example()

    {

      EPwm1Regs.TBCTL.bit.CTRMODE = 0;

      EPwm1Regs.TBPRD = 0x1000;        

      EPwm1Regs.TBCTL.bit.PHSEN = 1;  

      EPwm1Regs.TBCTL.bit.PHSDIR =1;

      EPwm1Regs.TBCTL.bit.SYNCOSEL =0;  

      EPwm1Regs.TBPHS.half.TBPHS = 0x0300;  

      EPwm1Regs.TBCTR = 0x0000;          

      EPwm1Regs.CMPA.half.CMPA = 0x200;  

      EPwm1Regs.AQCTLA.bit.ZRO = 2;  

      EPwm1Regs.AQCTLA.bit.CAU = 1;  

      EPwm2Regs.TBCTL.bit.CTRMODE = 0;

      EPwm2Regs.TBPRD = 0x1000;  

      EPwm2Regs.TBCTL.bit.PHSEN = 1;  

      EPwm2Regs.TBCTL.bit.SYNCOSEL =0;  

      EPwm2Regs.TBPHS.half.TBPHS = 0x0300;  

      EPwm2Regs.TBCTR = 0x0000;      

      EPwm2Regs.CMPA.half.CMPA = 0x200;

      EPwm2Regs.AQCTLA.bit.ZRO = 2;  

      EPwm2Regs.AQCTLA.bit.CAU = 1;  

      EPwm2Regs.TBCTL.bit.PHSDIR =1;

      EPwm3Regs.TBCTL.bit.CTRMODE = 0;

      EPwm3Regs.TBPRD = 0x1000;      

      EPwm3Regs.TBCTL.bit.PHSEN = 1;  

      EPwm3Regs.TBCTL.bit.SYNCOSEL =0;  

      EPwm3Regs.TBPHS.half.TBPHS = 0x0300;    

      EPwm3Regs.TBCTR = 0x0000;      

      EPwm3Regs.CMPA.half.CMPA = 0x200;

      EPwm3Regs.AQCTLA.bit.ZRO = 2;    

      EPwm3Regs.AQCTLA.bit.CAU = 1;  

      EPwm3Regs.TBCTL.bit.PHSDIR =1;

    }

  • Forrest 你好啊 呵呵 怪我没人认认真真看文档 呵呵 你说的那个软件同步的话 如果用了同步脉冲 EPwm2Regs.TBCTL.bit.SYNCOSEL =01;的话就不用设置EPwm1Regs.TBCTL.bit.SWFSYNC = 1了是吧

  • Forrest 你好啊 呵呵 开始没认真看文档 您说的意思是同步的话有两种 第一种设置EPwmxRegs.TBCTL.bit.SYNCOSEL =0;和软件强制同步EPwm1Regs.TBCTL.bit.SWFSYNC = 1;

    第二种就是Jones说的设置 EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO这种么?当然其他寄存器设置的话不考虑进来先?

    还有您写的软件强制同步位必须写在死循环里面么?

    谢谢您的回答先!

  • TB_CTR_ZERO是在PWM Counter等于0时,PWM1对PWM2进行同步。

    SYNCOSEL是PWM1的同步输出选择和使能。

    SWFSYNC是软件同步。

    建议楼主阅读文档,这里面的回答仅供参考。如果真是比较着急的话,查文档比在这里问问题要快捷。