LX51: IMPROPER FIXUP ON BANKING APPLICATION WITH UNUSED FUNCTIONS
Information in this article applies to:
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?
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).
Last Reviewed: Monday, September 14, 2009
of your data.