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.
您好!
如您所见、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