PIC24FJ1024 got 1024KBytes of Program Memory.

In the PIC24's Data Sheet in Chapter 4, mentions that the Program memory runs from 0x000000 to 0x7FFFFF which is 8,388 KByte.

enter image description here

Can someone explain why this duality?

  • 1
    \$\begingroup\$ marketing, they probably counted some of the bits in the config space. \$\endgroup\$ May 23, 2017 at 9:08
  • 1
    \$\begingroup\$ The table in your question tells you 'Unimplimented Read 0'. There's nothing at those addresses. \$\endgroup\$
    – brhans
    May 23, 2017 at 10:59

1 Answer 1


Don't confuse "memory space" (which is just the amount of all valid addresses, whether they are actually connected to program memory, RAM or some peripheral), and actual memory.

So, here, the memory space might be 8 MB, but, as the footnote says,

exact boundary sizes are determined by the size of the implemented program memory.

So, some addresses in that space actually point to hardware memory, and others simply point to nowhere.

  • \$\begingroup\$ so there is 8MB of memory space, but we can only use 1MB, is that correct? Also how come the Program Memory points to RAM, doesn't PIC24 have a Harvard Arch. where Program and Data are seperate. (I am new to Microcontrollers) \$\endgroup\$ May 23, 2017 at 10:49
  • \$\begingroup\$ There's no RAM mentioned anywhere there... That is the program side only. \$\endgroup\$
    – brhans
    May 23, 2017 at 11:01
  • \$\begingroup\$ I know, I just got confused by @MarcusMuller comment, that some of the Program Memory Space points to RAM i.e it is a pointer to Data RAM \$\endgroup\$ May 23, 2017 at 11:24
  • \$\begingroup\$ sorry for the misleading wording. Corrected. \$\endgroup\$ May 23, 2017 at 12:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.