Надо из прикладной программы прыгнуть на начало бутлоадера, который уже прошит (его нет в тексте текущей программы.)
Т.е. бутлоадер сначала загружает прикладную программу в младшие адреса, потом прикладная программа начинает работать и в какой-то момент может решить, что ей надо перезагрузиться.
Т.е. ей надо как-то снова передать управление на известный абсолютный адрес, с которого начинается бутлоадер.
Как это на Си в ICC AVR.?