dsPIC30F3012 memory map
Where everything sits, at its exact address. The dsPIC30F3012 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 0x004000 holds 8,192 instructions (24 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 – 0xF8000D7 words
User ID0x8005C0 – 0x8005FF32 words
Flash0x0000 – 0x3FFF24 KB (8,192 instructions)
Data memory
16-bit SFRs at the bottom, then the RAM; byte addresses.
RAM0x0800 – 0x0FFF2 KB
Special function registers0x0000 – 0x07FF2 KB
EEPROM
Non-volatile data, kept without power.
EEPROM0x0000 – 0x03FF1 KB