VVB (29.11.2007 14:34, просмотров: 115) ответил POV на Предполагаемая некорректноть в том...
Какой к чёрту дизассемблер? Смотри старапный файл из стандартного проекта (пример возьми на атмелевском сайте), в исходнике. Конкретнее: проанализируй седьмой вектор прерываний из таблицы прерываний. Посмотри (в исходнике!) куда идёт branch. У меня стоит прямой вызов ассемблерной функции OS_CPU_IRQ_ISR, которая дальше подготавливает стеки, сохраняет контекст, вызывает нужное прерывание на языке Си (считывая нужный регистр контроллера прерываний), получает управление обратно от Си-шного обработчика, вызывает перепланировщик и возвращает управление самой высокопроритетной задаче. Ну и, конечно, меняется режим работы процессора, иначе в юкосе не получится сохранить контекст задачи в её стеке (после входа в IRQ активен стек IRQ).
У тебя в примере от Атмеля может стоять remap, поэтому будь внимателен.
Мне проще показалось не использовать remap, благо приложение статическое,
поэтому я его не использую. У мультяшного отладчика "срывает крышу" (т.е. он не показывает исходный текст, а только ассемблер) в случае, если ты отлаживаешь ремапнутый код.