Spec-Zone.ru › GCC 12

6.33.29 Атрибуты функций 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-12.2.0/gcc/RX-Function-Attributes.html

Spec-Zone.ru

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