Absolute Objects In Program Memory

Any const-qualified object which has static storage duration and which has file scope can be placed at an absolute address in program memory.

For example:

const int settings[] __at(0x200) = { 1, 5, 10, 50, 100 };

will place the array settings at address 0x200 in the program memory.

Note that the __at() construct can be placed before or after the variable identifier in the definition, but to be compatible with the C90 standard, it should be place after the identifier.

An uninitialized extern const object can be made absolute and is useful when you want to define a placeholder object that does not make a contribution to the output file.