Spec-Zone.ru › GCC 9

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

Spec-Zone.ru

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