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.

[参考译文] TMS320F28388S:CLA 怀疑

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/997086/tms320f28388s-cla-doubts

器件型号:TMS320F28388S

您好!

如您所见、rts2800_fpu32_eabi.lib 包含在 CLA 程序存储器中。

什么可能是问题?

在测试过程中、我们发现、如果删除了一行代码、问题就会出现。 代码如下所示:

1) a = b - c - d * 0.5;a、b、c 和 d 为浮点值;有问题;

2)  a = b - c - 05* d;a、b、c 和 d 为浮点值;没有问题;

3) a = b - c - d *(浮点数) 0.5;a、b、c 和 d 为浮点数;没有问题。

问题仅发生在客户的代码中、而不是我们的演示代码中。 具有 V20编译器的 CCS10、eabi 格式。

另一个问题仅发生在客户代码中:  

Cla1Prog:load = FLASH4,
运行= RAMLS4 | RAMLS5 | RAMLS6、
Load_start (Cla1funcsLoadStart)、
LOAD_END (Cla1funcsLoadEnd)、
run_start (Cla1funcsRunStart)、
load_size (Cla1funcsLoadSize)、
对齐(8)

"run = RAMLS4 | RAMLS5 | RAMLS6、"不起作用。 仅分配 RAMLS4。  

BR、Jordan

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

    约旦、您好!

    您能否提供有关您在代码中看到的问题的更多详细信息?

    关于 CLA RAMLS4分配、您能解释一下您的意思吗-仅分配 RAMLS4。 链接器是仅分配此存储器空间、客户遇到编译器错误、还是未分配的存储器出现运行时故障?

    谢谢、

    Ashwini

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

    Ashwini、

    1) 1)在 CLA 中、当客户写入诸如 a= b - c - d*0.5的代码时;rts2800_fpu32_eabi.lib 将位于 CLA 程序代码中。 不正确。 在我们的演示代码中、没有这种问题。 我们使用的是相同的 CCS 和编译器。

    2) run = RAMLS4 | RAMLS5 | RAMLS6、"运行为 run = RAMLS4。 RAMLS5和 RAMLS6不用于 CLA 程序代码。 在编译期间、存储器大小存在错误、RAMLS4没有足够的 CLA 代码大小。 但是、根据 RAMLS4 | RAMLS5 | RAMLS6就足够了。

    BR Jordan

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

    约旦、您好!

    感谢您的进一步投入。 我向团队提问、并在听到他们的声音时告知您。

    请提供以下信息:

    编译器设置

    2.链接器命令文件

    链接器映射文件

    谢谢、

    Ashwini

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

    约旦、您好!

    我从团队获得了一些意见:

    客户是否将应用程序构建为 EABI、而您的演示是 COFF? 在 EABI 中、默认的浮点大小为双精度。 运行时库被拉入以用于双精度/浮点转换例程。 在 COFF 中、浮点大小为单精度、因此未观察到相同的值。

    一种分辨率是在代码中将0.5写入为0.5f、这明确表示它将被视为单精度浮点。

    如果不是这种情况、也有助于发布在客户代码中生成的任何编译器警告。

    谢谢、

    Ashwini