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.

280049c CLA不响应

Other Parts Discussed in Thread: C2000WARE

请问:我把c2000ware 的cla例程(cla_ex2_adc_fir32.c ,cla_ex2_adc_fir32.h, cla_ex2_adc_fir32.asm)放到工程里面,配上头文件、源文件,两个cmd文件(28004x_cla_flash_lnk.cmd, f28004x_headers_nonbios.cmd),编译通过,但是在线调试发现,cla没有相应。请问是哪里出了问题呢?非常非常感谢!

  • 请您私信一下相关的工程,我们来测试一下,谢谢
  • 您好,我已经把工程私信发给您了,烦请您测试下,看是什么问题,非常感谢。
  • 您现在是想在Flash中运行?使用的C2000WARE版本是多少?编译时使用的cmd文件是哪一个?我这边会有cmd文件中内存分配的错误。

    您可以为CLA编译并运行C代码,但不能从Flash中编译。CLA仅可访问某些RAM块,因此您的CLA代码必须先加载到其中,然后才能运行。

    也就是说cpu得先把flash中的程序搬移到ram中cla才能load symbols。
  • 您好,我用的是C2000Ware_v3.02.00.00,前两天刚下载的,应该是最新版本的吧。cmd文件用的是C2000Ware_v3.02.00.00里边的28004x_cla_flash_lnk.cmd, f28004x_headers_nonbios.cmd这两个。现在就是不知道这个cla程序从FLASH搬到RAM是怎么弄得?是需要修改cmd文件吗?怎么修改?非常感谢您的指导!
  • 请问您使用TI的例程C:\ti\c2000\C2000Ware_3_02_00_00\device_support\f28004x\examples\cla下的cla_ex2_adc_fir32是否可以成功?该例程是可以在flash下的。

    NOTE: //! \b External \b Connections \n
    //! - EPWM2A (GPIO2) to ADCA0
  • 我发给您的工程就是用的这个例程,cmd文件用的是C2000Ware_v3.02.00.00里边的28004x_cla_flash_lnk.cmd, f28004x_headers_nonbios.cmd这两个。CLA没有响应。
  • 我用launchpad试了下该例程,确实无法到cla文件里面,我会在确认后给您回复

    您可以使用 C:\ti\c2000\C2000Ware_3_01_00_00\driverlib\f28004x\examples\cla 下的cla_ex1_adc_fir例程,我测试了一下是可以的

    请注意选择launchxl_flash来测试flash

    //! \b External \b Connections for Control Card\n
    //!  - connect A0 to EPWM4A
    //!
    //! \b External \b Connections for Launch Pad\n
    //!  - connect ADCINA0 to PWM4A

  • 好的,非常感谢,我先用这个例程试试
  • 期待您的反馈
  • 实在是不好意思啊,cla_ex1_adc_fir这个例程的头文件,函数调用太绕了,这些天在尝试cla_ex2_adc_fir失败之后,就尝试cla_ex1_adc_fir例程了很多次,一直没编译通过。我还是想请您帮忙解决下cla_ex2_adc_fir例程,或者给我一个能正常将cla任务复制到Ram中运行的工程。感觉太难了,我之前用过28069的CLa,一直都用的不太好。麻烦您了。
  • 谢谢您的反馈,我会在cla_ex2_adc_fir32测试成功后给您说明。

    若是不想使用driverlib的话,可以使用C:\ti\c2000\C2000Ware_3_02_00_00\device_support\f28004x\examples\cla下的

    cla_ex1_background_task

    这个我使用launchpad在 flash运行是正常的(launchpad连线:J7:70-----J11:GPIO6_FSITXDO)
  • 示例中的内存配置与链接器.cmd文件不匹配。链接器将CLA程序分配给LS0,将数据分配给LS1,但是该示例将LS4和LS5配置为进行编程。这就是遇到ITRAP的原因-C28x代码从此块运行,并且所有权更改为CLA时,C28x无法获取代码。 

    在下面显示的函数中,我对内存配置进行了更改以匹配链接器.cmd文件。

    void CLA_configClaMemory(void)
    {
    ......
        //
        // Select LS4RAM and LS5RAM to be the programming space for the CLA
        // First configure the CLA to be the master for LS4 and LS5 and then
        // set the space to be a program block
        //
    
        MemCfgRegs.LSxMSEL.bit.MSEL_LS0 = 1;
        MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS0 = 1;
        MemCfgRegs.LSxMSEL.bit.MSEL_LS1 = 1;
    
    // 
    // These 4 lines do not match the .cmd file!
    //
        //MemCfgRegs.LSxMSEL.bit.MSEL_LS4 = 1;
        //MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS4 = 1;
        //MemCfgRegs.LSxMSEL.bit.MSEL_LS5 = 1;
        //MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS5 = 1;

     

  • 您好,我刚改了之后进行了测试,claisr7和claisr8都能进入,非常感谢您。再请教您一个问题,task7和task8与claisr7和claisr8是什么关系,task7、task8和claisr7、claisr8都是在cla中断触发源到来之后运行吗?非常感谢您!
  • 我们在下面这个帖子内讨论

    e2echina.ti.com/.../192297