BL51 User's Guide

Memory Areas

There are several memory areas into which the linker locates segments. For instance, the code objects from all modules in a program are combined into the CODE class while the xdata objects are combined into the XDATA class.

The linker provides directives (BIT, CODE, DATA, IDATA, PDATA, PRECEDE, STACK, and XDATA) you may use to specify the location and order of segments within a particular memory area.

The following default memory areas are generated automatically by the linker.

Memory
Area
Address
Range
Description
BITI:20h.0-I:2Fh.7Bit memory limited to 16 Bytes.
CODEC:0000h-C:0FFFFhCode memory limited to 64 KBytes.
CONSTC:0000h-C:0FFFFhConstant data limited to 64 KBytes.
DATAD:00h-D:7FhVariable data limited to 128 Bytes and accessed using the MOV instructions.
IDATAI:00h-I:0FFhVariable data limited to 256 Bytes and accessed using the MOV @Rx instructions.
XDATAX:0000h-X:0FFFFhVariable data limited to 64 KBytes and accessed using the MOVX instruction.