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/TMS320F2.8035万:TMS320F2.8035万_CLA

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/583797/ccs-tms320f28035-tms320f28035_cla

部件号:TMS320F2.8035万

工具/软件:Code Composer Studio

您好,

我们正在应用中使用TMS320F2.8035万,并且在我们的流程中实施了CLA方法。

我们面临以下问题:

1.在CLA函数内,这些值的计算不正确,输出也不正确。

2.添加CLA方法后,UART不工作。

我们在电力部门工作,我们多次致电TI支持我们地区的员工,但他们 没有回应。因此,请帮助我们完成开发并帮助我们开始生产。

此致

R.Baskar

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

    您好,

    1. 在CLA函数内,值计算不正确,输出也不正确。[/QUOT]

    您是否正在使用CLA数学库中的任何数学函数?  您能否提供一些有关计算性质及其出错位置的详细信息。 您还能够逐步了解CLA代码并确定问题的开始位置。 如果您不熟悉CLA调试,您可以在此处找到培训视频,  

    2. 添加CLA方法后,UART不工作。[/QUOT]

    嗯,不知道为什么会发生这种情况。 一旦将CLA代码放入其中,您是否能够正确配置UART寄存器? 您如何通过ISR或某些定期功能向UART写入数据? 该ISR或在RAM中运行,并且在与CLA代码或数据所驻留的RAM不同的RAM中运行吗?

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





    1.请查找以下语句在CLA函数中使用。



    sense _V1SumForPwm = sense _V1SummForPwm -(sense _V1SamplesForPwm[sense _vG1IndexForPwm]>> 2);

    sense _V2SumForPwm = sense _V2SummForPwm -(sense _V2SamplesForPwm[sense _vG1IndexForPwm]>> 2);

    sense _V3SummForPwm = sense _V3SummForPwm - sense _V3SamplesForPwm[sense _vG1IndexForPwm];

    sense _CurrSummForPwm = sense _CurrSummForPwm -(sense _CurrSamplesForPwm[sense _vG1IndexForPwm]>> 2);



    SENSE V1SamplesForPwm[SENSE vG1IndexForPwm]= AdcResult.ADCRESULT0 + AdcResult.ADCRESULT3 + AdcResult.ADCRESULT7 + AdcResult.ADCRESULT10;

    sense_V2SamplesForPwm[sense_vG1IndexForPwm]= AdcResult.ADCRESULT1 + AdcResult.ADCRESULT4 + AdcResult.ADCRESULT8 + AdcResult.ADCRESULT11;

    SENSE V3SamplesForPwm[SENSE vG1IndexForPwm]= AdcResult.ADCRESULT6;

    sense _CurrSamplesForPwm[sense _vG1IndexForPwm]= AdcResult.ADCRESULT2 + AdcResult.ADCRESULT5 + AdcResult.ADCRESULT9 + AdcResult.ADCRESULT12;

    sense _V1SumForPwm = sense _V1SummForPwm +(sense _V1SamplesForPwm[sense _vG1IndexForPwm]>> 2);

    sense _V2SumForPwm = sense _V2SummForPwm +(sense _V2SamplesForPwm[sense _vG1IndexForPwm]>> 2);

    sense _V3SummForPwm = sense _V3SummForPwm + sense _V3SamplesForPwm[sense _vG1IndexForPwm];

    sense _CurrSummForPwm = sense _CurrSummForPwm +(sense _CurrSamplesForPwm[sense _vG1IndexForPwm]>> 2);



    2.我们使用中断方法进行配置,并且正在使用CLA配置。

    当我们启用CLA时,UART中断同时运行Tx和Rx功能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不知道CLA代码是否有错误。 我的建议是在CLA代码(__mdebugstop())中设置一个断点,然后逐步浏览代码,看看计算出错的位置。

    对于UART中断,它是在RAML1-3中? 这些RAM是否被配置为CLA数据并对RAM进行编程?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    请在RAML3中查找CLA配置的CMD配置。
    Cla1Prog :LOAD = FLASHH,
    RUN = RAML3 //RAML3,
    load_start (_Cla1funcsLoadStart),
    load_size (_Cla1funcsLoadSize)
    run_start(_Cla1funcsRunStart),
    页面= 0

    csmpasswds :> CSM_PWL_P0页= 0
    csm_rsvd :> CSM_RSVD页面= 0

    /*分配未初始化的数据段:*/
    堆栈 :> RAMM0 页面= 1.
    .ebss :> RAML0 页面= 1.
    esysmem :> RAMM1. 页面= 1.
    sysmem :> RAMM1. 页面= 1.
    CIO :> RAMM1. 页面= 1.

    UART配置为闪存中断功能,而不是RAM功能代码。

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

    您好,

    如何声明变量仅在CLA函数中使用,该函数由任务Task1和task8访问。

    我的情况是,所有变量都使用“Cla1ToCpuMsgRAM”声明,因此消息ram溢出。

    此致

    R.Baskar

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

    baskar r 说:
    如何声明变量仅在CLA函数中使用,该函数由两个任务Task1和task8访问。[/QUOT]

    如果您在CLA文件中声明变量,它们是全局CLA变量,因此它们被分配到CLA C编译器部分“.bss_CLA”,您应该将其放置在其中一个CLA可访问数据RAM L1/L2中。 或者,也可以在链接程序命令文件中定义部分

    Cla1DataRAM0:> RAML1,第= 1页

    然后将变量分配给此部分#pragma data_section(variable,"Cla1DataRAM0 "),但一旦将RAML1配置为CLA数据RAM (通过MMEMCFG),这些变量将只能由CLA访问。

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

    您好,

    感谢您的建议,

    但除了RAML3之外,所有RAM 都已满,请告诉我,对于CLA执行代码和 CLA数据RAM,只能使用RAML3。

    我们发现,CLA有时工作,我们得到了值,大多数时候,CPU代码变量无法读取这些值。

    在工业(电源控制)应用中使用CLA是否非常困难和危险?  

    此致

    R.Baskar

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

    baskar r 说:
    但是除了RAML3之外,所有RAM 都已满,请告诉我仅将RAML3用于CLA执行代码和 CLA数据RAM。[/QUOT]

    在2.8035万上,RAML3固定为CLA编程RAM,不能在此处存储CLA变量。

    baskar r 说:
    我们发现CLA有时工作,我们获得了值,大多数时候,这些值无法通过CPU代码变量读取。[/QUOT]

    要使CPU从CLA读取变量,它们需要位于Cla1ToCpuMsgRam中。 如果它们位于RAML1,L2中(假定这些RAM在MMEMCFG寄存器中配置为CLA数据RAM),则CPU将无法访问这些RAM。 在F2.8069万上,有一个选项可让CPU读取数据RAM。