Spec-Zone.ru › GCC 8

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

Spec-Zone.ru

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