4.4.6 X and Y Data Objects
The __xdata
and __ydata
qualifiers can
be used to indicate that variables are located in special memory regions. Exactly what
constitutes X and Y memory is dependent on the target device, but it is typically memory
that can be accessed independently on separate buses. Such memory is often required for
some DSP instructions.
Use the native keywords discussed in the Differences section to look up information on the semantics of these qualifiers.
Some devices may not have such memory implemented; in which case, use of these qualifiers is ignored.
Example
The following shows a variable qualified using __xdata
,
as well as another variable qualified with __ydata
.
__xdata char data[16];
__ydata char coeffs[4];
Differences
The 16-bit compilers have used the xmemory
and
ymemory
space attribute with variables.
Equivalent specifiers have never been defined for any other compiler.
Migration to the CCI
For 16-bit compilers, change any occurrence of the space
attributes xmemory
or ymemory
to
__xdata
, or __ydata
respectively, for example, from:
char __attribute__((space(xmemory)))template[20];
to:
__xdata char template[20];
Caveats
None.