6.31.26 Атрибуты функций RX
Эти атрибуты функций поддерживаются бэкендом RX:
fast_interrupt-
Используйте этот атрибут для RX порта, чтобы указать, что указанная функция является обработчиком быстрого прерывания. Это аналогично атрибуту
interrupt, за исключением того, чтоfreitиспользуется для возврата вместоreit. interrupt-
Используйте этот атрибут, чтобы указать, что указанная функция является обработчиком прерывания. Компилятор генерирует последовательности входа и выхода функции, подходящие для использования в обработчике прерывания, когда этот атрибут присутствует.
На целевых устройствах RX и RL78 вы можете указать один или несколько номеров векторов в качестве аргументов атрибута, а также указать имя альтернативной таблицы. Параметры обрабатываются последовательно, поэтому один обработчик может быть назначен нескольким записям в нескольких таблицах. Также можно передать магическую строку
"$default", что заставит функцию быть использованной для любых незаполненных слотов в текущей таблице.Этот пример демонстрирует простое назначение функции одному вектору в таблице по умолчанию (обратите внимание, что могут использоваться макросы препроцессора для обозначения чипоспецифических символических имен векторов):
void __attribute__ ((interrupt (5))) txd1_handler ();
Этот пример назначает функцию двум слотам в таблице по умолчанию (используя макросы препроцессора, определенные в другом месте) и делает её значением по умолчанию для таблицы
dct:void __attribute__ ((interrupt (RXD1_VECT,RXD2_VECT,"dct","$default"))) txd1_handler ();
naked-
Этот атрибут позволяет компилятору создать необходимую декларацию функции, позволяя при этом использовать тело функции как ассемблерный код. Указанная функция не будет иметь пролога/эпилога, генерируемых компилятором. В голых функциях безопасно включать только базовые
asmинструкции (см. Basic Asm). Хотя использование расширенныхasmинструкций или смешанного использования базовыхasmинструкций и кода C может показаться работающим, нельзя гарантировать их надежную работу, и это не поддерживается. vector-
Этот атрибут RX похож на атрибут
interrupt, включая его параметры, но не делает функцию типом обработчика прерываний (то есть сохраняет стандартную ABI вызова функций C). Смотрите атрибутinterruptдля описания его аргументов.
Далее: Атрибуты функций S/390, Предыдущее: Атрибуты функций RL78, Вверх: Атрибуты функций [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.5.0/gcc/RX-Function-Attributes.html