Spec-Zone.ru › GCC 7

6.31.25 Атрибуты функций RX

Эти атрибуты функций поддерживаются бэкендом RX:

fast_interrupt

Используйте этот атрибут для RX-порта, чтобы указать, что указанная функция является обработчиком быстрого прерывания. Это аналогично атрибуту interrupt, за исключением того, что freit используется для возврата вместо reit.

interrupt

Используйте этот атрибут, чтобы указать, что указанная функция является обработчиком прерываний. Компилятор генерирует последовательности входа и выхода для функции, подходящие для использования в обработчике прерываний, когда этот атрибут присутствует.

На целевых устройствах RX вы можете указать один или несколько номеров векторов в качестве аргументов атрибута, а также указать альтернативное имя таблицы. Параметры обрабатываются последовательно, поэтому один обработчик может быть назначен нескольким записям в нескольких таблицах. Также можно передать магическую строку "$default", что заставит функцию использоваться для любых незаполненных слотов в текущей таблице.

В этом примере показано простое назначение функции одному вектору в таблице по умолчанию (обратите внимание, что для имен векторов, специфичных для микросхемы, могут использоваться макросы препроцессора):

void __attribute__ ((interrupt (5))) txd1_handler ();

В этом примере функция назначается двум слотам в таблице по умолчанию (используя макросы препроцессора, определённые в другом месте) и устанавливается в качестве значения по умолчанию для таблицы dct:

void __attribute__ ((interrupt (RXD1_VECT,RXD2_VECT,"dct","$default")))
	txd1_handler ();
naked

Этот атрибут позволяет компилятору создать необходимое объявление функции, при этом позволяя телу функции быть ассемблерным кодом. Для указанной функции компилятор не будет генерировать последовательности пролога/эпилога. В функциях 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-7.5.0/gcc/RX-Function-Attributes.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API