PIC32MM0064GPM064 memory map

Where everything sits, at its exact address. The PIC32MM0064GPM064 has one 32-bit address space, seen through the MIPS32 segments: program flash at 0x9D000000 (KSEG0, cached), the boot flash the chip starts from after a reset at 0xBFC00000, RAM at 0x80000000 and the special function registers from 0xBF800000 (KSEG1, uncached). These are the virtual addresses XC32 and the datasheet's register tables use; for flash, boot flash, RAM and the SFRs the physical address is the same with the top three bits cleared (0x9D000000 is 0x1D000000).

Memory map

Program flash, boot flash, RAM and the SFRs in the one 32-bit space (the configuration words are listed below).

SFRs (udidx)0xBFC41840 – 0xBFC4185320 B
Boot flash (bootconfig)0xBFC00000 – 0xBFC016FF5.8 KB
SFRs (periph1)0xBF808000 – 0xBF80FFFF32 KB
SFRs (periph0)0xBF800000 – 0xBF807FFF32 KB
Program flash0x9D000000 – 0x9D00FFFF64 KB
RAM0x80000000 – 0x80003FFF16 KB

Every segment

SegmentSpaceStartEndSizePage
RAMbase0x800000000x80003FFF16 KB
Program flashbase0x9D0000000x9D00FFFF64 KB
SFRs (periph0)base0xBF8000000xBF807FFF32 KB
SFRs (periph1)base0xBF8080000xBF80FFFF32 KB
Boot flash (bootconfig)base0xBFC000000xBFC016FF5.8 KB
Configuration words (altconfig)base0xBFC017400xBFC0176740 B
Configuration words (config)base0xBFC017C00xBFC017E740 B
SFRs (udidx)base0xBFC418400xBFC4185320 B