En general, la mayoría de los microcontroladores han tenido programación en serie en circuito (ICSP), por ejemplo. donde un programador como el PICkit 3 está conectado a un microcontrolador PIC, y una imagen binaria del código se programa en la memoria del programa del microcontrolador mediante una interfaz de programación dedicada (en el caso de los PIC, una línea de datos PGED y una línea de reloj PGEC) .
Antes de que llegara la memoria flash, la memoria del programa podría tomar la forma de PROM (memoria de solo lectura programable), EPROM (PROM borrable) o EEPROM (PROM borrable eléctricamente). La última (EEPROM) es funcionalmente la misma que la memoria Flash de hoy, desde un punto de vista de programación. Las PROM rectas solo se podían programar una vez. Los procesadores con EPROM tenían ventanas pequeñas en ellos, y el programa se podía borrar en 20 minutos aproximadamente con luz UV. Las EPROM sin ventana también se vendieron como OTPROM - PROM una vez.
AntesdequelosmicrocontroladorestuvieranmemoriaprogramableeICSP,cualquiermemoriadeprogramaenchipsealmacenabaenlaROMysolopodíaserprogramadaporlafábrica.Estofueutilizadoparalaproduccióndegranvolumenquepodríajustificaresto.Elclientesuministraríaunarchivobinarioalafábricaquecontieneelprograma.Sihubounerrordespuésdequesefabricaronloschips,todosloschipstendríanquesertirados.
Porlotanto,antesdequesehicieranlasROM,elprogramanormalmenteseveríautilizandoun Emulador en circuito ( ICE), en el que los microprocesadores y / o los chips de memoria de código de programa serían reemplazados por un zócalo, y un cable grande conectó el zócalo al ICE. Esto permitió que el programa se descargara en el ICE y se verificara, antes de que se programara el chip; era similar a trabajar con las interfaces JTAG utilizadas hoy en día, la diferencia es que el costo típico de ICE es de alrededor de $ 5000 en dólares de los años 70.
Antesdelosmicrocontroladores,habíamicroprocesadores;ladiferenciaeraquenohabíamemoriadeprogramaenelchip;encambio,elmicroprocesadorteníabusesdedatosydireccionesexternos,ylamemoriadelprogramaestabacontenidaenunaROMexterna,PROM,EPROMochipEEPROM.Lostresúltimospodríanserprogramadosporelcliente.LoschipsdememoriaexternaqueusanROMtambiénseríanprogramadosporlafábrica.Estoseremontaal4004,quefueelprimermicroprocesador.
El 1702 (mostrado anteriormente) fue uno de los primeros EPROM y pudo almacenar 256 bytes del código del programa. El 2764 con 8 KB de código de programa fue otro chip popular más adelante. Estos chips serían programados usando un programador externo conectado a una PC. (Algunos de los programadores también contenían teclados donde se podía ingresar el código a mano o el código de parche que se había descargado).
Programaríasel(los)chip(s)quenecesitatuprogramayluegolosconectasalosenchufesdetutarjeta.Elprogramaseejecutóonosedebióaerrores.NohabíapuntosdeinterrupcióndisponiblesamenosqueestuvierautilizandounodeesosICEdemilesdedólares.
Sielprogramatuvieraunerror,intentaríaarreglarlo,programarunnuevoconjuntodechipsyrepetir.Debidoalafaltadepuntosdeinterrupción,seutilizaronamenudoimpresorasenunUARTenserie,asícomoLEDparpadeantesoelusodeunosciloscopioparamirarotrospinesdelprocesador.Sitequedassinfichas,esposiblequetengasqueesperar20minutosparaborrarlasconunborradorUV.