Programmazione in-application (IAP)
Il firmware che riscrive la propria memoria flash mentre è in esecuzione, senza programmatore né sonda di debug collegati.
L'ISP permette a un programmatore esterno di scrivere il chip mentre è sulla scheda; l'IAP elimina anche questo. Il programma in esecuzione riceve una nuova immagine via UART, USB o radio, cancella i settori e li scrive da sé. È così che funzionano davvero ogni bootloader e ogni aggiornamento OTA. La famiglia LPC di NXP è arrivata a includere routine IAP già pronte nella boot ROM, così all'applicazione bastava chiamare un puntatore a funzione.
Il problema è che in genere la flash non può essere letta mentre viene cancellata. Se il codice gira dallo stesso banco, la CPU si blocca per millisecondi, interrupt compresi, quindi le routine critiche vengono prima copiate in RAM. La flash dual-bank aggira il problema leggendo da un banco mentre scrive sull'altro. Un'interruzione di corrente nel mezzo di una cancellazione resta il metodo consacrato per trasformare un prodotto in un fermacarte.