Electronic – PIC32 does not have Memory Managment Unit, why would a high end microcontroller not have such a peripheral

memorymicrochippic

MMU is needed to run Linux and perhaps for other tasks related to OS. However, the PIC32 does not have one of these. Why would someone make a high end microcontroller and not include a MMU?

It may make sense for lower level PICs like PIC18F, PIC24 to not have MMU, but why did Microchip not put in an MMU into the PIC32 which is their high end processor?

Best Answer

PIC32 does mot have Memory Management Unit ...

But it does.

The PIC32 uses the MIPS architecture, which normally is paired with an MMU. When Microchip designed the PIC32MX family, they left it off. The largest PIC32MX, in terms of memory, is the high-end PIC32MX795F512L which has 512KB of program flash and 128KB of RAM.

However the newer PIC32MZ family, introduced earlier this year, does have an MMU (or so the datasheet claims on the first page; I haven't used it yet).

enter image description here

The PIC32MZ2048ECM144, for example, has 2MB of program flash and 512KB of RAM. I'm pretty sure this is still not enough to run a real version of of Linux. In any case I'm guessing Microchip will continue to come out with new PIC32MZ versions with increasingly larger memory spaces. Ideally, they might come out with a PIC32 that has an external memory interface (appearing in the memory map as regular memory, not a peripheral). PIC32s already can run code out of either flash or RAM.

A while back I saw a job listing from Microchip for a Linux drivers engineer. Hmm.