1.4 Lists of Interesting Symbols

For a list of compiler symbols, see “MPLAB® XC32 C Compiler User’s Guide for PIC32A MCUDS-50003831, “List of Interesting Symbols.”

Table 1-2. Assembler Symbols
SymbolDescriptionMore Information

__dsPIC33A

dsPIC33A target device family.

4.5.5 Predefined Symbols, Device Family Symbols

__PIC32A

PIC32A target device family.

4.5.5 Predefined Symbols, Device Family Symbols

__HAS_DSP

Device has a DSP engine.

If device feature is enabled, the symbol is defined.

4.5.5 Predefined Symbols, Feature Symbols

__HAS_ISA32

Device supports the dsPIC33A instruction set.

If device feature is enabled, the symbol is defined.

4.5.5 Predefined Symbols, Feature Symbols

Table 1-3. Linker Symbols
SymbolDescriptionMore Information

__CODE_BASE = value;

Code base memory address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__CODE_LENGTH = value;

Code length memory size value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__DATA_BASE = value;

Data base memory address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__DATA_LENGTH = value;

Data length memory size value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FCP = value;

Code Protect Configuration address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FDEVOPT = value;

Device Options (BIST, Pins) Configuration address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FEPUCB = value;

UCB Erase Protect Configuration address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FICD = value;

ICD Communications Configuration address value..

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FIRT = value;

Immutable Root of Trust address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FPED = value;

ICSP Program/Erase address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FPRxCTRL = value;

where x = {0,1,..7}

Permission Control address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

.

__FPRxEND = value;

where x = {0,1,..7}

Protection region end address offset value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FPRxST = value;

where x = {0,1,..7}

Protection region start address offset value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FSECDBG = value;

Secure Debug Mode Enable address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FWDT = value;

Watchdog Timer Configuration Word address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__FWPUCB =value;

UCB Write Protect address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

_main

Takes control after the start-up module completes its work.

11.5.3 Run-Time Library Support

_PROGRAM_END

A symbol defined in program memory to mark the highest address used by a CODE or PSV section.

11.12.1 _PROGRAM_END

__reset

The linker scripts construct a GOTO __reset instruction at location 0 in program memory, which transfers control upon device Reset.

11.5.3 Run-Time Library Support

11.9 Interrupt Vector Tables [DD]

__resetALT

__resetPRI

Start-up modules reserved symbols.

10.5.2 Commands Dealing with Files

__SP_init

__SPLIM_init

The linker creates two symbols for use by the startup module. __SP_init defines the initial value for the stack pointer (W15), and __SPLIM_init defines the initial value for the stack limit register (SPLIM).

11.7 Stack Allocation

__TARGET_DIVIDE_CYCLES16

__TARGET_DIVIDE_CYCLES32

__TARGET_DIVIDE_CYCLES16 (for 16-bit result instructions) and __TARGET_DIVIDE_CYCLES32 (for 32-bit result instructions) are used in the repeat/divide instruction sequence and resolved based on the selected device's Instruction Set Architecture.

11.12.2 __TARGET_DIVIDE_CYCLES16 __TARGET_DIVIDE_CYCLES32

__YDATA_BASE = value;

YData base memory address value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.

__YDATA_END = value;

YData length memory size value.

10.3.3 Various Symbol Definitions, specific to the device mentioned in 10.3 Contents of a Linker Script.