Программирование в приложении (IAP)
Прошивка, переписывающая собственную флеш-память во время работы, без программатора и отладочного зонда.
ISP позволяет внешнему программатору записать чип прямо на плате; IAP обходится и без него. Работающая программа получает новый образ по UART, USB или радиоканалу, стирает секторы и пишет их сама. Именно так на деле устроен любой загрузчик и любое OTA-обновление. Семейство LPC от NXP зашло дальше всех: готовые IAP-процедуры лежат в загрузочном ПЗУ, и приложению остаётся лишь вызвать функцию по указателю.
Подвох в том, что флеш, как правило, нельзя читать во время стирания. Если код исполняется из того же банка, процессор замирает на миллисекунды вместе с прерываниями, поэтому критичные процедуры сначала копируют в ОЗУ. Флеш с двумя банками снимает проблему: читаем из одного банка, пишем в другой. А отключение питания посреди стирания остаётся проверенным способом превратить изделие в кирпич.