Follow-up Comment #2, patch #9482 (project avrdude):
I had to dig around for all this, too.
The offsets used in the linker scripts are based on historical
decisions, to merge all the distinct AVR Harvard address spaces
into a single, flat 32-bit address space which used to be the
default for GNU tools. That's where the 0x810000 for the
EEPROM comes from. The GNU tools use 0 through 0x800000 for
Flash, allowing for up to 8 MiB of flash. SRAM then starts
at 0x800000 (but is not of interest for AVRDUDE).
However, with the advent of the Xmega and PDI, the tools need
to talk to the NVM controller. The NVM controller uses a
different 32-bit address space model to map the Xmega's
individual memory regions. For an example, see Figure 30-3
in the Xmega A datasheet:
FLASH_BASE = 0x0800000
EPPROM_BASE = 0x08C0000
FUSE_BASE = 0x08F0020
DATAMEM_BASE = 0x1000000
APP_BASE = FLASH_BASE
BOOT_BASE = FLASH_BASE + SIZE_APPL
PROD_SIGNATURE_BASE = 0x008E0200
USER_SIGNATURE_BASE = 0x008E0400
Thanks for your patch contributions, Jan Egil! They are
certainly welcome, and I'm going to look at all this now.
I'm glad to see guys from Atmel / Microchip contributing
here!
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/patch/?9482>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
_______________________________________________
avrdude-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/avrdude-dev