PIC24F16KL401 memory map

Where everything sits, at its exact address. The PIC24F16KL401 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 0x002C00 holds 5,632 instructions (16.5 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).

Configuration words0xF80000 – 0xF800119 words
Flash0x0000 – 0x2BFF16.5 KB (5,632 instructions)

Data memory

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

RAM0x0800 – 0x0BFF1 KB
Special function registers0x0000 – 0x07FF2 KB

EEPROM

Non-volatile data, kept without power.

EEPROM0x0000 – 0x01FF512 B

Every segment

SegmentSpaceStartEndSizePage
Special function registersdata0x00000x07FF2 KB
RAMdata0x08000x0BFF1 KB
EEPROMeeprom0x00000x01FF512 B
Flashprog0x00000x2BFF16.5 KB (5,632 instructions)
Configuration wordsprog0xF800000xF800119 words