PIC24EP512GP806 memory map

Where everything sits, at its exact address. The PIC24EP512GP806 keeps program and data apart (modified Harvard). Program memory holds 24-bit instructions and is addressed in program-counter units, two per instruction, so flash ending at 0x055800 holds 175,104 instructions (513 KB, three bytes each). The data space is 16-bit and byte-addressed: the special function registers at the bottom, then the RAM. Constants in flash are read into data space through the program space visibility window from 0x8000 (PSV, or EDS on the newer chips).

Program memory

Reset and vector table, the program, the configuration words; addresses in program-counter units (two per instruction).

User ID0xF80012 – 0xF800131 word
Configuration words0xF80004 – 0xF800117 words
Auxiliary flash0x7FC000 – 0x7FFFF924 KB (8,189 instructions)
Flash0x0000 – 0x557FF513 KB (175,104 instructions)

Data memory

16-bit SFRs at the bottom, then the RAM; byte addresses.

RAM0x1000 – 0xDFFF52 KB
Special function registers0x0000 – 0x0FFF4 KB

Every segment

SegmentSpaceStartEndSizePage
Special function registersdata0x00000x0FFF4 KB
RAMdata0x10000xDFFF52 KB
DMA RAM (dual-port, inside the RAM)data0xD0000xDFFF4 KB
Flashprog0x00000x557FF513 KB (175,104 instructions)
Auxiliary flashprog0x7FC0000x7FFFF924 KB (8,189 instructions)
Configuration wordsprog0xF800040xF800117 words
User IDprog0xF800120xF800131 word