balmerjd
No, the compiler can handle multiple 32k pages of memory but only access them one at a time, and no one variable/array/"object" can be larger than 32k. So you could have 10 arrays that were 32k or less (provided you have enough memory to hold them) and access any one of them and the compiler will manage the PSV registers and window to access them. However you cannot have even one array greater than 32k.
I'm actually still confused about this. Even though the device I'm programming has 512KB of flash, I still haven't been able to compile with multiple 25KB constant arrays in flash; I've tried it with various memory model configurations, but it still won't compile.
My confusion also stems from the somewhat ambiguous wording in the XC16 guide:
"Thus no single object can be larger than the size of the PSV window, and all such objects must
not total larger than this window."
It says "all such objects must not total larger than this window", but does that mean all such objects in aggregate? Does that mean the sum total of all such objects must be below 32K, or does that mean the sum of all such objects can exceed the PSV window size as long as the size of each individual object doesn't exceed the PSV window? I initially interpreted it as the former, but others on the forums have made statements consistent with the latter.
If I can actually save multiple 25KB constant arrays in flash, can someone please provide a brief example of how to do that complete with compiler options and memory model settings?