я чот не понял. не знаю как там у всяких авр а вот у нормальных процов есть пин такой - boot называется. и ты грузишься либо с вектора бутлоудера либо с вектора твоей программы. и шоп перейти на вектор твоей программы тебе надо обратно пин переключить на ноль обычно.
Для этого у нас когда-то стоял нулевой резистор, который после программирования снимался.
Мы уже отошли от этого анахронизма когда перешли на STM32 M0+ серии. Там теперь все по-другому (впрочем в STM8L тоже). Непрошитый проц автоматом падает в бутлоадер и инициализирует UART0. Через него заливается софт, включающий в себя кастом бутлоадер. После этого при старте он сразу переходит к исполняемому коду, а вход в бут для перепрошивки осуществляется только по команде с паролем.
Это удобно потому, что плата прибора имеет всего 4 вывода - два питания и два UART. Не нужно ничего лишнего городить для прошивки, никаких иголок, удаляемых компоненов или доп. разъемов. Размер платы 18х18мм и она забита компонентами с двух сторон так, что даже резистор 0402 воткнуть некуда.
Так вставили в калибровочную плату 56 штук приборов, нажали кнопку, и автоматом за минуту все 56 зашились (комп не нужен). Потом эту плату целиком кладут в термокамеру на первичную калибровку, потом на вторичную. За весь цикл (10 дней) приборы ни разу из платы не извлекаются, просто путешествуют с ней по разным камерам.