Keil Logo

LX51 Enhanced Linker

The LX51 linker/locator combines object modules and creates executable 8051 programs. The linker resolves external and public references and assigns absolute or fixed addresses to relocatable program segments. The LX51 linker processes object files created by the Keil C51 Compiler, CX51 Compiler, A51 Assembler, AX51 Assembler, and the Intel PL/M-51 Compiler and ASM-51 Assembler and generates an absolute OMF2 object module.

The LX51 Enhanced Linker offers the following features that are not available in the BL51 Code Banking Linker.

  • Special ROM Handling
    The LX51 linker provides the SROM memory class that is used to handle segments or memory classes that are stored in ROM but copied to RAM for execution.
  • Segment and Class Information
    The LX51 linker creates special symbols that can be used to obtain address and length information for segments or classes used in an application.
  • Bank Table Optimization
    The LX51 linker allows you to specify the default code bank after reset. This optimization reduces the size of the inter-bank jump table.
  • User Provided Memory Classes
    The USERCLASS directive (for the C51 and CX51 compilers) allows you to specify class names for compiler-generated segments.
  • Support for XDATA Constants
    You may declare variables in the far const memory space which is located in ROM.
  • Linker Code Packing
    This linker optimization reduces total program size by up to 8%.
  • AJMP/ACALL Optimization
    When using this optimization, the linker rearranges program segments so that AJMP and ACALL instructions used (instead of LJMP and LCALL).
  • Global Assembler Code File
    The linker can generate a program-wide mixed source/disassembly listing.
  • Far Memory Support
    The LX51 linker supports up to 8 MBytes of code and 8 MBytes of data space.
  • Case Sensitive Symbol Names
    Symbol names are now case-sensitive.
  • Detailed Data Type Checking
    Detailed information is included in the object module for all program objects (like variables, functions, function argument lists, unions, structs, and so on). The LX51 Linker compares these between object modules and reports any mismatches. This helps you locate subtle errors in the declarations of your functions, structures, and variables.
  • Support for Up To 64 Code Banks
    Code banking programs may now support up to 4 MBytes of program space.
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.