Keil™, An ARM® Company

Technical Support

BL51: ERROR L121 (IMPROPER FIXUP)


Information in this article applies to:

  • C51 Version 6.03
  • µVision2 Version 2.10

QUESTION

I have a situation where the linker generates the following error:

L121: IMPROPER FIXUP

This occurs when I use ROM(COMPACT) and when I have a label for a goto in my C program that follows a do-while loop. For example:

void x(int a) {
        do {
                if (a) break;
                // Insert at least 0x80 bytes of code here.
        } while(1);
MYLABEL:
        return;

If MYLABEL: is included, the instruction shown for the break statement in the listing is AJMP MYLABEL and the L121 error is reported.

If MYLABEL: is omitted, the instruction shown is AJMP ?Cnnnn and the linker completes successfully.

What would cause this behavior?

ANSWER

This is a confirmed problem that has been resolved in C51 V6.10a. You may download the latest updates from the Keil Website.

MORE INFORMATION

Last Reviewed: Tuesday, July 19, 2005


Did this article provide the answer you needed?
 
Yes
No
Not Sure