Die in Mikrocontrollern eingesetzten Speichertypen haben sich im Laufe der Jahre geändert und hängen teilweise auch von der Architektur und wirtschaftlichen Gesichtspunkten ab. In der Anfangszeit der Mikrocontroller, und auch heute noch bei den 4-Bit-Architekturen, gab es fast ausschließlich ROM-Speicher. Software für solche Mikrocontroller muss mit entsprechenden Entwicklungssystemen erstellt werden, die eine Simulation des Mikrocontrollers erlauben und meist über einen In-Circuit-Emulator verfügen. Die so erstellte Software wird dann an den Hersteller des Mikrocontrollers übermittelt, der dann die Chips im Fertigungsprozess mit dieser Software versieht. Meist geschieht das bei der Aufbringung der letzten Metalllage auf den Chip (der letzten „Maske“, daher auch „maskenprogrammierte Mikrocontroller“).