11.3.3 Size Limitations of Program Memory Variables
Arrays of any type (including arrays of aggregate types) can be
qualified const
and placed in the program memory. So too can structure
and union aggregate types, see section 9.5 Structures and Unions. These objects can
often become large in size and may affect memory allocation.
For objects allocated in a compiler-managed PSV window
(auto_psv
space) the total memory available for allocation is
limited by the size of the PSV window itself. 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.
The variables allocated to program memory are subject to similar constraints as data space objects in terms of maximum size, but they are allocated to the larger program space rather than data space memory. The 11.2.2 Non-Auto Variable Allocation and Access section, describes defining and using large arrays is also applicable to objects in program space memory.