Flash memory can be easily accessed with these controllers because it can be mapped in blocks in the data space.
After the reset, the 4th block (96-128K) is preset for this, which starts from address $ c000 and is always mapped
in the 32K data space area from 8000H.
So far I have been doing it this way in code space:
.org $c000
F_DATASTR: .DB "STRING",$0a
.equ DATASTR = (F_DATASTR*2)-$10000
The string can now be easily accessed in the program:
lds r16,DATASTR ;load first sign in r16.
or
ldi ZL,low(DATASTR)
ldi ZH,high(DATASTR)
ldd r16,Z+0
My question: Can the access be formulated more simply?
This way the correct address has to be predefined for all data.
Laborious...