# Memory Map The ATXMega256A3U PDI controller has the following memory map: ```text +==============+ <- 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: ```text +=========================+ | 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: ```text +===================+ | 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: ```text +===============+ <- 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 ```