5.3.1 Program Memory Classes
The following
linker classes are defined once you include <xc.inc>
and represent
program space memory. Not all classes will be present for each device.
CODE
- Consists of ranges that map to the program memory pages on the target device and are used for psects containing executable code. On Baseline devices, it can only be used by code that is accessed via a jump table.
ENTRY
- Is relevant for Baseline device psects containing executable code that
is accessed via a
call
instruction. Calls can only be to the first half of a page on these devices. The class is defined in such a way that it spans a full page, but the psects it holds will be positioned so that they start in the first half of the page. This class is also used in Mid-range devices and will consist of many 0x100 word-long ranges, aligned on a 0x100 boundary. STRING
- Consists of ranges that are 0x100 words long and aligned on a 0x100 boundary. Thus, it is useful for psects whose contents cannot span a 0x100 word boundary.
STRCODE
- Defines a single memory range that covers the entire program memory. It is useful for psects whose content can appear in any page and can cross page boundaries.
CONST
- Consists of ranges that are 0x100 words long and aligned on a 0x100 boundary. Thus, it is useful for psects whose contents cannot span a 0x100 word boundary.