Tasking and TC377X

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
nsyed
Level 5
Level 5
5 likes given 100 sign-ins 50 sign-ins
AURIX community members,

I am trying to build a application (delivered by third party) using Tasking compiler. I am getting following error message. Any thoughts ? Is there any way I can disable this error message ?

"ctc E490: Only 64-bit double is allowed for EABI compliance"
0 Likes
3 Replies
nsyed
Level 5
Level 5
5 likes given 100 sign-ins 50 sign-ins
Dear Forum Members,

Any thoughts on this issue ? I discovered that this issue shows up only with Tasking V 6.3r1. It does not shows up with V 6.2.

Any thoughts ?
0 Likes
NeMa_4793301
Level 6
Level 6
10 likes received 10 solutions authored 5 solutions authored
Are you building with --eabi=+float? If not, it's going to have to use software emulation for double variables, and that will be slow.

Could it be that your compiler flags include both --fp-model=+float and --eabi? That's telling the compiler to both use 32-bit floating point instead of double and not to do so, which I guess might lead to that error.
0 Likes
User13836
Level 6
Level 6
50 likes received 50 solutions authored 100 sign-ins
The problem is related to a mis-configuration. If you use the C compiler option --eabi-compliant this enforces that double values are treated like double values and they are not handled as float values. When the C compiler option --fp-model=+float is used this collides with --eabi-compliant and results in the error message you face. The fact that the error does not show up in v6.2r2 is due to a glitch in the control program (cctc.exe) you use to build the application. More details about this issue:

TCVX-43219 Control program silently changes floating-point settings when --eabi-compliant option is used

DESCRIPTION
The control program does not generate an error message when the --eabi-compliant option is used together with the option --fp-model=f / --fp-model=+float to enable single precision floating point only. The control program overrules the --fp-model=+float option instead by passing the option --fp-model=-float to the C compiler and because this option is listed after the --fp-model=+float one it overrules it. As a result the user is not warned about this incompatible option usage.

Example:
/* file_1.c */

void main(void)
{
}

Invocation:
cctc file_1.c --eabi-compliant --fp-model=+float -ca -v

Invocation result:
cctc file_1.c --eabi-compliant --fp-model=+float -ca -v
+ ..\ctc --fp-model=+float --core=tc1.3 --eabi-compliant --fp-model=-float -o file_1.src file_1.c

MITIGATION
For TriCore tools versions v5.0r1 to v6.0r1:
Use the control program option --eabi=FHNS instead of --eabi-compliant.

For TriCore tools version v6.1r1:
Use the control program option --eabi=CFHNS instead of --eabi-compliant.

For TriCore tools version v6.2r1:
Use the control program option --eabi=CFHNSW instead of --eabi-compliant.

Then the C compiler will generate the error message:

ctc E490: Only 64-bit double is allowed for EABI compliance

to notify you about this option collision.


Best regards,
Ulrich Kloidt

TASKING tools support
0 Likes