Fixup overflow error - mc9s12xeq512

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Fixup overflow error - mc9s12xeq512

2,338 Views
MusikA
Contributor I

Hi,

We just upgraded from mc9s12xeq512 to mc9s12xep768. My code was working with mc9s12xeq512 but when I tried to compile it using the mc9s12xep768.prm file, I got this error:

ERROR L1907: Fixup overflow in _LDIVS, to _NEG_P type 3, at offset 0xB
ERROR L1907: Fixup overflow in _LDIVS, to _NEG_P type 3, at offset 0x13
ERROR L1907: Fixup overflow in _LDIVS, to _NEG_P type 3, at offset 0x19
ERROR L1907: Fixup overflow in _LDIVS, to _NEG_P type 3, at offset 0x20

Whats the cause and how can I fix this?

Thanks...

 

 

 

Added p/n to subject.



Message Edited by NLFSJ on 2009-02-16 07:35 PM
Labels (1)
0 Kudos
Reply
3 Replies

679 Views
CompilerGuru
NXP Employee
NXP Employee
Did you change anything in the new prm file, like changing the line below:
> INTO  ROM_C000/*, ROM_4000*/;
?
The error message sounds as if the code out of rtshc12.c is split up into multiple sections which could happen if you uncomment the ROM_4000 above. The default prm does not contain this setup, so I wonder if it was added.
Also which version do you use? The latest 4.7?

Daniel

0 Kudos
Reply

679 Views
MusikA
Contributor I
Hi Daniel,

ROM_4000 is not disabled and we are using 4.6 version.
0 Kudos
Reply

679 Views
CompilerGuru
NXP Employee
NXP Employee
Just out of curiosity, is NON_BANKED distributed into multiple segments by default, or did you change this setup? In V4.7, NON_BANKED is placed into ROM_C000 only.

Well either way, when distributing the content of a single section with __near functions (as the ones in rtshc12.c) into multiple placements, then linking may fail with the fixup overflow message you got if the code was not built with -OnB=b, as described in the V4.7 prm.
So you can
- Place the content of some SHORT sections into ROM_4000, the content of others into ROM_C000.
  The content of non code sections containing strings or constants can be distributed into multiple placements.
 I do recommend this setup. In the prm it should look like the untested snippet below:

Code:
.....
      _PRESTART, STARTUP, NON_BANKED INTO ROM_4000;
      ROM_VAR, STRINGS, COPY INTO ROM_C000, ROM_4000;
.....

 - Or rebuild the code (and for rtshc12.c, the ANSI library) with -OnB=b.

Very probably just placing the content of NON_BANKED into either ROM_4000 or ROM_C000 (but not both...) in the prm file does resolve the issue for you.

Daniel
0 Kudos
Reply