6.33.25 Атрибуты функций RISC-V
Эти атрибуты функций поддерживаются бэкендом RISC-V:
-
naked -
Этот атрибут позволяет компилятору создать необходимое объявление функции, при этом тело функции может быть кодом ассемблера. Указанная функция не будет иметь пролога/эпилога, сгенерированных компилятором. В оголённых функциях (см. Основные инструкции ассемблера без операндов) можно безопасно включать только базовые
asmинструкции. Хотя использование расширенныхasmили смешанного кода из базовыхasmи C-кода может показаться работающим, нельзя полагаться на его надёжную работу, и это не поддерживается. -
interrupt -
Используйте этот атрибут для указания того, что указанная функция является обработчиком прерывания. При наличии этого атрибута компилятор генерирует последовательности входа и выхода из функции, подходящие для использования в обработчике прерывания.
Вы можете указать тип прерывания, обрабатываемого функцией, добавив необязательный параметр к атрибуту прерывания, как показано ниже:
void f (void) __attribute__ ((interrupt ("user")));Допустимые значения для этого параметра —
user,supervisor, иmachine. Если параметр отсутствует, он по умолчанию имеет значениеmachine.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/RISC_002dV-Function-Attributes.html