# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 127
- 128
- 129
- 130
- 131
…
- 365
- 366

Supported Data Types and Variables
 2012-2013 Microchip Technology Inc. DS50002071C-page 129
8.11.6 __external__ Type Qualifier
This qualifier is used to indicate that the compiler should access variables or pointer
targets which have been located in external memory. These memories include any that
have been attached to the device, but which are not, or cannot, be accessed using the
parallel master port (PMP) peripheral (see Section 8.11.5 __pmp__ Type Quali-
fier.) Access of objects in external memory is similar to that for PMP access, but the
routines that do so are fully configurable and, indeed, need to be defined before any
access can take place. See Section 10.6 External Memory Access for full informa-
tion on how the memory space are configured and access routines are defined.
The qualifier is used as in the following example.
__
external__ int external_array[256]
__attribute__((space(external(external_memory))));
__external__ char * myExternalPointer;
In addition to the qualifier, the array uses a memory space which would need to be pre-
defined. The pointer in this example does not use the space attribute as it is located
in data memory, but the qualifier indicates how the pointer targets are to be accessed.
For more information on the space attribute, see Section 8.12 Variable Attributes.
For basic information on the memory layout and how program memory is accessed by
the device, see Section 10.2 Address Spaces.
For more on the qualifier, see Section 10.6 External Memory Access.

- 1
- 2
…
- 127
- 128
- 129
- 130
- 131
…
- 365
- 366