|
6.3.3.2 AVR-GCC
Данный компилятор предоставляет средства для организа-
ции обработчиков прерываний в соответствии с требованиями
вытесняющего механизма планирования процессов. Для этого
функция-обработчик прерывания должна быть объявлена как:
extern "C" __attribute__ ((signal)) __attribute__ ((naked))
Как видно, обработчик прерывания должен иметь С-
связывание (C-linkage). Откуда берется такое требование, не по-
нятно, но приходится его выполнять.
__attribute__ ((signal)) побуждает компилятор
организовать вектор прерывания (аналогично ИАРовскому
__interrupt), а __attribute__ ((naked)) (аналогично ИАРов-
скому __task) подавляет прологи/эпилоги, что совершенно необ-
ходимо для устранения генерации компилятором кода сохране-
ния/восстановления регистров.
E-mail: info@telesys.ru