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.
Hi,
As you can see, rts2800_fpu32_eabi.lib is included inside CLA program memory.
What could be issue?
During test, we found that, if one line code was deleted, the issue will go. The code is like:
1) a= b - c - d*0.5; a, b, c and d are float; there's the issue;
2) a= b - c - 05* d; a, b, c and d are float; there's NO issue;
3) a= b - c - d* (float)0.5; a, b, c and d are float; there's NO issue.
The issue happened only in customer's code, but not our demo code. CCS10 with V20 compiler, eabi format.
Another issue happened only in customer code:
Cla1Prog : LOAD = FLASH4,
RUN = RAMLS4 | RAMLS5 | RAMLS6,
LOAD_START(Cla1funcsLoadStart),
LOAD_END(Cla1funcsLoadEnd),
RUN_START(Cla1funcsRunStart),
LOAD_SIZE(Cla1funcsLoadSize),
ALIGN(8)
"RUN = RAMLS4 | RAMLS5 | RAMLS6," doesn't work. Only RAMLS4 is assigned.
Br, Jordan
Hi Jordan,
Can you please give more details on the issue you are seeing with the code?
Regarding the CLA RAMLS4 allocation, can you explain what you mean by - only RAMLS4 is assigned. Is the linker only assigning this memory space and customer is getting compiler error or is there a runtime failure of memory not being allocated?
Thanks,
Ashwini
Ashwini,
1) In CLA, when customer writes code like a= b - c - d*0.5; rts2800_fpu32_eabi.lib will be in the CLA program code. It's not correct. In our demo code, there's no this kind of issue. We are using the same CCS and compiler.
2) RUN = RAMLS4 | RAMLS5 | RAMLS6," works as RUN = RAMLS4. RAMLS5 and RAMLS6 are not used for CLA program code. During compiling, there's an error about memory size, RAMLS4 doesn't have enough size for CLA code. But accutually RAMLS4 | RAMLS5 | RAMLS6 is enough.
Br Jordan
Hi Jordan,
Thanks for further inputs. I am asking the team and will let you know when I hear from them.
Please could you provide the following information:
1. Compiler settings
2. Linker command file
3. Linker Map file
Thanks,
Ashwini
Hi Jordan,
I got some inputs from the team:
Is the customer building the application as EABI and the demo you have is COFF? In EABI the default float size is double precision. The run time library gets pulled in for double/float conversion routines. In COFF float size is single precision and hence the same is not observed.
One resolution is to write the 0.5 as 0.5f in code which explicitly indicates it is to be treated as single precision float.
If this is not the case, it would also help to post any compiler warnings that were generated in the customer code.
Thanks,
Ashwini