Keil Logo

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
BIT I:20h.0-I:2Fh.7 Bit memory limited to 16 Bytes.
CODE C:0000h-C:0FFFFh Code memory limited to 64 KBytes.
CONST C:0000h-C:0FFFFh Constant data limited to 64 KBytes.
DATA D:00h-D:7Fh Variable data limited to 128 Bytes and accessed using the MOV instructions.
IDATA I:00h-I:0FFh Variable data limited to 256 Bytes and accessed using the MOV @Rx instructions.
XDATA X:0000h-X:0FFFFh Variable data limited to 64 KBytes and accessed using the MOVX instruction.
  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.