11.3.2.2 Object Compatibility Model
Since functions in secure segments set PSVPAG to their respective
psv
constant sections, a convention must be established for
managing multiple values of the PSVPAG register. In previous versions of the compiler, a
single value of PSVPAG was set during program startup if the default
constants-in-code
memory model was selected. The compiler relied
upon that preset value for accessing const
variables and string
literals, as well as any variables specifically nominated with
space(auto_psv)
.
MPLAB XC-DSC provides support for multiple
values of PSVPAG
. Variables declared with
space(auto_psv)
may be combined with secure segment constant
variables and/or managed psv
variables in the same source file.
Precompiled objects that assume a single, pre-set value of PSVPAG
are
link-compatible with objects that define secure segment psv
constants
or managed psv
variables.
Even though PSVPAG
is considered to be a
compiler-managed resource, there is no change to the function calling conventions.