|ARM Technical Support Knowledge Articles|
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).
Article last edited on: 2009-09-14 08:35:26
Did you find this article helpful? Yes No
How can we improve this article?