热度 24
2014-4-1 11:09
2071 次阅读|
0 个评论
RE: Difference between the BL51 linker and the LX51 linker http://www.keil.com/c51/lx51.asp 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.