El dispositivo de almacenamiento principal que puede programar un usuario es la memoria de sólo lectura (ROM). Es capaz de personalizarse durante el proceso de fabricación para incluir cierto código de programa o información específica de las necesidades del usuario. Si bien se programa inicialmente durante la producción, algunos tipos especializados de ROM, como la memoria de solo lectura programable y borrable eléctricamente (EEPROM) o la EEPROM flash, permiten a los usuarios modificar, actualizar o alterar su código o contenido de datos después de la etapa de programación inicial. Esta característica proporciona ciertos niveles de flexibilidad para los usuarios que buscan personalizar sus dispositivos de almacenamiento primario más allá de lo que normalmente ofrecen los módulos ROM estándar.