Keil Logo

LX51: IMPROPER FIXUP ON BANKING APPLICATION WITH UNUSED FUNCTIONS


Information in this article applies to:

  • C51 Version 7.50

QUESTION

I am using the LX51 Extended Linker/Locater to generate a code banking application. Some of the functions are uncalled and therefore I get correctly the following warning:

*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS

However, in addition I get also an IMPROPER FIXUP error:

*** ERROR L121: IMPROPER FIXUP

The error only is generated when the unused function calls other functions that are in a different code bank. Also the IMPROPER FIXUP error is not generated with the classic BL51 Linker/Locater. What is the reason for this error an how can I solve my problem?

ANSWER

The error is generated since the call tree analysis of your program is incomplete and therefore no interbank calls are generated that allow bank crossings for the uncalled function. The BL51 does not detect this problem (but still the program code would not work).

The LX51 Extended Linker/Locater offers the REMOVEUNUSED directive which deletes all unused functions in the final executable program. This directive removes then indirectly also the IMPROPER FIXUP error.

Alternatively you may call the unused functions in the program code (for example at the end of the main function).

MORE INFORMATION

SEE ALSO

Last Reviewed: Monday, September 14, 2009


Did this article provide the answer you needed?
 
Yes
No
Not Sure
 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.