Memory Map
The ATXMega256A3U PDI controller has the following memory map:
+==============+ <- 0x00000000
| Processor |
| Controller |
+--------------+ <- 0x00000020
| Breakpoint |
| Unit |
+--------------+ <- 0x00000060
| |
+--------------+ <- 0x00000100
| (reserved) |
+==============+ <- 0x00800000
| Application |
| Section |
+--------------+ <- 0x00840000
| Bootloader |
| Section |
+==============+ <- 0x00842000
| (reserved) |
+==============+ <- 0x008C0000
| EEPROM |
+==============+ <- 0x008C1000
| (reserved) |
+==============+ <- 0x008E0200
| Signature | Two flash pages
| Row | (256 * 2)
+==============+ <- 0x008E0600
| (reserved) |
+==============+ <- 0x008F0020
| Fuses |
+==============+ <- 0x008F0026
| (reserved) |
+==============+ <- 0x01000000
| Data Memory |
| (Mapped IO + |
( SRAM) |
+==============+ <- 0x02000000
Processor Controller
The processor controller has the following memory layout:
+=========================+
| Multi-function register | +0x0
+-------------------------+
| Program Counter (next) | +0x4
+-------------------------+
| Debug Control | +0xa
+-------------------------+
| I/O FIFO | +0xc
+-------------------------+
| ⋮ |
+=========================+
Breakpoint Unit
The breakpoint unit has the following memory layout:
+===================+
| break address 1 | +0x00
+-------------------+
| break address 2 | +0x04
+-------------------+
| breakpoint count | +0x08
+-------------------+
| ⋮ |
+-------------------+
| ??? | +0x20
+-------------------+
| ??? | +0x24
+-------------------+
| ??? | +0x28
+-------------------+
| ⋮ |
+-------------------+
| ??? | +0x30
+===================+
Data Memory
The data memory area maps the main chip memory (MMIO + SRAM) to the PDI address space. This has the following layout:
+===============+ <- 0x01000000
| GPIO Regs |
+---------------+ <- 0x01000010
| VPORT 0 |
+---------------+ <- 0x01000014
| VPORT 1 |
+---------------+ <- 0x01000018
| VPORT 2 |
+---------------+ <- 0x0100001C
| VPORT 3 |
+---------------+ <- 0x01000030
| CPU |
+---------------+ <- 0x01000040
| CLK |
+---------------+ <- 0x01000048
| SLEEP |
+---------------+ <- 0x01000050
| OSC |
+---------------+ <- 0x01000060
| DFLLRC32M |
+---------------+ <- 0x01000068
| DFLLRC2M |
+---------------+ <- 0x01000070
| PR |
+---------------+ <- 0x01000078
| RST |
+---------------+ <- 0x01000080
| WDT |
+---------------+ <- 0x01000090
| MCU |
+---------------+ <- 0x010000A0
| PMIC |
+---------------+ <- 0x010000B0
| PORTTCFG |
+---------------+ <- 0x010000C0
| AES |
+---------------+ <- 0x010000D0
| CRC |
+---------------+ <- 0x010000F0
| VBAT |
+---------------+ <- 0x01000100
| DMA |
+---------------+ <- 0x01000180
| EVSYS |
+---------------+ <- 0x010001C0
| NVM |
+---------------+ <- 0x01000200
| ADC A |
+---------------+ <- 0x01000240
| ADC B |
+---------------+ <- 0x01000300
| DAC A |
+---------------+ <- 0x01000320
| DAC B |
+---------------+ <- 0x01000380
| ACA |
+---------------+ <- 0x01000390
| ACB |
+---------------+ <- 0x01000400
| RTC |
+---------------+ <- 0x01000420
| RTC32 |
+---------------+ <- 0x01000440
| EBI |
+---------------+ <- 0x01000480
| TWI C |
+---------------+ <- 0x01000490
| TWI D |
+---------------+ <- 0x010004A0
| TWI E |
+---------------+ <- 0x010004B0
| TWI F |
+---------------+ <- 0x010004C0
| USB |
+---------------+ <- 0x01000600
| PORTA |
+---------------+ <- 0x01000620
| PORTB |
+---------------+ <- 0x01000640
| PORTC |
+---------------+ <- 0x01000660
| PORTD |
+---------------+ <- 0x01000680
| PORTE |
+---------------+ <- 0x010006A0
| PORTF |
+---------------+ <- 0x010006E0
| PORTH |
+---------------+ <- 0x01000700
| PORTJ |
+---------------+ <- 0x01000720
| PORTK |
+---------------+ <- 0x010007C0
| PORTQ |
+---------------+ <- 0x010007E0
| PORTR |
+---------------+ <- 0x01000800
| TCC 0 |
+---------------+ <- 0x01000840
| TCC 1 |
+---------------+ <- 0x01000880
| AWEXC |
+---------------+ <- 0x01000890
| HIRES C |
+---------------+ <- 0x010008A0
| USARTC0 |
+---------------+ <- 0x010008B0
| USARTC1 |
+---------------+ <- 0x010008C0
| SPI C |
+---------------+ <- 0x010008F8
| IRCOM |
+---------------+ <- 0x01000900
| TC D0 |
+---------------+ <- 0x01000940
| TC D1 |
+---------------+ <- 0x01000980
| AWEXD |
+---------------+ <- 0x01000990
| HIRES D |
+---------------+ <- 0x010009A0
| USARTD0 |
+---------------+ <- 0x010009B0
| USARTD1 |
+---------------+ <- 0x010009C0
| SPI D |
+---------------+ <- 0x01000A00
| TC E0 |
+---------------+ <- 0x01000A40
| TC E1 |
+---------------+ <- 0x01000A80
| AWEXE |
+---------------+ <- 0x01000A90
| HIRES E |
+---------------+ <- 0x01000AA0
| USARTE0 |
+---------------+ <- 0x01000AB0
| USARTE1 |
+---------------+ <- 0x01000AC0
| SPI E |
+---------------+ <- 0x01000B00
| TC F0 |
+---------------+ <- 0x01000B40
| TC F1 |
+---------------+ <- 0x01000B80
| AWEXF |
+---------------+ <- 0x01000B90
| HIRES F |
+---------------+ <- 0x01000BA0
| USARTF0 |
+---------------+ <- 0x01000BB0
| USARTF1 |
+---------------+ <- 0x01000BC0
| SPI F |
+===============+ <- 0x01001000
| EEPROM |
+===============+ <- 0x01002000
| Internal SRAM |
+===============+ <- 0x01002800
| External RAM |
+===============+ <- 0x02000000