ARM Technical Support Knowledge Articles

IMPROPER FIXUP ON BANKING APPLICATION WITH UNUSED FUNCTIONS

Answer


Information in this article applies to:


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

Article last edited on: 2009-09-14 08:35:26

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential