24.4.5 Persistent Objects
The __persistent
qualifier can be used to indicate that variables should
not be cleared by the runtime startup code.
Use the native keywords discussed in the Differences section to look up information on the semantics of this qualifier.
Example
The following shows a variable qualified using __persistent
.
__persistent int serialNo;
Differences
When targeting PIC devices, the MPLAB XC8 compiler has allowed use of the
persistent
specifier to indicate that variables should not be
cleared at startup. When targeting AVR devices, this compiler has allowed the use of the
persistent
attribute with variables to indicate they were not to be
cleared.
The MPLAB XC16, XC-DSC and XC32 compilers have also used the persistent
attribute for this purpose.
Migration to the CCI
When building with the MPLAB XC8 compiler for PIC MCUs, change any occurrence of the
persistent
qualifier to __persistent
, for example,
from:
persistent char template[20];
to:
__persistent char template[20];
When building with MPLAB XC16, XC-DSC or XC32 compilers, or with the MPLAB XC8 compiler
for AVR MCUs, change any occurrence of the persistent
attribute to the
__persistent
specifier, for example, from:
int tblIdx __attribute__ ((persistent));
to
int __persistent tblIdx;
Caveats
None.