This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

L166 FIXUP ERROR IN LIBRARY

Hello,
After testing my latest program in UV2, I went to create a burnable test version and got the following error:

 LAST LINES OF M66 FILE

      01FD56H     PUBLIC    LABEL     ---     ---   ?C?PRNFMT

      01FD1CH     BLOCK     LVL=0     02E4H   ---   print_formatter
      ---         BLOCKEND  LVL=0     ---     ---

  *** ERROR L121: IMPROPER FIXUP
      MODULE:  C:\KEIL\C166\LIB\C167HL.LIB (?C?PRNFMT)
      SECTION: ?C_LIB_CODE
      CLASS:   FCODE
      OFFSET:  02E2H

SECTION MAP
01FB72H   01FFFFH   00048EH   CODE  REL   WORD   ---  ---  PUBL  FCODE   ?C_LIB_CODE
020000H   020EDFH   000EE0H   CODE  REL   WORD   ---  ---  PUBL  FCODE   ?PR?APPEND
The tools are C166 V4.05 & L166 V4.05.

There appears to be a problem in the linker which has can't deal with the code butting up to a segment boundary (0x01FFFF -> 0x020000). Code crossing a segment boundary isn't allowed. The library appears to just fit in the space below 0x020000 but the linker says no. Since the error is in Keil library code I can't see what the actual perceived failure is. Is there any fix besides forcing the linker to locate the entire section (?C_LIB_CODE) above the boundary (and hope it doesn't fill in with something else which JUST fits)? Is this a bug which is fixed in a later version?

Thanks for information and ideas.
Scott

Parents Reply Children
No data