4.3.9.2 Flash Qualifier

Using both the __flash and const qualifiers indicates that the object should be located in a different program memory section. This section can be repositioned using the project’s linker script, if desired, but must be wholly linked in the lowest flash 64 KB segment. The section associated with the __flash qualifier is by default located in the lowest flash segment (segment 0), which occupies the lowest 64 KB address range.

For devices that do not have memory-mapped flash, data is read using the lpm instruction.

Pointers that use this qualifier can reference program memory, see 4.3.6.2 Data Pointers.