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万:CLA1将浮点转换为长浮点并传输到CPU。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/579656/ccs-tms320f28035-cla1-translate-float-to-long-and-transfer-to-cpu

部件号:TMS320F2.8035万

工具/软件:Code Composer Studio

F2.8035万的CPU将一些长数据传输到CLA。 CLA将这些数据从long转换为float,然后使用CLAdive(),CLAcosPU()和CLAsinPU()执行一些计算。 CLA会将计算结果从浮点转换为长点,并将这些数据传输到CPU。 在相应的CLA PIE中断ISR中,CPU将读取这些数据并控制PWM占空比。 当我们使用XDS100仿真器将程序调试到F2.8035万时,单击“继续”按钮运行程序,一切都是正确的,即使是拉出仿真器。关闭电源后,打开F2.8035万,运行时没有仿真器,来自CLA的long数据不正确。 但是来自CLA的其他无符号短数据都是正确的。 这些未签名短数据来自同一CLA任务(Task1),并在同一CLA PIE中断ISR(CLA1_INT1_ISR)处读取。 原因是什么?CCS编译器版本是6.4 .2。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CPU和CLA之间存在类型差异。INTS在C28x上为16位,在CLA上为32位。 我建议您使用stdint.h类型,uint16_t (表示unsigned short)和Int32_t (表示long)。

    现在,至于为什么代码在独立模式(未连接调试器)中可能无法工作,您是否将CLA数学表(CLA1mathTables)加载到闪存中,然后在运行时复制到RAM中,然后再执行任何代码?