Knowledge Base

Physically, NVEM0 consists of “left over” FLASH memory in the SPLat processor chip. The microcontroller chips we use in 2nd generation SPLats like the MMi200 and SL99 contain a FLASH memory.

At time of initial writing the total size of the chip’s FLASH memory is 32KB for the SL99 and MS12 and 60KB for the MMi200 (all our code for 8-bit chips is written in assembler, not C, so we get very good utilization).

For 32-bit firmware, NVEM0 and SPLat code combined usually occupy a single 64KB Flash segment, so NVEM0 is the left-over Flash from that segment. For 32-bit firmware built after 12 September 2025, this has been extended (with some exceptions) to two 64KB Flash segments, for a total of 128KB. Note that the code and NVEM0 can each only occupy a maximum of 64KB each, but this extension now allows both code and NVEM0 to occupy 64KB each.

The FLASH memory contains several things:

  • The “operating system” Firmware that makes the general purpose chip into a SPLat processor.
  • The boot loader that provides the reFlash capability.
  • Permanent memory.
  • Your application program (“SPLatWare“)
  • NVEM0

The last two combined are called User FLASH. It’s what you get to play with.