Цитата(Сергей Борщ @ Sep 9 2008, 09:50)

Точнее, точно известны адреса этих функций. Я их указываю в скрипте линкера или командной строке:
Да, это красиво. Но в данном случае вызывает проблемы - в случае, если вносим изменения в бутлоадер, автоматически получается два make`а и два bin`а. Или в следующий раз еще больше. То, что бутлоадер будет меняться я даже не сомневаюсь, поэтому вариант с использованием векторов мне понравился гораздо больше.
Цитата(Сергей Борщ @ Sep 9 2008, 09:50)

ISR_NAKED появилось в последних версиях, возможно в вашей еще нет.
Да, что-то такое, видимо.
Цитата(Сергей Борщ @ Sep 9 2008, 09:50)

У вас в области векторов получился rjmp на обработчик, из которого уже rjmp на функцию. Разместите уже всю функцию в обработчик, сэкономите место и время.
Да, потенциально два лишних jamp`а, но м.б. будет вызов более сложных функций, типа crc посчитать, которые оптимизировать и руками прегонять в ассемблер проблемно да, думаю, и не нужно. А в случае с версией да, один jamp можно выкинуть.
С векторами, похоже, будет так:
Код
#define GET_VERSION_VECTOR 1
__attribute__((naked)) ISR(_VECTOR(GET_VERSION_VECTOR))
...
Ничего лучше пока не придумалось